Compare commits

...

1449 Commits

Author SHA1 Message Date
Keith Whitwell
11c0215bf8 Switch between memcpy implementations according to src/dest alignment. 2006-02-01 18:42:16 +00:00
Keith Whitwell
6a13b6c346 Debug off 2006-02-01 18:30:16 +00:00
Keith Whitwell
a103097ee5 Quieten depend 2006-02-01 18:29:56 +00:00
Keith Whitwell
7efad0d84c Just build the i915 on this branch 2006-02-01 18:29:25 +00:00
Keith Whitwell
42c88cd072 subtexrate test on this branch too 2006-02-01 18:14:09 +00:00
Keith Whitwell
2541c54e79 gearbox demo on this branch too 2006-02-01 18:13:23 +00:00
Keith Whitwell
33529e3d8e Bump driver date 2006-02-01 18:01:04 +00:00
Keith Whitwell
84c1b82081 Disable check_copytex_fragment_ops - it doesn't really apply. 2006-02-01 16:40:23 +00:00
Keith Whitwell
a97a1439ae Get batchbuffers working natively again. This code still
relies over-heavily on the DRI lock to protect offsets in the
command stream from changing before being queued on the ring,
and should be viewed as being a pretty temporary mechanism
before a more robust alternative is implemented, most likely
based on a batchbuffer relocation list that will be used
to patch prebuilt batchbuffers after validation takes place.
2006-02-01 15:54:42 +00:00
Keith Whitwell
2fd2910010 Remove the last of the old AllocateAgp mechanism.
Move the batchbuffer code to being effectively a ring of
bufmgr buffers.
2006-02-01 15:51:31 +00:00
Keith Whitwell
fbbda155e0 Add code to map/unmap all texture images for the software rasterizer.
Add the color and depth buffers to the validation list to ensure they
are fenced correctly by hardware rasterization.
2006-02-01 15:50:14 +00:00
Keith Whitwell
a49c3c0fae Ensure that color buffers and textures are mapped (bmBufferMap) before
software rasterizer fallbacks.  This has two functions, firstly to
ensure that the Data pointers point to something and secondly to
ensure than any pending fences on those buffers are discharged before
allowing the software rasterizer to read/write the data.

This needs to be integrated with Brian's validate code.
2006-02-01 15:48:52 +00:00
Keith Whitwell
baf5998d59 file gearbox.c was added on branch texman_0_1_branch on 2006-02-01 18:13:23 +0000 2006-01-30 15:35:35 +00:00
Keith Whitwell
4c5acef241 Get hardware-accelerated CopyTexSubImage working well enough to run
Brian's gearbox demo.
2006-01-28 23:28:14 +00:00
Keith Whitwell
9839e272cf Allow ValidateBuffers to allocate memory for buffers which haven't yet
got it by other methods.  Typically this is buffers being written to by
hardware excluding the fixed front/back/depth buffers which are have
pre-allocated memory.

At some point will want to pass BM_READ/BM_WRITE flags to catch the
couple of cases where buffers are treated differently in each case.
2006-01-28 23:27:39 +00:00
Keith Whitwell
b57e79ff14 remove debug 2006-01-28 17:52:50 +00:00
Keith Whitwell
43824acb4e Build fixes 2006-01-28 17:52:05 +00:00
Keith Whitwell
d8f509e749 Use the x86 __memcpy to avoid performance clif for uploads where the
source data is worse than 64-byte aligned.
2006-01-28 17:50:59 +00:00
Keith Whitwell
eb91c93c2e file subtexrate.c was added on branch texman_0_1_branch on 2006-02-01 18:14:09 +0000 2006-01-27 15:44:40 +00:00
Keith Whitwell
79de983b6f initial copytexsubimage code, untested 2006-01-27 11:58:00 +00:00
Brian Paul
fdb3acf016 added _swrast_eject_texture_images() 2006-01-27 03:42:56 +00:00
Keith Whitwell
2807d1f58a Get readbuffer correctly. 2006-01-26 18:30:34 +00:00
Keith Whitwell
93f913926e - Remove (most of) old agp client memory hack.
- Implement an accelerated version of glCopyPixels using the blitter.
2006-01-26 17:21:38 +00:00
Keith Whitwell
33ca04f379 Expand the buffer manager to include a notion of multiple pools within
a memory space.  Allow some pools to be excluded from the upload/evict
processing, meaning that any buffers within those pools are effectively
fixed.  Add a mechanism to create buffers in those pools.

This allows the legacy fixed front/depth/back buffers to be represented
in this scheme and will allow other future pinned buffers to be allocated
from fixed pools in such a way that they cannot fragment the rest of
the texture memory.
2006-01-26 14:50:02 +00:00
Brian Paul
398cb30c72 Added _swrast_validate_texture_images() to make sure all textures have
data resident for software rasterization.
Relies on new swrast driver function: ValidateTextureImage()
2006-01-26 04:05:53 +00:00
Keith Whitwell
f67bb30314 Fix confusion over pitch. demos/texobj renders correctly. 2006-01-25 17:16:46 +00:00
Keith Whitwell
4578d7b9f0 Offset returns weren't being returned. 2006-01-25 16:57:36 +00:00
Keith Whitwell
dcdfc154c3 Remove silly debug. 2006-01-25 16:46:10 +00:00
Keith Whitwell
696ba32779 Another texture manager checkpoint:
- Add code to validate textures before use.
- Simplify vertex paths for now.
- Make vertex paths validate textures.  This is done pretty
  with some pretty heavy-handed use of the dri lock - fixing this is
  a priority.
- Add lots of debug statements

demos/texobj renders, but textures are incorrect.
2006-01-25 15:40:50 +00:00
Keith Whitwell
dcfe55539f Remove dead code. Gears runs. 2006-01-24 18:55:52 +00:00
Keith Whitwell
ff84b1f1b2 Checkpoint of texture manager rework for i915.
Compiles but won't do any more than that.
2006-01-24 18:35:53 +00:00
Keith Whitwell
3bca9c47f4 Add another layer on top of the simple 2d regions in intel_regions.[ch]
which keeps track of a whole, well-defined mipmap tree.  These are a
fixed layout on intel hardware and managing them is complicated in the
face of GL's TexImage function calls where data can arrive in any order,
making it difficult to guess a layout ahead of time.

Wrapping mipmap trees up in a struct and programming interface like this
reduces the burden elsewhere.
2006-01-24 16:38:43 +00:00
Keith Whitwell
d4d7fdb43b layer 2d region semantics and blits on top of bufmgr buffers 2006-01-23 12:53:11 +00:00
Keith Whitwell
d65dab5777 import via texture semantics 2006-01-23 12:52:28 +00:00
Keith Whitwell
638ca019ef Add a faked-out implementation of the buffer manager that uses the same
techniques as the old dri memory manager behind the new interface.  Will
use this to port the i915 driver to this interface to hopefully get
some easy insights from using the interface.
2006-01-16 15:30:45 +00:00
Michal Krol
b4f70646b4 remove some test code;
rewrite the intermediate code executor to address
64-bit platforms and global memory;
store built-in library code in a precompiled form only;
2006-01-16 12:34:16 +00:00
Michal Krol
8defce2cf1 remove slang_*_gc.h files;
rename slang_*_gc_bin.h files to slang_*_gc.h ones;
store built-in library code in a precompiled form only;
2006-01-16 12:27:22 +00:00
Aapo Tahkola
0f488bb16d Missing bits of code spotted by Tilman Sauerbeck 2006-01-15 13:53:54 +00:00
Aapo Tahkola
1bcc323857 Fix ARB_position_invariant handling 2006-01-15 00:07:11 +00:00
Adam Jackson
93d0935ef7 Fix the default target to remake readtex.o if needed 2006-01-13 16:34:00 +00:00
Aapo Tahkola
4078c647d5 namespace pollution fixes (Tilman Sauerbeck) 2006-01-13 15:11:57 +00:00
Aapo Tahkola
458479fedb Fix invalid tex coord routing and couple other small things. 2006-01-13 15:03:57 +00:00
Brian Paul
1814d6541b added a couple new assertions to help debug XGL problem 2006-01-10 15:48:56 +00:00
Aapo Tahkola
2d4ff6a8cf Missing patch from Ben Skeggs:
Lots of changes, and fixes for some badness on my behalf.

1. Disposable data used during fp compile is now per-context,
   rather than per-program to save memory.

2. Track usage of INPUT/TEMP registers from Mesa program, free
   them when no longer required so the hw temps can be re-used.

3. Changed LAST_NODE to OUTPUT_COLOR (see r300_reg.h)

4. Implemented remaining ARB_f_p instructions, with the exception
   of the trig/LIT opcodes.

5. Treat ZERO/ONE swizzles the same way as other native swizzles.

6. emit_arith changes, basically a complete re-write.  Should
   produce cleaner instructions, but no real functional changes.
   internal reg -> hw reg routines shared with emit_tex.  A bit
   messy still.
2006-01-09 22:53:38 +00:00
Aapo Tahkola
c217d5a3a8 Fix pow <small> and a very stypid bug with dummy srcs(0 equals to tmp0.x)</small>. demos/cubemap looks perfect now. 2006-01-09 20:00:03 +00:00
Aapo Tahkola
0946e0f418 Fix cube maps. 2006-01-09 19:20:46 +00:00
Aapo Tahkola
7a028bd1ca Fix node setup(from Ben Skeggs) 2006-01-09 18:31:42 +00:00
Brian Paul
d469e5e5a0 s/GLuint/GLbitfield/ 2006-01-09 17:57:47 +00:00
Brian Paul
c2901e4f4c only call xmesa_set_renderbuffer_funcs() when really necessary 2006-01-09 17:56:55 +00:00
Brian Paul
41b9756e9a check XGetGeometry() return value 2006-01-09 16:59:30 +00:00
Roland Scheidegger
8bc4dae67e cube maps on r100 require newer drm than the same feature on r200 (regression from introducing unfied initialization). Fix wrong (so far unused) family assignment for r100 cards. 2006-01-07 20:42:16 +00:00
Keith Whitwell
eda59aa87e Oops - bad file-completion typo. 2006-01-05 11:01:18 +00:00
Keith Whitwell
ca188de098 add simple test for program local parameters 2006-01-05 10:57:57 +00:00
Brian Paul
30cc822163 install GLw headers (bug 5396) 2006-01-04 20:10:16 +00:00
Brian Paul
413a49ce59 special-case Darwin (bug 4509) 2006-01-04 20:06:13 +00:00
Jerome Glisse
31be39742b Use X11_INCLUDES config macro instead of
hardcoded path in makefile.
2006-01-02 18:47:00 +00:00
Brian Paul
3086efe357 remove bogus wings3d link 2005-12-30 19:15:40 +00:00
Keith Whitwell
cabecbd314 recalculate state on drawable changes 2005-12-30 13:03:08 +00:00
Keith Whitwell
1d43e729ec properly notify driver on scissor change in MakeCurrent 2005-12-30 13:02:27 +00:00
Dave Airlie
8c137e2f94 fill out framebuffer egl stuff enable egl on R300 2005-12-30 11:18:04 +00:00
Dave Airlie
fb83a42d31 fixup stamp so driver updates drawable info 2005-12-30 10:12:26 +00:00
Dave Airlie
456a513daa add support for PCIE card to EGL, doesn't fully work yet but these changes
need to get off my hard disk
2005-12-29 00:56:01 +00:00
Dave Airlie
577d23011b add EGL to r300 makefile 2005-12-29 00:42:25 +00:00
Dave Airlie
369ae3e2c4 rv370 not rv350 2005-12-29 00:38:12 +00:00
Dave Airlie
77a7c2ad92 typo 2005-12-29 00:37:24 +00:00
Dave Airlie
4dac78463e add some card type ioctl support 2005-12-29 00:36:07 +00:00
Dave Airlie
edf570da67 use card_type not isPCI 2005-12-29 00:30:53 +00:00
Dave Airlie
49b9355020 add some r300 information 2005-12-28 23:42:41 +00:00
Dave Airlie
1b6a081885 update to new API 2005-12-23 08:42:29 +00:00
Dave Airlie
bc8390fa6c this needs to be calloced 2005-12-23 08:17:44 +00:00
Dave Airlie
ad960612ce fixup driver for some api changes 2005-12-23 07:58:24 +00:00
Aapo Tahkola
11decab34a Handle fatal case. 2005-12-18 21:40:13 +00:00
Aapo Tahkola
3ad366dff2 Drop output checking. 2005-12-17 18:59:18 +00:00
Aapo Tahkola
d57ce4a2c1 No you arent. 2005-12-17 12:28:58 +00:00
Aapo Tahkola
707343dcf5 Warn only when being enabled. 2005-12-17 12:20:51 +00:00
Aapo Tahkola
feb7221ecb I think this has been tested well enough already. 2005-12-17 12:08:41 +00:00
Aapo Tahkola
1d32fc7332 Enable CB_DPATH by default. 2005-12-17 11:59:13 +00:00
Aapo Tahkola
fd1627312d Fix (likely) typo. 2005-12-17 11:43:59 +00:00
Aapo Tahkola
e34700af7a Add some missing hooks. This should fix various little problems with window movement and 2d windows flashing on top of 3d windows. This problem was previously shadowed by r300ResetHwState as it gets called frequently. 2005-12-17 11:39:40 +00:00
Brian Paul
c9b4acfeb8 minor code movement 2005-12-17 05:37:15 +00:00
Karl Schultz
782291ab91 fix thinko in last revision. 2005-12-16 16:38:44 +00:00
Brian Paul
924fb5e916 move va_end() call (Evgeny Kotsuba) 2005-12-15 15:23:54 +00:00
Karl Schultz
841c9018b1 Work In Progress. Move some of the frame buffer, render buffer, etc init code from the create context path to the make current path, where it is lazily initialized. This didn't buy me very much except to make it look closer to the X11 driver. Fix up some of this same code to correct some errors.
The next step is to reorganize the wmesa context data structure to inherit the gl_context by containment so I can have access to the wmesa context in the update state path.  The driver is still currently not responding to changes in the Draw and Read Buffer state.
2005-12-15 01:02:37 +00:00
Brian Paul
b6d7a0c5a5 regenerate to pick up glGetQueryObject[u]i64vEXT funcs 2005-12-14 14:23:37 +00:00
Keith Whitwell
0970787228 Fix typo. 2005-12-14 09:31:25 +00:00
Brian Paul
c8d1741b78 use GLbitfield instead of GLuint 2005-12-14 03:06:16 +00:00
Brian Paul
1add059bd1 Removed the GL_SGIX/SGIS_pixel_texture extensions. Same thing can be
done with fragment programs nowadays.
2005-12-14 03:04:58 +00:00
Dave Airlie
c9797f6b76 fix from Roland for mipmapped compressed textures
remove some debug
2005-12-13 19:53:28 +00:00
Brian Paul
0063084804 silence warning, bug 5318 2005-12-12 15:27:55 +00:00
Keith Whitwell
40332059e4 Split _MaintainTexEnvProgram into two flags _Maintain and _Use. This
restores the ability to run the software driver with program TNL but
tradtional swrast.
2005-12-12 12:57:08 +00:00
Eric Anholt
3e1a5a38ae Regenerate for recent glapi changes (GetQueryObjecti64vEXT). 2005-12-11 07:42:37 +00:00
Brian Paul
790ab0a0b6 s/eglShowSurfaceMESA/eglShowScreenSurfaceMESA/ 2005-12-10 17:59:36 +00:00
Brian Paul
f06ce1ba71 Rename eglDRIShowSurfaceMESA.
s/_eglAddMode/_eglAddNewMode/
2005-12-10 17:56:00 +00:00
Brian Paul
98d9bb66a4 updates to match other changes elsewhere 2005-12-10 17:55:15 +00:00
Brian Paul
215aa20f5c rename eglShowSurfaceMESA, add EGL_SCREEN_POSITION_GRANULARITY_MESA 2005-12-10 17:54:36 +00:00
Brian Paul
4882279633 Some initial per-thread support.
Rename eglShowSurfaceMESA to eglShowScreenSurfaceMESA.
2005-12-10 17:54:00 +00:00
Brian Paul
b04dd5c587 Added EGL_SCREEN_POSITION_GRANULARITY_MESA query.
Rename eglShowSurfaceMESA to eglShowScreenSurfaceMESA.
2005-12-10 17:53:07 +00:00
Brian Paul
ad6f8eba00 lots of updates, mode sorting, etc 2005-12-10 17:52:11 +00:00
Brian Paul
6002d2ff4e implement config sorting for eglChooseConfig() 2005-12-10 17:51:13 +00:00
Brian Paul
21b2784ff5 'a' key to toggle animation 2005-12-08 17:49:50 +00:00
Brian Paul
5abc246f8d bump version number 2005-12-08 14:51:36 +00:00
Brian Paul
72d1bb5756 don't need LONGLONG typedefs 2005-12-08 14:50:28 +00:00
Brian Paul
91ed68b2b9 do away with 'long long' usage 2005-12-08 14:50:03 +00:00
Brian Paul
5262c225ba remove stray _ from GL[u]int64_EXT 2005-12-08 14:10:59 +00:00
Karl Schultz
1acea5f289 update for symbol export changes 2005-12-08 04:36:42 +00:00
Karl Schultz
5bdec89da5 add {} to RENDER_SPAN macro to fix compilation problem 2005-12-08 04:35:07 +00:00
Karl Schultz
59af97420e use 64-bit typedefs for portability 2005-12-08 04:34:17 +00:00
Karl Schultz
0694adaf71 add 64-bit typedefs for portability 2005-12-08 04:33:17 +00:00
Karl Schultz
4c3443b460 handle 64-bit types for Windows. 2005-12-08 04:32:02 +00:00
Karl Schultz
f2b9fa03da reapply recent changes with Visual Studio instead of direct text editing. 2005-12-08 04:30:44 +00:00
Brian Paul
0fa8c59e64 Updates for GL_EXT_timer_query:
New GLint64EXT and GLuint64EXT types (use C99's long long types).
New glGetQueryObject[u]i64vEXT() functions.
2005-12-07 14:48:19 +00:00
Karl Schultz
98bebc7212 Fix bugzilla 5253. Add {} around code in RENDER_SPAN macros when code includes a variable declaration. 2005-12-07 05:09:14 +00:00
Aapo Tahkola
abccd5b729 Make missing interpolator inputs fatal 2005-12-06 22:26:21 +00:00
Aapo Tahkola
9309ba78d1 Fix secondary color for VP's 2005-12-06 19:49:18 +00:00
Brian Paul
9580179dfb C++ fixes, mostly casts (Stephane Conversy) 2005-12-06 15:41:43 +00:00
Eric Anholt
d5179613d5 Add support for GL_EXT_secondary_color. It looks like using
NEED_SECONDARY_COLOR to turn it off/on was what we wanted -- now results look
correct using seccolor on Savage IX and Savage4.
2005-12-06 10:38:37 +00:00
Keith Whitwell
b4ebb68202 Add guard before calling ctx->Driver.BindProgram 2005-12-05 11:44:09 +00:00
Aapo Tahkola
f27c07c99e Fix AL8 2005-12-05 09:30:58 +00:00
Dave Airlie
923257fe07 update r300 drm minimum to 20 2005-12-05 01:14:13 +00:00
Dave Airlie
f93feb7aed Fix r300 rectangular texture upload and swtcl coordinate fixing same as radeon
sw tcl
2005-12-04 00:37:35 +00:00
Brian Paul
eb06704a7c Added PCI_CHIP_RV410_5E4B (Adam Kirchhoff) 2005-12-02 23:57:37 +00:00
Brian Paul
99f13343cf Fix two failures encountered when running out of memory during XImage
allocation.
Append \n to _mesa_warning() strings.
2005-12-02 19:41:43 +00:00
Brian Paul
1b3128cc9a Test sizeof(drm_handle_t) instead of LONG64 when returning handles 2005-12-02 18:17:11 +00:00
Brian Paul
8716e7570d fix _mesa_ffs() return, test for more platforms (Evgeny Kotsuba) 2005-12-02 18:06:01 +00:00
Ian Romanick
5abff7bc4d Fix build issues on x86-64 due to missing include path in
glapi_x86-64.S.

Bug: #5602
2005-12-02 00:25:06 +00:00
Keith Whitwell
c9515bf1ae Call ProgramStringNotify after creating tnl programs. 2005-12-01 14:24:37 +00:00
Keith Whitwell
bfba2705b6 Remove VB->LastClipped 2005-12-01 12:54:21 +00:00
Keith Whitwell
dd4f0d1a93 Clean up clipping somewhat
- no need to update ClipMask on generated vertices
	- remove the VB->LastClipped value

Line clipping algorithm changed and simplified somewhat.  The old one
was based on the triangle routine and probably wouldn't have recognized
lines that were clipped down to nothing (ie culled, but not by a single
plane).
2005-12-01 12:53:15 +00:00
Brian Paul
f285f0d8f6 remove uintptr_t cast 2005-12-01 01:00:13 +00:00
Brian Paul
6b25193b92 try removing need for the uintptr_t casts 2005-12-01 00:59:51 +00:00
Brian Paul
0e31e02aef Added FinishRenderTexture() device driver function to indicate when
rendering to a texture has likely completed.
Fixed refcount issue in texture renderbuffer wrapper.
2005-12-01 00:25:00 +00:00
Brian Paul
cf2702e3db added comment about glTexImage and renderbuffers 2005-12-01 00:18:49 +00:00
Brian Paul
31e739a189 get depthBits from the current drawbuffer 2005-12-01 00:15:41 +00:00
Brian Paul
94ae2b4f25 fxt1_decode_1() should not be static 2005-11-30 14:47:34 +00:00
Ian Romanick
5910dfacf1 This is a major re-work of the __indirect_glInterleavedArrays routine. The
big, ugly, error prone switch-statement is replaced with a compact table.
I also added numerous comments, including a comment explaining how the
format parameter is validated.

Explicitly pass GL_FLOAT as the type in the cases where that is the only
possible value (e.g., everywhere except the call to glColorPointer).

Validate that stride is >= 0.

Tested with all modes (including the two error modes) of
progs/tests/interleave.c.

Bug: #5001, #5058
Reviewed by: Brian Paul
2005-11-30 00:06:48 +00:00
Brian Paul
96f216565e assorted fixes for server-side direct rendering (bug 5199) 2005-11-29 23:01:43 +00:00
Brian Paul
2d8eb9eaf3 remove dri_client/ dir from tarball 2005-11-29 22:41:23 +00:00
Brian Paul
126482a12f use the files from the drm tree/package 2005-11-29 22:37:19 +00:00
Michel Dänzer
9790e641ef If the DDX driver didn't reserve any video RAM for textures, fall back to
using only GART memory for textures instead of segfaulting in the texture
management code. (Bug 5115)
2005-11-29 13:13:34 +00:00
Brian Paul
58f45fa44d added _EGLExtensions typedef 2005-11-29 04:44:33 +00:00
Brian Paul
5285c32a17 Put extension flags, string into separate struct. 2005-11-29 04:43:37 +00:00
Brian Paul
f576450cae clean up the drmGetMap/drmMap code 2005-11-29 04:18:38 +00:00
Brian Paul
4683e8e954 apparently need to load colormap after setting the mode to make it work reliably 2005-11-29 03:00:02 +00:00
Keith Whitwell
2b8e66d210 Remove the many aliases for 'struct mem_block' in mm.h 2005-11-28 13:17:15 +00:00
Keith Whitwell
aae2b8b8eb Correct author attribution of mm.h 2005-11-28 12:05:29 +00:00
Brian Paul
4f12aa5a6a check for driver_modes == NULL. Don't need driver_modes for EGL driver 2005-11-28 00:04:35 +00:00
Brian Paul
a913d9f2f7 rearrange some code to put in more logical order, misc clean-ups 2005-11-28 00:02:06 +00:00
Brian Paul
3070a581fc Lots of fixes, clean-ups, new comments, etc.
To set the FBdev video mode, need to add a \n char to the string.
2005-11-28 00:00:08 +00:00
Brian Paul
d548bf41d3 Redo _eglInitSurface() so it can be used with all surface types.
Redo _eglInitContext() to do error checking, attribute list parsing, etc.
2005-11-27 23:57:19 +00:00
Brian Paul
49b2d2e90f include stdint.h for BSD 2005-11-27 23:46:55 +00:00
Brian Paul
024b5896f0 use ADD_POINTERS macro instead of (uintptr_t) cast 2005-11-25 17:07:10 +00:00
Keith Whitwell
96bf6abb66 Use _mesa_exec_free for fp->func. 2005-11-24 10:59:10 +00:00
Brian Paul
2a76d952b8 use new _egl_api struct 2005-11-24 04:06:51 +00:00
Brian Paul
1ac1c1c423 use _egl_api struct, make some functions static 2005-11-24 04:05:27 +00:00
Brian Paul
daf585d0f0 Move all the EGL API function pointers into a new _egl_api struct. 2005-11-24 04:02:16 +00:00
Brian Paul
d2c64e0b83 report error token in message printed in _eglError() 2005-11-24 03:53:46 +00:00
Brian Paul
b1abf1ea8e change error test in _eglParseConfigAttribs() 2005-11-24 03:48:19 +00:00
Brian Paul
ff707ead2b init attribs to EGL_DONT_CARE in _eglParseConfigAttribs() 2005-11-24 03:41:56 +00:00
Aapo Tahkola
181f2b92cb Couple changes that were missed. 2005-11-23 13:02:25 +00:00
Brian Paul
023c95481b check/print EGL_SCREEN_BIT_MESA, fix eglGetDisplay() call 2005-11-23 01:45:25 +00:00
Brian Paul
957b517c4f Choose the display mode / surface size in an intelligent way.
Fix // comments.
More error checking, etc.
2005-11-23 01:44:38 +00:00
Brian Paul
39591da355 update some comments 2005-11-23 01:42:40 +00:00
Brian Paul
a3d2c69e61 fixed wrong return value in radeonShowSurfaceMESA() 2005-11-23 01:39:56 +00:00
Brian Paul
b8829facc7 change error message 2005-11-23 01:38:30 +00:00
Brian Paul
b711eb793b use _eglLog() 2005-11-23 01:38:12 +00:00
Brian Paul
f049ca4e33 New _eglLog() function to replace fprintf/printf calls for debug/info. 2005-11-23 01:37:30 +00:00
Brian Paul
9bcc9e9174 reference bug 5131 in comment in _tnl_free_vertices() 2005-11-22 23:29:27 +00:00
Brian Paul
286f3fbb3a disable freeing of fp->func, see comment (bug 5131) 2005-11-22 23:27:27 +00:00
Keith Whitwell
e6e1c3fc11 Use correct enums for program output variables. Fixes
fp/tri-depthwrite.
2005-11-22 12:20:03 +00:00
Keith Whitwell
ec1ffd9f25 track state flags which might invalidate parameter lists 2005-11-22 12:12:17 +00:00
Keith Whitwell
5a771857d9 Make sure tnl->_DoVertexFog is kept uptodate. Fixes fog in i915
driver.
2005-11-22 10:58:05 +00:00
Dave Airlie
bf44f6cfac bit 31 of this inserts a nop after the current instruction 2005-11-21 11:39:49 +00:00
Dave Airlie
1ea61b5cad get rid of some of those unknowns figured out from reg dumper 2005-11-21 11:35:36 +00:00
Brian Paul
ec770b8c60 move _mesa_init_instruction() to program.c 2005-11-20 17:57:22 +00:00
Brian Paul
1a61462318 s/Saturate/SaturateMode/ 2005-11-20 17:54:29 +00:00
Brian Paul
e31ac05223 Make Saturate a 2-bit field again, renamed to SaturateMode with three
possible values: SATURATE_OFF, SATURATE_ZERO_ONE and SATURATE_PLUS_MINUS_ONE.
2005-11-20 17:52:40 +00:00
Brian Paul
22db535776 additional clean-ups and improvements 2005-11-19 23:45:10 +00:00
Brian Paul
55194df035 remove incorrect cast 2005-11-19 23:29:18 +00:00
Brian Paul
1353ebed81 Saturate is a 1-bit boolean field 2005-11-19 23:28:55 +00:00
Brian Paul
5d7b49f7e7 Bunch of little fixes:
Fix mem leaks in _mesa_TexEnvProgramCacheDestroy().
Check if ctx->Driver.BindProgram is non-null before calling.
s/unsigned/GLuint/
Use MAX_INSTRUCTIONS instead of magic 100, check program length after it's made.
Use _mesa_init_instruction() instead of _mesa_memset().
2005-11-19 23:12:20 +00:00
Brian Paul
1ad3b7e28b call gluDeleteQuadric() to fix mem leak 2005-11-19 23:09:14 +00:00
Brian Paul
6f445a1061 in run_texnorm_stage() check if the texture unit is really enabled before trying to normalize the texcoords 2005-11-19 17:08:15 +00:00
Brian Paul
41c8eabe0f update some vars 2005-11-19 16:50:36 +00:00
Brian Paul
63d683091f No longer derive 'ati_fragment_shader' from 'program' class. Only the
program->Id and program->RefCount fields were used and ATI fragment shaders
didn't have too much in common with ARB/NV vertex/fragment programs anyway.
2005-11-19 16:43:04 +00:00
Brian Paul
430c469c5b remove #include arbfragparse.h 2005-11-19 15:44:53 +00:00
Brian Paul
47e511c36d remove #include arbfragparse.h, s/PI/M_PI/ 2005-11-19 15:42:39 +00:00
Brian Paul
9fd133511c removed arbfragparse.[ch] arbvertparse.[ch] 2005-11-19 15:37:00 +00:00
Brian Paul
8c41a14c5e Remove the _mesa_parse_arb_vertex/fragment_program() functions into
arbprogparse.c and remove arbvertparse.[ch] and arbfragparse.[ch].
Clean up quite a bit of the arb parsing code.
Rewrite parser extension code to avoid a mess of string operations every
time the parser was used.
2005-11-19 15:36:28 +00:00
Brian Paul
5754809421 update comments, remove ^M chars 2005-11-19 14:57:47 +00:00
Brian Paul
8c765ad312 move a bunch of gl2/shading language structs from mtypes.h to shaderobjects.h 2005-11-19 14:49:25 +00:00
Aapo Tahkola
ddf61bfec9 Try to detect when native support to given texture width is not available. 2005-11-18 20:53:50 +00:00
Aapo Tahkola
f31448f3c8 Fix typo causing secondary color not to work properly. 2005-11-18 18:05:19 +00:00
Aapo Tahkola
40ca5b455f Reduce stderr noise. 2005-11-18 17:57:27 +00:00
Brian Paul
311bcf5090 In _mesa_RenderbufferStorageEXT(), try to avoid needless reallocation.
Simplify _mesa_GetRenderbufferParameterivEXT() queries.
2005-11-18 02:24:14 +00:00
Brian Paul
948ab5d8a9 move _mesa_update_state() calls before error tests that depend on framebuffer completeness 2005-11-17 05:01:26 +00:00
Brian Paul
74e9a43a2a optimize drawing GL_DEPTH_STENCIL pixels into a GL_DEPTH_STENCIL renderbuffer 2005-11-17 05:00:17 +00:00
Brian Paul
5ba41dfa81 s/MEMCPY/_mesa_memcpy/ and fix typo 2005-11-17 04:51:56 +00:00
Brian Paul
11f179e01b optimize case of reading GL_DEPTH_STENCIL pixels from GL_DEPTH_STENCIL renderbuffer 2005-11-17 04:51:08 +00:00
Brian Paul
f81c78f87d delete frame/renderbuffers upon exit, more error checking 2005-11-17 02:08:10 +00:00
Brian Paul
547113c16c improved error checking in error_check_format_type() 2005-11-17 02:05:42 +00:00
Thomas Hellström
154cc16d08 Fixes for x86_64 Unichrome. 2005-11-16 19:24:00 +00:00
Thomas Hellström
0ba7be0a50 Bring in last minute 6_4 branch changes to the unichrome driver
to the trunk.
2005-11-16 17:24:26 +00:00
Brian Paul
32fe233d54 added -ds option to test GL_EXT_packed_depth_stencil with framebuffer objects 2005-11-16 14:48:11 +00:00
Brian Paul
0f29ef6092 additional comments about GL_DEPTH_STENCIL buffers 2005-11-16 04:17:20 +00:00
Brian Paul
94f70fab64 added depthstencil.[ch] 2005-11-16 04:12:08 +00:00
Brian Paul
1a5f1bdb42 Use new gl_framebuffer _Depth/_StencilBuffer fields instead of
Attachment[BUFFER_DEPTH/STENCIL].Renderbuffer.  The former may be wrappers
around combined depth/stencil renderbuffers attached at the later points.
2005-11-16 04:09:26 +00:00
Brian Paul
909e8a7abb added depthstencil.c 2005-11-16 04:06:32 +00:00
Brian Paul
847160466c Support for combined depth/stencil renderbuffers (GL_EXT_packed_depth_stencil).
depthstencil.c provides wrappers for treating depth/stencil buffers either
as regular depth or stencil renderbuffers.
2005-11-16 04:05:54 +00:00
Brian Paul
06185363dd added _mesa_new_depthstencil_renderbuffer() for combined depth/stencil buffers 2005-11-16 04:00:31 +00:00
Brian Paul
c731d6223c Added error checking in _tnl_Begin to detect incomplete framebuffer.
Set new tnl->DiscardPrimitive field to true when such error is
detected to discard the glBegin/End primitive when flushing.
Added some new comments.
2005-11-16 02:47:16 +00:00
Brian Paul
0ad64faec7 change an assertion 2005-11-16 02:00:34 +00:00
Brian Paul
738f501f73 Replace GL_POLYGON+1 with PRIM_OUTSIDE_BEGIN_END 2005-11-16 01:58:19 +00:00
Brian Paul
62620d349b add GL_INVALID_FRAMEBUFFER_OPERATION_EXT in _mesa_error() 2005-11-16 01:11:06 +00:00
Brian Paul
daeb0056df fix color interpolation problem reported on VMS 2005-11-15 15:08:03 +00:00
Brian Paul
7edf68e081 check for ctx==NULL, bug 4087 2005-11-15 14:50:55 +00:00
Brian Paul
1e134cf7e4 Fix problem in stencil_and_ztest_span() when using h/w stencil buffer.
Fix a comment typo.
Remove some unneeded #includes.
2005-11-15 04:01:29 +00:00
Ian Romanick
5ef524cd01 Two subtle things missed on the previous commit. 2005-11-15 01:55:46 +00:00
Ian Romanick
a163256cc2 Add the ability for interleave to test passing invalid format enums
and invalid stride values (see bugzilla #5058).
2005-11-15 01:46:49 +00:00
Ian Romanick
e5700a1ba3 Simple test of glInterleavedArrays functionality. 2005-11-14 23:31:05 +00:00
Brian Paul
cb6b47b795 remove unneeded RasterPosValid check 2005-11-14 18:23:56 +00:00
Brian Paul
7b98b40e47 Improve _mesa_print_program().
Added make_state_string() to produce a string from a GL state vector.
2005-11-12 23:25:49 +00:00
Brian Paul
b3c095f074 fix comment for TexSrcTarget 2005-11-12 23:24:32 +00:00
Brian Paul
662fbf8a62 Added _mesa_light() helper function so we can avoid transforming then
un-transforming light positions and spot directions when popping light
state off the attribute stack.
2005-11-12 18:58:12 +00:00
Brian Paul
ba3da6154c Added OSMesaColorClamp(), bug 4917 2005-11-12 18:44:29 +00:00
Brian Paul
e3636b4114 update an assertion 2005-11-12 17:59:05 +00:00
Brian Paul
bed8363aa6 update some assertions 2005-11-12 17:56:18 +00:00
Brian Paul
de99760bf3 Move stuff common to vertex/fragment_program into the base class, including:
Instructions, InputsRead, OutputsWritten, and Parameters.
Also, added debug functions: _mesa_print_instruction(),
_mesa_print_program_parameters() and revamp _mesa_print_program().
2005-11-12 17:53:14 +00:00
Brian Paul
77ee31930a Make _mesa_is_proxy_texture() non-static and use in a few more places.
Use COPY_4FV() where possible.
Added some comments, clean-ups.
2005-11-11 15:33:36 +00:00
Ian Romanick
0325bc6359 Support for "fragment program to C" and TCC has been removed from the
source code, so there is no reason for this config to exist.  This
fixes fdo bugzilla #5004.
2005-11-10 16:25:37 +00:00
Brian Paul
418a7dbd75 s/MAX_LIGHTS/ctx->Const.MaxLights/ and spruce up some comments 2005-11-10 16:22:56 +00:00
Brian Paul
6297799fee fix popping of GL_SPOT_DIRECTION (bug 5005) 2005-11-10 16:19:44 +00:00
Brian Paul
db40ebfbb7 remove -DMESA_DEBUG 2005-11-10 05:10:49 +00:00
Brian Paul
1984aabe83 Move code to enable FP exceptions into debug.c (set MESA_DEBUG=fpexceptions).
Get rid of MESA_DEBUG preprocessor symbol, just use DEBUG instead.
2005-11-10 05:10:25 +00:00
Brian Paul
a8446f72f4 fix popping of GL_EYE_PLANE state (bug 4996) 2005-11-09 16:52:21 +00:00
Brian Paul
a8717180d9 Bug 4996.
Replace use of FLOAT_TO_USHORT with either CLAMPED_FLOAT_TO_USHORT or
UNCLAMPED_FLOAT_TO_USHORT.  Same should be done for UBYTE, UINT, etc.
2005-11-09 16:30:50 +00:00
Brian Paul
cfca72cfb1 use UNCLAMPED_FLOAT_TO_USHORT/UBYTE in clear_rgba_buffer() (bug #4992) 2005-11-09 01:17:33 +00:00
Brian Paul
8850a7e20f Move COPY_FLOAT() macro down into glide driver.
Rewrite COPY_4FV() macro to not use COPY_FLOAT(), and use integer moves as
originally intended.
2005-11-09 00:56:51 +00:00
Ian Romanick
5374e4ba7e At keithw's request, remove all traces of the "fragment program to C" and
TCC experiment.
2005-11-08 22:54:22 +00:00
Ian Romanick
4884db6eb2 This patch adds the missing NV_vertex_program2 and NV_vertex_program3
instructions to the various internal tables.  It does not add support for
them to the parser nor does it add support for them to the program
interpreter.

It also corrects some errors in the comments in program_instruction.h.

This patch breaks the instruction union in t_vb_arbprogram.h.  The opcode
field in that union was only 6 bits.  When there were only 59+3 instructions
that worked fine. However, this patch increases the base instruction count
to 69.  This requires 7 bits.  The problem is that increasing the opcode
width to 7 bits increases the size of instruction::rsw to 33 bits.  I've
increased the size of the union to 64-bit, but this is just a temporary hack
(and probably breaks the build on some systems).
2005-11-08 22:40:26 +00:00
Brian Paul
e1a5edf083 s/_mesa_debug_fp_inst/_mesa_print_program/ 2005-11-08 14:53:24 +00:00
Brian Paul
bdd80bf819 remove _mesa_debug_fp_inst() 2005-11-08 14:52:51 +00:00
Brian Paul
0bffb1192a some initial work on upcoming GL_EXT_framebuffer_blit extension 2005-11-08 14:45:48 +00:00
Brian Paul
3e9c099088 remove a bunch of extension stuff that's in glxext.h 2005-11-08 14:44:07 +00:00
Brian Paul
02df9e1ed4 minor work in _mesa_print_program() 2005-11-08 14:42:52 +00:00
Brian Paul
832026f906 remove unneeded #includes 2005-11-08 14:41:41 +00:00
Brian Paul
beff21e7bf remove unneeded #includes 2005-11-07 17:36:34 +00:00
Brian Paul
189bbe0b8c s/_mesa_debug_fp_inst/_mesa_print_program/ 2005-11-07 16:03:46 +00:00
Brian Paul
c657d8e3e4 s/_mesa_debug_vp_inst/_mesa_print_program/ 2005-11-05 20:18:51 +00:00
Brian Paul
30d6a4bffa consolidate vertex/fragment program printing into _mesa_print_program() 2005-11-05 20:18:18 +00:00
Brian Paul
237dae74f7 use _mesa_program_file_string() and _mesa_opcode_string() 2005-11-05 19:33:13 +00:00
Brian Paul
bf41bc03c2 added _mesa_program_file_string() 2005-11-05 19:32:36 +00:00
Brian Paul
b7c87974b3 Use _mesa_opcode_string() 2005-11-05 19:24:08 +00:00
Brian Paul
c289f48342 use _mesa_num_inst_src_regs() and _mesa_opcode_string() 2005-11-05 19:16:19 +00:00
Brian Paul
b88fb724e6 use _mesa_num_inst_src_regs() instead of nr_args() 2005-11-05 19:15:27 +00:00
Brian Paul
1fcdaf1c3b added _mesa_num_inst_src_regs() and _mesa_opcode_string() 2005-11-05 19:12:36 +00:00
Brian Paul
637c375ee2 s/Negate/NegateBase/ 2005-11-05 17:23:45 +00:00
Brian Paul
9ba4ef3102 s/TexSrcIdx/TexSrcTarget/ 2005-11-05 17:18:09 +00:00
Brian Paul
7e807510d8 Unify vertex/fragment program instuctions.
Based on patch by Ian (#4967) but also unify instruction opcodes.
2005-11-05 17:10:45 +00:00
Brian Paul
73347516be remove unneeded #includes 2005-11-05 17:08:50 +00:00
Brian Paul
41c8b71871 remove unneeded #include 2005-11-05 17:07:00 +00:00
Aapo Tahkola
47adbde5e5 Fix broken build. 2005-11-05 14:49:26 +00:00
Brian Paul
8894a55d5f added MESA_GLX_ALPHA_BITS env var 2005-11-05 03:12:06 +00:00
Brian Paul
fd4395b8d1 don't need MAKE_SWIZZLE() macro 2005-11-05 03:02:28 +00:00
Brian Paul
613e1ad5d5 Replace parameter_type enum in program.[ch], use register_file enums instead. 2005-11-05 02:15:21 +00:00
Brian Paul
4d0b7618cb minor improvements in _mesa_init_teximage_fields() 2005-11-05 02:12:44 +00:00
Brian Paul
95ebb5f485 use VERT_RESULT_HPOS, VERT_BIT_POS tokens 2005-11-04 16:52:41 +00:00
Brian Paul
2cb1cf484a better ffs() function (bug 4956) 2005-11-04 16:47:22 +00:00
Brian Paul
8ff68b2bf3 just pass ctx to do_ndc_cliptest() rather than stuffing it in the arb_vp_machine struct 2005-11-04 16:43:28 +00:00
Brian Paul
c12ee99d11 MESA_GLX_ALPHA_BITS env var to force visual with alpha channel 2005-11-04 16:41:06 +00:00
Brian Paul
f805cdfedf remove unneeded HIDDEN definition (bug 4956) 2005-11-04 00:58:17 +00:00
Brian Paul
84f3ff91d9 fix MinGW problems (bug 4956) 2005-11-04 00:52:08 +00:00
Adam Jackson
d78834b306 s/dri.sourceforge.net/dri.freedesktop.org/ 2005-11-03 20:49:07 +00:00
Brian Paul
72030e0d91 Streamline code generation by using a fixed size instruction buffer in
arb_program struct.
2005-11-03 03:30:34 +00:00
Brian Paul
ccfe3d4683 use WRITEMASK_* tokens 2005-11-03 02:35:15 +00:00
Brian Paul
7ae9713a60 s/15/VERT_RESULT_MAX/ 2005-11-03 02:28:47 +00:00
Brian Paul
1624162b0c added a const, clean-up 2005-11-03 02:26:47 +00:00
Brian Paul
45cd2f9305 fix typo, minor clean-ups 2005-11-03 02:25:10 +00:00
Brian Paul
bcf4ae7816 added osdemos/ dir to DEMO_FILES 2005-11-02 21:01:26 +00:00
Brian Paul
60031ace75 implement USE_MGL_NAMESPACE for x86-64 dispatch code (Mark Bolstad) 2005-11-02 20:59:37 +00:00
Brian Paul
90ebb581e6 Rename FRAG_OUTPUT_* tokens to FRAG_RESULT_* to match vertex program convention 2005-11-02 18:06:12 +00:00
Jouk Jansen
5a02209cd2 Committing in .
Updated OpenVMS compile support (define tnl for include files)
 Modified Files:
 	Mesa/src/mesa/drivers/common/descrip.mms
 ----------------------------------------------------------------------
2005-11-02 15:24:14 +00:00
Aapo Tahkola
eda460035e Use ctx->VertexProgram._Current . 2005-11-02 14:12:52 +00:00
Aapo Tahkola
26b1c97a9d Remove some ghost code and adjust things a bit. 2005-11-02 14:07:03 +00:00
Keith Whitwell
e4894177ba More useful ARL test 2005-11-02 12:58:38 +00:00
Eric Anholt
3a5626cb84 First step of Radeon DRI unification:
- Makes all three drivers use the same screen structure and setup code, with a
  few ifdefs for the separate compilation to deal with symbols not being
  available to all drivers and the fact that we have no mechanism for dealing
  with different config options for different chip families in the same driver.
  These issues should be dealt with later.
- Introduces IS_R[123]00_CLASS(radeonScreenPtr) macro for code for taking
  different paths depending on the general class of chipset.
- Adds many new R300-class PCI IDs, though not all those listed in
  radeon_driver.c.
2005-11-02 01:15:07 +00:00
Keith Whitwell
a9b927cb6e add an arl test 2005-11-01 20:29:59 +00:00
Aapo Tahkola
a546abc8da Fix broken tnl stage. 2005-11-01 18:12:58 +00:00
Keith Whitwell
f4fbda35b0 Add a NotifyInputChanges() callback so that drivers (particularly tnl
drivers) can track when the sizes or strides of incoming VB->AttribPtr
arrays have changed.
2005-11-01 17:29:46 +00:00
Keith Whitwell
c3626a91ce Several fp and vp tweaks:
- Renumber VERT_RESULT_* values so that they match the
	  numbers of the corresponding FRAG_ATTRIB_ values.

        - Add ctx->VertexProgram._Current and FragmentProgram._Current
	  values which point to either the current client-supplied
	  program if enabled, or otherwise to the current mesa-internal
	  program.  Thus this program is always the correct one for
	  the current state, providing that the mesa flags to turn on
	  automatic generation are enabled.

	- Add callbacks to ctx->Driver.BindProgram() in texenvprogram.c
	  and t_vp_build.c so that the driver knows when the generated
	  program changes.  This is cleaner than trying to code all the
	  possible _NEW_* flags into the driver, and more precise as well.

	- Add a UsesKill flag to identify fragment programs with that
	  instruction, as these can require special treatment.

	- Move the FRAG_OUTPUT values to mtypes.h, near to similar defn's.
2005-11-01 17:25:49 +00:00
Aapo Tahkola
6aa6d440d9 Re-enable fallbacks. 2005-11-01 16:59:13 +00:00
Aapo Tahkola
e7d6bb9dc4 -Fix first frame -bug
-Use 16-bit elts in vtxfmt_a path if possible
-Optimize VSF param uploading
-return in r300DepthMask looks suspicious, use r300Enable instead
-Dont use r300ResetHwState in invalidate state(disabled, missing hooks, possible instabilities)
2005-11-01 15:52:08 +00:00
Aapo Tahkola
3cf156df2b Fix segmentation fault in _tnl_ProgramCacheDestroy(). 2005-11-01 15:43:06 +00:00
Keith Whitwell
da70bc6baa Make colors match the fp tests (really) 2005-11-01 12:22:48 +00:00
Keith Whitwell
a605d9c3de Make colors match the fp tests 2005-11-01 12:20:13 +00:00
Keith Whitwell
d9f362a667 standalone tests for vp instructions 2005-11-01 06:28:39 +00:00
Brian Paul
0505103710 Re-org and clean-up of vertx/fragment program limits (instructions,
temporaries, parameters, etc).
glGetProgramivARB() now returns all the right things.
Updated i915 and r300 code to initialize program native limits and
current program's native instruction/temporary/etc counts.
2005-11-01 04:36:33 +00:00
Brian Paul
ffec105109 fix problems found with gcc 2.96 (bug 4934) 2005-10-31 21:52:56 +00:00
Brian Paul
dcf4c17fb1 check swrast->_FogEnabled instead of ctx->Fog.Enabled 2005-10-31 19:46:55 +00:00
Aapo Tahkola
821b3dd562 Need more than 200 instructions. 2005-10-31 14:37:33 +00:00
Aapo Tahkola
37f2eaa316 Improve tnl program searching performance. 2005-10-31 14:34:32 +00:00
Brian Paul
18e7c5c5fe Simplify parse_attrib_binding().
Now only use VERT_ATTRIB_* and FRAG_ATTRIB_* tokens instead of
hard-coded numbers.
Note: previous check-in did similarly for output register parsing.
2005-10-30 21:46:00 +00:00
Brian Paul
7aebaf3deb Lots of clean-up in arb program parser.
Use new _mesa_init_fp/vp_instruction() function to initialize instructions.
2005-10-30 21:23:23 +00:00
Brian Paul
094a1ddf24 need to use absolute value for RSQ 2005-10-30 16:52:02 +00:00
Brian Paul
5d04101d18 added some assertions to catch unexpected swizzle values in cvp_emit_arg(), currently fails sometimes 2005-10-29 18:29:54 +00:00
Brian Paul
32df89e12d Use MAKE_SWIZZLE4() macro in a few more places.
Clean up the parse_extended_swizzle_mask() and parse_swizzle_mask() functions.
2005-10-29 18:26:43 +00:00
Brian Paul
5b3cf5af74 reduced swizzle comment 2005-10-29 18:18:46 +00:00
Brian Paul
1a979736a6 Free old parameter list before assigning new one. FIxes memory leak. 2005-10-29 17:07:09 +00:00
Brian Paul
5244fc6d60 added warning about use of REG_SCRATCH 2005-10-29 16:51:34 +00:00
Brian Paul
3c2f8b22b9 clean-up comments 2005-10-29 16:17:01 +00:00
Brian Paul
a2e696e521 s/lenght/length/ 2005-10-29 16:15:47 +00:00
Brian Paul
af13891dbd fix LIT bug 2005-10-29 16:05:18 +00:00
Brian Paul
4174f79b19 fix a few bugs in SWZ execution 2005-10-29 16:03:19 +00:00
Brian Paul
db02ab767f fix errors in RoughApproxPower(), do_LIT(), _tnl_program_string() 2005-10-29 15:56:53 +00:00
Brian Paul
4570364097 If parsing a program fails, don't change the vertex/fragment program object.
Specifically, don't attach a dummy program.
This change also fixes an occasional segfault.
Some code clean-ups.  Use GLboolean instead of GLuint to return pass/fail.
2005-10-29 15:52:31 +00:00
Eric Anholt
aba878d8c2 Bug #4901: Correct secondary color emission when lighting is turned off, tested
with seccolor on rv200 and r200.

Submitted by:	sroland
2005-10-29 00:27:01 +00:00
Ian Romanick
d7d41ceeb0 Add new test "texfilt". This test is a cousin to texwrap. Instead of
testing various texture wrap modes, this test examines various texture
filter modes, including anisotropic.

Add CFLAGS to a couple places in Makefile so that 32-bit builds on
64-bit archs will work correctly.
2005-10-28 18:41:03 +00:00
Brian Paul
3eec2901db Keith's fixes for RSW and XPD (need temporaries) 2005-10-28 15:40:08 +00:00
Brian Paul
86734ddae4 include tnl.h to silence warning 2005-10-28 15:22:28 +00:00
Brian Paul
b3c98e6205 Added assert that result != arg0 in do_RSW. This currently fails and needs fixing. 2005-10-28 14:41:06 +00:00
Brian Paul
b5ee368baf TNL module needs to implement ctx->Driver.ProgramStringNotify() function
so that calls to glProgramStringARB() to specify a new program causes the
TNL-attached data to get recomputed.
2005-10-28 14:32:49 +00:00
Brian Paul
f51bf9e23c add newline at end of file 2005-10-28 13:12:28 +00:00
Brian Paul
8cb2923038 don't use -Wmissing-prototypes for C++ code 2005-10-28 13:11:00 +00:00
Brian Paul
ca33e21165 silence a bunch of compiler warnings 2005-10-28 13:09:23 +00:00
Aapo Tahkola
5222c58a68 Silence gcc-4 warnings. 2005-10-28 12:43:41 +00:00
Aapo Tahkola
dc44372ba7 Fix texture mixup when two or more contexts. 2005-10-28 12:14:58 +00:00
Dave Airlie
eb171b0c10 fix missing commit for span changes 2005-10-28 12:05:25 +00:00
Dave Airlie
3b3adf3daa fix up radeon span functions using latest r200 code from Brian,
tested with reflect on 32-bit.. not sure why depthHasSurface isn't needed
2005-10-28 12:00:09 +00:00
Aapo Tahkola
a4af1119f5 Compiled arrays for vtxfmt_a path. 2005-10-28 09:28:32 +00:00
Eric Anholt
9c8f649930 GC a bit of dead code I noticed while looking at texwrap. 2005-10-28 07:00:41 +00:00
Eric Anholt
c57be49099 Correct the ordering of the blend constant color. 2005-10-28 06:15:11 +00:00
Eric Anholt
4b9f1308e5 Add support for GL_EXT_stencil_wrap, from hearing that the windows drivers did
it, and guessing that the two remaining entries in the 3-bit values were the
new funcs.  Tested with modified stencilwrap test.  Also, remove the commented
fallback stuff -- more modification to stencilwrap suggests that those issues
were just from span readback, not stencil implementation.
2005-10-27 21:21:05 +00:00
Eric Anholt
215c4c3a9c Bug #1028: Add hardware-accelerated stencil support to r128. Testing with
stencilwrap reported many issues with various modes.  Some of these were
complicated by the fact that spans are broken (Bug #1615), but some appear to be
real bugs.  However, while spans remain broken, I found that visual results were
better by avoiding fallbacks rather than avoiding just a broken stencil
implementation.  Note that this required changing the depth spans at 24+8bpp
into read-modify-write cycles.  It would be nicer as a single write with
a mask, but the kernel span blits turn off masking.

Reviewed by:	ajax
2005-10-27 20:26:24 +00:00
Eric Anholt
512c994b92 Bug #4900: Fix the non-fogcoord fog test on r100 (and rv200) at tcl_mode=1 by
flipping the signs on two factors.  While this contradicts the DDK, it matches
what r200 does, and it fixes the test.
2005-10-27 19:59:41 +00:00
Eric Anholt
170a61ec00 Add support for HW stencil spans, mirroring the depth spans support. Used for
Rage 128 stencil support.
2005-10-27 06:01:50 +00:00
Eric Anholt
2d0c92d81b Bump driver date for recent extension adds. 2005-10-27 01:46:39 +00:00
Aapo Tahkola
03833ba2ca Cover my arse. 2005-10-26 18:02:37 +00:00
Aapo Tahkola
d240b29b95 Reduce stderr noise and fix some compiler warnings. 2005-10-26 17:55:28 +00:00
Aapo Tahkola
22605caea8 Remove few outdated r200 files. 2005-10-26 17:04:15 +00:00
Aapo Tahkola
4dc3249f0d Sync with my local tree.
Changes to current operation:
-Elts are no longer converted to 16-bit format
-Cube maps
2005-10-26 16:42:06 +00:00
Aapo Tahkola
23f076ca67 Fix invalid vsf temp count for rv350. 2005-10-26 13:35:41 +00:00
Eric Anholt
5f79025e0d Fix the RGB order of the specular color emit, and turn GL_EXT_secondary_color
back on.  Tested using seccolor modified to use the blue channel instead of
green, since green stays in the same place across RGB/BGR mistakes.  Also hook
in UpdateSpecular on COLOR_EXT change, which might have resulted in missing
statechanges before.
2005-10-26 10:46:49 +00:00
Eric Anholt
f8a5898ca0 Add support for GL_EXT_fog_coord, tested using tests/fog.c. (Also, matches the
output from indirect rendering).
2005-10-26 10:11:34 +00:00
Eric Anholt
9eaed1178d Add built programs to .cvsignore. 2005-10-26 09:53:38 +00:00
Eric Anholt
896735e412 Add a fog mode (normal and fog_coord, leaner/exp/exp2 mode) testing program I
wrote for sis, which has also exposed a few bugs elsewhere.
2005-10-26 09:48:03 +00:00
Eric Anholt
2330ed08c3 Add disabled support for GL_EXT_fog_coord. While it seems correct to me, it's
not respecting the coords (or perhaps interpreting them differently?) in my
testing.  However, in the process it led to a fix of a secondary color handling
issue where it would be taken from the wrong offset, I believe, based off of
reading the r200 driver.  Also add a minor tweak to save time in the
fog-but-not-specular case.
2005-10-26 09:37:53 +00:00
Eric Anholt
a09d002bb5 Move the front.offset setting above a check to shortcut reallocating buffers if
width and height stayed the same.  Rely on front.offset pointing at the origin
in the window (rather than the origin of the front buffer), and fix the coords
in swapbuffers, which were wrong.  This is different from other drivers because
we've got a back buffer with a 0,0 origin at the window's origin, which makes it
more convenient to have the front buffer match it.
2005-10-25 21:10:28 +00:00
Eric Anholt
f1113fa99d Initial add of some (disabled) SiS 6326 drawing code integrated from Alan Cox's
last drop I saw, which was in turn based on a code drop of mine.  Texturing,
culling, and several extensions are unimplemented, and some features could
probably be improved. It's untested, but there don't appear to be regressions on
the 300-series code, so I'd like to get these bits in now so that it can be
worked on as not a huge diff.
2005-10-25 20:37:01 +00:00
Brian Paul
7e4cc1c29f updates from 6.4 branch 2005-10-24 23:33:27 +00:00
Eric Anholt
005070a62a Cut a bunch of code by not trying to precompute the blit commands and instead
just do it per blit.  No noticable performance difference (or behavior
difference, in my tests), and a significant difference in sanity.
2005-10-24 22:38:11 +00:00
Eric Anholt
7040b7ad88 In the last commit I added in a fatal error on unknown base formats so I
wouldn't get confused when adding support for new formats.  However, it resulted
in dying in texenv instead of drawing something undefined for GL_DECAL.  Do what
GLcore apparently does and just pass the fragment through.
2005-10-24 22:23:52 +00:00
Eric Anholt
f33beed330 Fix and enable GL_MESA_ycbcr_texture. Looks fine with yuvrect. I'm slightly
concerned that TEXEL_YUV422 looks like TEXEL_YVU422 and TEXEL_VUY422 looks like
TEXEL_VYU422 in yuvrect, but I'm happy enough for now.
2005-10-24 22:01:40 +00:00
Eric Anholt
81d3bf58ff Add support for GL_EXT_secondary_color, tested with seccolor test. 2005-10-24 21:30:06 +00:00
Eric Anholt
310f1551b4 Turn off the AGP dispatch path yet again, as it seems to be broken (found with
tuxracer and the upcoming support for secondary color).
2005-10-24 21:19:06 +00:00
Brian Paul
32340aea13 fragment program writing to result.depth.z was broken 2005-10-24 19:28:36 +00:00
Adam Jackson
c92adf4682 Add RV350 AQ chip. (popolon at popolon dot org) 2005-10-24 17:42:55 +00:00
Eric Anholt
414b742c97 Since we memcpy texture data synchronously to the card, idle the engine before
we start copying.  I haven't seen it go wrong before, but I'm pretty sure this
fix is correct.
2005-10-24 10:24:23 +00:00
Eric Anholt
60b639b9a6 - Add a few more hardware internal formats that are supported. Some remaining
ones require custom texstore, so they aren't done yet.
- Add YCBCR support commented out, since the yuvsquare test didn't work with
  just the bits I've added.
- Add the no-compression GL_ARB_texture_compression support.
- Add the driconf texture depth option and try to respect it.
2005-10-24 09:59:43 +00:00
Eric Anholt
971bdc193c Fix the GL_BLEND case (and remove the fallback associated with it) by converting
the float values to bytes before packing them.  Tested with texenv.
2005-10-24 09:02:07 +00:00
Eric Anholt
9e87119d87 Fix texenv by moving a misplaced check for being in fallback (should cover only
render state, not texture state).  While here, move a SIS_FIREVERTICES to a more
appropriate location, though it was harmless.
2005-10-24 08:27:30 +00:00
Eric Anholt
9192ab3f5d Add support for GL_ARB_texture_border_clamp and GL_ARB_texture_mirrored_repeat,
tested using texwrap, fixing the sourcing of border constant values (use the
bytes, not the floats!).  Remove the fallback on GL_CLAMP_TO_EDGE, which acts
properly, and add a note to GL_CLAMP about nonconformance (whcih is what the
fallback for CLAMP_TO_EDGE was probably targeting).
2005-10-24 08:02:44 +00:00
Eric Anholt
6efd595bf5 Fix a typo in a fallback string. 2005-10-24 07:21:56 +00:00
Eric Anholt
dc793d4e9a Add support for GL_EXT_stencil_wrap by guessing that the skip of two values in
the register header was meaningful.  It turns out those were the proper values
for the plain INCR/DECR ops, while what we were using as INCR/DECR were the
_WRAP versions.  Tested with stencil_wrap (didn't expose normal/_WRAP swapping)
and stencilwrap (exposed it nicely) tests.  Props to idr for poking me about
adding this.
2005-10-24 06:40:56 +00:00
Roland Scheidegger
3265585b15 disable yuv textures (GL_MESA_ycbcr_texture) on rv250 (hw bug, #2078). Change the initialization to fail if an unknown pci id is detected, instead of accepting all values which are not r100-based radeons. 2005-10-22 02:03:13 +00:00
Eric Anholt
1c04be573e Fix FreeBSD build by building libGL in the order desired, and doing a fix to my
mklib changes.
2005-10-22 01:41:40 +00:00
Brian Paul
52f686c480 fix GLX server resize/crash when resizing windows 2005-10-21 21:39:10 +00:00
Brian Paul
7d3b26022b check span.y >=0 (bug 4842) 2005-10-21 18:35:35 +00:00
Keith Whitwell
e516654dec new depth tests 2005-10-21 18:34:22 +00:00
Keith Whitwell
f28cbb6a7f simplify, remove sgi messages 2005-10-21 18:33:53 +00:00
Brian Paul
32a7ab2197 Darwin version fix (SF bug 1334274) 2005-10-21 15:39:42 +00:00
Brian Paul
54cfe69436 fix broken SWZ instruction 2005-10-21 15:22:36 +00:00
Brian Paul
b3f2e15035 fix broken KIL 2005-10-21 14:22:38 +00:00
Keith Whitwell
3a09ea919c better looking tests 2005-10-21 10:27:37 +00:00
Keith Whitwell
2ea6b800c0 Make test visible 2005-10-21 10:07:52 +00:00
Keith Whitwell
8975cbb36b Better looking test. 2005-10-21 08:34:06 +00:00
Dave Airlie
eedc45709f add the tile bits for offset, and unk bit 31 of size 2005-10-21 06:20:27 +00:00
Brian Paul
f468dfde17 restore FASTCALL stuff 2005-10-20 22:51:50 +00:00
Brian Paul
adfd5510c0 fix bad loops in TransposeMatrix[fd]() 2005-10-20 22:04:01 +00:00
Keith Whitwell
a90909e892 A bunch of little tests which exercise each ARB_fp instruction plus
a couple of other interesting cases.
2005-10-20 21:40:23 +00:00
Brian Paul
f344be793c added mm.c mm.h execmem.c 2005-10-20 21:29:32 +00:00
Brian Paul
255afe4abd fix another renderbuffer wrapping bug 2005-10-20 21:25:41 +00:00
Brian Paul
c8f86105d0 Disable the FASTCALL optimization because it still breaks server-side GLX. 2005-10-20 21:12:35 +00:00
Eric Anholt
6f980dbf21 Bump driver dates for the crasher fixes yesterday. 2005-10-20 20:11:46 +00:00
Jouk Jansen
b50a51118c descrip.mms syntax correction 2005-10-20 13:06:03 +00:00
Dave Airlie
806e25a5d9 fixes for r300_tex.c from Aapo Tahkola 2005-10-20 06:06:18 +00:00
Brian Paul
301c3dcb6c s/glut_gz2/glut_bz2/ 2005-10-19 20:26:13 +00:00
Eric Anholt
2420318cd9 Make SiS a little more like other drivers: Add SIS_DEBUG (only option being
"fall" so far) and make the fallback_force option be no_rast like other drivers.
Incidentally, makes no_rast not crash (though it still fails to render).
2005-10-19 03:23:29 +00:00
Eric Anholt
e0cb784e03 Remove some long-dead code. 2005-10-19 03:07:05 +00:00
Eric Anholt
d76c7d7d3e Fix a missed merge for idr's dispatch changes: failure to do driInitExtensions
in __driCreateNewScreen_20050727 resulted in crashing in dispatch.
2005-10-19 02:46:42 +00:00
Brian Paul
dc4070c787 updated for new mm.c, execmem.c files 2005-10-19 01:28:14 +00:00
Brian Paul
ca2db58166 s/memcpy/_mesa_memcpy/, s/FREE/_mesa_free/ 2005-10-19 01:26:48 +00:00
Eric Anholt
deadd47aab Bug #4615: Fix the SiS driver for the renderbuffer changes. Previously, all
drirenderbuffers pointed at screen offset 0 and NULL.  Instead, set up the front
buffer at startup but leave the others for later, since sis allocates them on
demand rather than using the static method of the other non-sis-descendent
drivers.  Some basic apps work, but fallbacks may be broken still.
2005-10-19 00:53:05 +00:00
Eric Anholt
bf3f0bcf80 Fix a missed merge for idr's dispatch changes: failure to do driInitExtensions
in __driCreateNewScreen_20050727 resulted in crashing in dispatch.  Rendering
remains broken.
2005-10-18 23:48:59 +00:00
Eric Anholt
b83435f53b Attempt to fix libGL on FreeBSD, where the library was being built without any
dependencies, breaking builds of third-party software.
2005-10-18 23:36:40 +00:00
Brian Paul
d99c37bca6 move _mesa_exec_malloc/free() up near other malloc/free prototypes 2005-10-18 15:02:45 +00:00
Brian Paul
1c236fd5c7 Lots of clean-ups. Replace __inline__ with INLINE macro. Use the
_mesa_calloc(), _mesa_free() functions.  Clean-up formatting, doxygen-style
comments.
2005-10-18 15:01:19 +00:00
Keith Whitwell
005469005d Add _mesa_exec_malloc() and _mesa_exec_free() for allocating
executable memory.  Based on Thomas Hellstrom's patch.
TODO: glapi.c also needs this, but cannot access this code.
2005-10-18 13:29:59 +00:00
Roland Scheidegger
05e1a49ab4 on r200, don't emit fog coords when fog isn't actually enabled. Fix bug with vtxfmt not causing a fallback when fog coords are active. 2005-10-18 13:09:53 +00:00
Brian Paul
730200303d added some header files to DRI_FILES (Donnie Berkholz) 2005-10-17 22:38:44 +00:00
Roland Scheidegger
2d61d30117 add GL_EXT_fog_coord support to radeon driver. No vtxfmt code (just uses fallback) yet. May cause a tcl fallback if fog coord is used together with separate specular lighting. Fog factors are precomputed and then submitted instead of the raw coords (chip limitation, same as on r200). 2005-10-17 00:54:12 +00:00
Roland Scheidegger
dd5a86339f fix some obvious typos in radeon_reg.h (only currently unused bits affected) 2005-10-16 22:45:59 +00:00
Roland Scheidegger
247f3b3e81 enable cube maps on radeon (#2241 on bugzilla). No vtxfmt code yet (just generates vfmt fallback). Code by Andreas Stenglein, some small adjustments by me. 2005-10-15 23:45:53 +00:00
Roland Scheidegger
ccf1378131 fix two bugs wrt calculating max possible texture sizes for texture rectangles/cube maps. 2005-10-15 01:07:59 +00:00
Roland Scheidegger
30daa75293 enable 3rd texture unit on radeon (default still 2 enabled units). Disable some multitexcoord codegen stuff noone understands to make it work. Replace most code testing explicitly for unit 0 and 1 with loops instead of adding test for unit 2, smaller/more readable code at the cost of maybe some slight performance hit. (Code provided by Andreas Stenglein, some adjustments by me.) 2005-10-13 14:30:20 +00:00
Roland Scheidegger
ed2f8635f0 make sure texture matrix is updated often enough with texture rectangles 2005-10-13 00:35:51 +00:00
Roland Scheidegger
6ff023fe3a fix potential bug when emitting elts with lots of components 2005-10-13 00:33:46 +00:00
Brian Paul
96e1ccedec remove unused _mesa_log2() (bug 4468) 2005-10-12 19:46:48 +00:00
Brian Paul
c81de36223 change includes (bug 4468) 2005-10-12 19:46:29 +00:00
Brian Paul
f525d3e139 fix GLAPI/extern problem (bug 4757) 2005-10-12 19:37:38 +00:00
Roland Scheidegger
d084c3d4dc Minor driver cleanup. Remove unnecessery/unneded radeon/r200AllocDmaRegionVerts function. No longer compile the radeon_compat stuff which was for drm 1.1 compatibility presumably but unused since about forever into the driver. 2005-10-11 17:55:54 +00:00
Ian Romanick
44b1bd7597 ifdef out some code to make glapi.c linkable in libglx.so (on the
server).  This isn't strictly needed yet, but it doesn't hurt anything
either.  However, the patches for fd.o bug #2996 require this to build.
2005-10-11 16:56:39 +00:00
Brian Paul
e7325294d0 check for PIXMAP in clip routine (SF bug 1323215) 2005-10-11 01:21:40 +00:00
Brian Paul
ac04a4fa7f fixed constant fogcoord bug (#4729) 2005-10-10 18:39:34 +00:00
Ian Romanick
8d29d463a3 Add 'get' data for glGetFramebufferAttachmentParameterivEXT enums.
Remove an extra closing parenthesis in the Linux version of the SWAP_32 macro.
2005-10-10 17:11:02 +00:00
Roland Scheidegger
1c0f11046a do not set format of the incoming vertices needed for fog_coord in the generic state functions. This is done in the vtxfmt/hwtcl/swtcl pathes respectively. 2005-10-08 23:41:20 +00:00
Roland Scheidegger
30f2d6f0cb remove code dealing with drm versions older than 1.3. The driver requires (and requests) 1.3 since quite some time already to work at all. 2005-10-08 23:36:35 +00:00
Brian Paul
b4269c07f8 change test for presence of accum buffer 2005-10-08 21:36:38 +00:00
Brian Paul
cf085db28a Query/print GL_RED/GREEN/BLUE/ALPHA_BITS 2005-10-08 14:42:51 +00:00
Brian Paul
474f28e57c Fix some issues with state updates and renderbuffers. Querying GL_RED_BITS,
etc. after calling glRenderBufferStorageEXT gave undefined results.
2005-10-08 14:41:17 +00:00
Brian Paul
81a22ef539 MATH_DEBUG changes from bug #4468. 2005-10-07 17:18:51 +00:00
Keith Whitwell
f2802c40ff Populate arb_fp_instruction negate field correctly. 2005-10-07 09:55:26 +00:00
Brian Paul
dfe7aedf84 Fix a number of point size attenuation problems.
Move size clamping into the rasterization function.
2005-10-07 03:56:29 +00:00
Roland Scheidegger
9dd973ec3b fix problems with some texgen modes by putting the chip into LOCAL_VIEWER mode for lighting (potentially causes slight misrenderings with the specular components of lights if the light model is not set for local viewer). 2005-10-05 22:40:09 +00:00
Roland Scheidegger
24a44d74b6 reverse accidentally commited part of last commit (makes it compile again...). 2005-10-05 20:28:31 +00:00
Roland Scheidegger
44dace86ea enable point sizes larger than 1 (for aliased points only) by using the hw point sprite primitive. 2005-10-05 16:15:16 +00:00
Brian Paul
26f69d87a4 fix byteswapping bug in _mesa_texstore_ycbcr() (Benjamin Herrenschmidt) 2005-10-05 13:36:05 +00:00
Roland Scheidegger
ea20c324ae fix typo in radeon_maos_arrays.c from last commit (code currently unused, that path is compile-tested only). 2005-10-05 13:09:15 +00:00
Roland Scheidegger
11f763f505 remove unneeded parameter from radeonUploadTexMatrix. 2005-10-05 12:38:07 +00:00
Roland Scheidegger
a3c8de2fa7 Remove the tcl fallback for texture rectangle (by manipulating the texture matrix) (tested with texrect). Enable texgen for r/q coordinates (tested with projtex). Fix projected texcoords when an app uses TexCoord3x and the texture matrix to save on vertex size (fixes ut2k3 shadow projectors in tcl mode). From texgenmix, all cases with all texgen or no texgen work, with the exception of texgen enabled for s/t only, this one works with hw tcl, but not with vtxfmt (suspect issues with vtxfmt), the mixed cases do not work (which is expected, and should be rare in practice), with the exception of the first one which hits a tcl fallback. 2005-10-05 11:42:44 +00:00
Brian Paul
06f606ce57 Remove _IsPowerOfTwo from gl_texture_object, not really needed. 2005-10-05 04:07:50 +00:00
Brian Paul
198a88923c s/IntFormat/InternalFormat/ and s/Format/_BaseFormat/ for gl_color_table. 2005-10-05 02:11:15 +00:00
Brian Paul
8184ec9fb6 added GL_INVALID_FRAMEBUFFER_OPERATION_EXT to gluErrorString() 2005-10-05 02:08:53 +00:00
Brian Paul
a9fc8ba756 In gl_texture_image replace IntFormat with InternalFormat and Format with
_BaseFormat to be consistant with gl_renderbuffer.
2005-10-05 01:48:07 +00:00
Brian Paul
91802fdf73 check if deleting currently bound frame/renderbuffer object 2005-10-04 16:01:02 +00:00
Brian Paul
7edf1e80bd glBindTexture changes, new assertions 2005-10-04 15:16:27 +00:00
Brian Paul
9e920fb93c fix glIsRender/FramebufferEXT() assertions 2005-10-04 15:01:51 +00:00
Brian Paul
bc6cced479 fix behaviour of glIsFrame/Renderbuffer() 2005-10-04 15:01:27 +00:00
Brian Paul
14c38b8f4f Use Visual.depthBits rather than Renderbuffer::DepthBits for depth buffer
operations.
2005-10-04 14:49:30 +00:00
Brian Paul
eb063cfa38 change initialization of renderbuffer DepthBits 2005-10-04 14:48:24 +00:00
Adam Jackson
199ef86b5e Bug #1155: Define IEEE_ONE on Super-H as well. 2005-10-03 20:02:07 +00:00
Brian Paul
a6296dd2c3 disable a warning 2005-10-03 16:11:47 +00:00
Brian Paul
071b30aba1 added a few calls to _mesa_update_framebuffer_visual() 2005-10-03 16:11:35 +00:00
Brian Paul
b0e7d850d1 finish up some missing code 2005-10-03 16:11:21 +00:00
Ian Romanick
8ef0519bbe Change the 'count' for COMPRESSED_TEXTURE_FORMATS from "?" to "-1". This
signals to the script (glX_proto_size.py) that generates the server-side
size functions that a handcoded query is needed to determine the data size.

Also do s/FOG_COORD_SOURCE/FOG_COORD_SRC/.

When initializing the count in glx_enum::__init__, cast the local property
to int.  Thanks to Python's dynamic typing, if this isn't done the type of
stored count will be a string instead of an int.
2005-10-03 15:05:40 +00:00
Ian Romanick
9a3a1497e5 Remove the non-existant --get-alias-set option from the help text.
Update printPixelFunction (which is only used to generate code for the
server-side) to use the correct method for obtaining the dimensions of the
image parameter to a function.

Only use byteswap.h when building generated code on Linux.  Elsewhere use
the (horrible!) macros from X11/misc.h.

Make sure that enums associated with the generic "Get" function get applied
to GetIntegerv, GetBooleanv, GetFloatv, and GetDoublev.
2005-10-03 14:59:26 +00:00
Brian Paul
1fc4b21eb2 check for GL_DEPTH_STENCIL_EXT 2005-10-01 16:09:45 +00:00
Brian Paul
2794507289 plug in _mesa_texstore_z24_s8() 2005-10-01 16:09:26 +00:00
Brian Paul
184a970722 added _mesa_texstore_z24_s8() 2005-10-01 16:08:27 +00:00
Brian Paul
b0a0ca8bd9 GL_EXT_packed_depth_stencil changes 2005-10-01 16:06:25 +00:00
Brian Paul
0899afae33 additional error checking for GL_EXT_packed_depth_stencil 2005-10-01 16:05:30 +00:00
Brian Paul
cef88397a6 fix an assertion 2005-10-01 16:04:38 +00:00
Brian Paul
7f78c93015 simplify the read_depth_stencil_pixels() function 2005-10-01 16:04:09 +00:00
Brian Paul
9758ef9e7b fix broken z24_s8 fetcher 2005-10-01 16:03:30 +00:00
Brian Paul
252194d74e updated comment 2005-10-01 16:03:00 +00:00
Brian Paul
31340f6645 added _mesa_pack_depth_stencil_span() 2005-10-01 16:02:38 +00:00
Brian Paul
3d61c2e778 move around some error checking 2005-10-01 16:02:11 +00:00
Brian Paul
d0529b67f4 use fmod() to prevent overflow of angle variable 2005-09-30 15:03:33 +00:00
Brian Paul
76560af99d implemented fallbacks for GL_EXT_packed_depth_stencil 2005-09-30 03:01:30 +00:00
Brian Paul
82b29819a9 minor improvements 2005-09-30 03:01:11 +00:00
Brian Paul
f493a04be0 added _swrast_get_row() 2005-09-30 03:00:03 +00:00
Brian Paul
1ad6e08090 call glFinish if drawing to front buffer 2005-09-29 18:46:27 +00:00
Brian Paul
b2404b132d implement CopyPixels for GL_DEPTH_STENCIL_EXT 2005-09-29 04:28:21 +00:00
Brian Paul
3fd819aef8 added _swrast_put_row() 2005-09-29 04:27:47 +00:00
Brian Paul
8d0edf015d Rewrite much of the pixel zoom code.
Zoomed DrawPixels of packed depth/stencil works now.
2005-09-29 03:20:15 +00:00
Brian Paul
5208867f12 add error checks for framebuffer completeness 2005-09-28 16:20:34 +00:00
Brian Paul
d95000da2f check for framebuffer completeness, code clean-up 2005-09-28 15:46:46 +00:00
Brian Paul
f7a8d8ffbb updated assertions (see bug 4590) 2005-09-28 14:20:06 +00:00
Brian Paul
1ad7b99925 Initial work for GL_EXT_packed_depth_stencil extension.
glReadPixels done, glDrawPixels mostly done.
2005-09-28 02:29:50 +00:00
Brian Paul
b955474093 change initialization of rb->DepthBits 2005-09-28 02:28:42 +00:00
Brian Paul
1b5d3d647e added GL_EXT_packed_depth_stencil 2005-09-28 02:28:00 +00:00
Brian Paul
ac3ec5096a added _mesa_scale_and_bias_depth() 2005-09-28 02:27:22 +00:00
Brian Paul
dbd0fa920e tweak glAccum error checking 2005-09-27 16:10:49 +00:00
Brian Paul
78b3b667b5 generate GL_INVALID_OPERATION in glAccum if read/draw buffers aren't the same 2005-09-27 15:52:27 +00:00
Brian Paul
99796464c5 Lift all the format/type error checking out of the _swrast_Draw/Read/CopyPixels
functions into the _mesa_Draw/Read/CopyPixels functions.
2005-09-27 01:25:24 +00:00
Brian Paul
70c3bebcde glDraw/CopyPixels of stencil data didn't obey the stencil write mask. Fixed. 2005-09-26 23:06:01 +00:00
Roland Scheidegger
afb9fb0965 remove identity check for texgen planes (which was just plain wrong). 2005-09-26 20:31:40 +00:00
Roland Scheidegger
84c9e671ed fix projective texturing for (swtcl) texture rectangles. Fix wrong argument order for texgen/texmat matrix multiplication. 2005-09-26 17:11:16 +00:00
Brian Paul
ad271b8c98 Added XMesaDrawable to xmesa_renderbuffer. Use it in a few places instead
of the XMesaPixmap field to avoid some X server-side issues with casting.
2005-09-26 00:38:00 +00:00
Dave Airlie
4aeaff2ae7 Add support for texture compression to R300 driver
This isn't perfect, texcmp still has some issues with the small textures..
but its a good start
2005-09-25 10:20:38 +00:00
Dave Airlie
310a10b0f2 add link for radeon_egl.c 2005-09-25 09:45:42 +00:00
Jouk Jansen
d997b90433 Committing in .
1) change compilation on VMS to use IEEE floating points

 2) one more problem with _mesa_sprintf solved

 Modified Files:
 	Mesa/docs/README.VMS Mesa/progs/demos/descrip.mms
 	Mesa/progs/tests/descrip.mms Mesa/progs/util/descrip.mms
 	Mesa/progs/xdemos/descrip.mms Mesa/src/glu/mesa/descrip.mms
 	Mesa/src/glu/sgi/descrip.mms Mesa/src/glut/glx/descrip.mms
 	Mesa/src/mesa/array_cache/descrip.mms
 	Mesa/src/mesa/drivers/common/descrip.mms
 	Mesa/src/mesa/drivers/osmesa/descrip.mms
 	Mesa/src/mesa/drivers/x11/descrip.mms
 	Mesa/src/mesa/glapi/descrip.mms Mesa/src/mesa/main/descrip.mms
 	Mesa/src/mesa/main/texobj.c Mesa/src/mesa/math/descrip.mms
 	Mesa/src/mesa/shader/descrip.mms
 	Mesa/src/mesa/shader/grammar/descrip.mms
 	Mesa/src/mesa/shader/slang/descrip.mms
 	Mesa/src/mesa/swrast/descrip.mms
 	Mesa/src/mesa/swrast_setup/descrip.mms
 	Mesa/src/mesa/tnl/descrip.mms
 ----------------------------------------------------------------------
2005-09-23 07:03:53 +00:00
Brian Paul
79b4dbc496 remove printf 2005-09-23 03:24:27 +00:00
Brian Paul
048b13df65 Replace gl_framebuffer's _ColorReadBufferMask with _ColorReadBufferIndex,
Streamline the _mesa_update_framebuffer() function a bit.
2005-09-23 03:22:20 +00:00
Brian Paul
d5861c06f2 fix clipped glReadPixels bug 2005-09-23 02:16:49 +00:00
Brian Paul
36d9ee1828 added XOR line optimization 2005-09-23 01:42:23 +00:00
Brian Paul
6d3637849b Added a fast xor_line() function. Uses XDrawLine with GXxor mode.
Only used for front-buffer window/pixmap rendering, GL_FLAT shade model,
no Z test or other fragment operations.
2005-09-23 01:40:59 +00:00
Brian Paul
0efc17c105 Add Wrapper field to gl_renderbuffer. Used for wrapping one renderbuffer
with another, such as wrapping a hardware/win-sys RGB renderbuffer with a
software-based alpha buffer.
Previous alpha buffer wrapping was conflicting with the X driver's
xmesa_renderbuffer structure containment/inheritance.  That lead to
memory corruption.
2005-09-23 01:20:09 +00:00
Brian Paul
e5fce1694c improve the test for using software alpha buffer 2005-09-23 01:17:07 +00:00
Ian Romanick
7b01068a23 Enable GL_ARB_texture_mirrored_repeat on Savage4. Refactor the code that
sets the texture wrap mode and texture filter mode for Savage4 to the new
functions savage4_set_wrap_mode and savage4_set_filter_mode.

This was tested with texwrap and tunnel.
2005-09-22 21:25:31 +00:00
Brian Paul
676d0accf5 Replace gl_renderbuffer.ComponentSizes[] with separate RedBits, GreenBits,
BlueBits, etc fields.
2005-09-22 05:19:57 +00:00
Brian Paul
f1e2826856 When testing visual attributes, use the Draw/Read buffer, not the context. 2005-09-22 05:00:12 +00:00
Brian Paul
4fd11949f0 fix a debug message 2005-09-22 04:58:42 +00:00
Brian Paul
63016507d7 changed a renderbuffer check 2005-09-22 04:52:45 +00:00
Brian Paul
7d39e82976 s/GL_DEPTH_BITS/GL_TEXTURE_DEPTH_SIZE_ARB/ in _mesa_GetTexLevelParameteriv() 2005-09-21 21:19:22 +00:00
Brian Paul
8bdc1ae358 add missing scale factor in _swrast_read_depth_span_float() 2005-09-21 18:16:33 +00:00
Brian Paul
978ef2bb6d Remove ACCUM_BITS. 2005-09-21 03:35:08 +00:00
Brian Paul
3e37bafab0 replace GLdepth with GLuint and remove GLdepth 2005-09-21 02:47:32 +00:00
Brian Paul
4092fbd55a replace GLdepth with GLuint 2005-09-21 02:46:17 +00:00
Brian Paul
5bfb9356d6 s/programss/programs/ 2005-09-20 21:04:02 +00:00
Brian Paul
5434695017 initial check-in 2005-09-20 15:51:44 +00:00
Brian Paul
9e4e3adcf8 remove 31-bit Z buffer work-around 2005-09-20 04:47:34 +00:00
Brian Paul
8fadf8f900 change mask[] test in put_mono_row_uint() 2005-09-20 04:47:04 +00:00
Brian Paul
14570e6d7c compute z[i] as GLuint 2005-09-20 04:45:26 +00:00
Brian Paul
f39569f550 some improvements to _swrast_clear_depth_buffer() 2005-09-20 04:36:50 +00:00
Brian Paul
000abaa12d remove unneeded sizeof(GLdepth) test 2005-09-20 04:35:40 +00:00
Brian Paul
7265556b9a Change zLeft and zval to GLuint. Seems to fix 32-bit Z computation 2005-09-20 04:34:29 +00:00
Brian Paul
22607975b4 replace STENCIL_BITS with stencilMax value 2005-09-20 04:31:24 +00:00
Brian Paul
3211b28ee6 remove STENCIL_MAX 2005-09-20 04:25:03 +00:00
Brian Paul
cd81190d5c change location of ffs() code for windows 2005-09-20 02:44:40 +00:00
Brian Paul
17d6fff30c init a=0 2005-09-19 21:16:29 +00:00
Brian Paul
c650bb0b7d s/GLchan/GLubyte/, fix error string, add comment 2005-09-19 20:32:21 +00:00
Brian Paul
02237f447f updated comment 2005-09-19 20:29:34 +00:00
Brian Paul
b3aefd1cfb additional wrapper updates, bug 4468 2005-09-19 20:12:32 +00:00
Brian Paul
a01cb26a90 s/unsigned long/drm_handle_t/ to get compilation of fb driver to work 2005-09-19 17:17:58 +00:00
Brian Paul
26bb7bc025 compilation fixes, don't know if runtime works 2005-09-19 17:17:18 +00:00
Brian Paul
6707433272 Fix potential segfault when trying to read pixels outside renderbuffer bounds.
Use _swrast_get_values() which does clipping.
2005-09-16 21:15:27 +00:00
Brian Paul
82e314252f remove unused _swrast_read_depth_span() 2005-09-16 21:10:27 +00:00
Brian Paul
f2ea634c0c lots of little clean-ups, improvements 2005-09-16 21:07:48 +00:00
Brian Paul
6ae8747539 change some comments 2005-09-16 21:06:57 +00:00
Brian Paul
62a2f8cdd6 pass mask=NULL to write all pixels in clear_ci_buffer_with_masking() 2005-09-16 21:06:33 +00:00
Brian Paul
db64b60225 remove unused ctx var 2005-09-16 18:18:47 +00:00
Brian Paul
aa2069586d use mesa import wrappers, bug 4468 2005-09-16 18:14:24 +00:00
Brian Paul
3cc67cb8cd alphabetize 2005-09-16 04:18:09 +00:00
Brian Paul
aa8abf8081 Rework the texture filtering functions a bit.
No need to pass the texture unit number as an argument.
2005-09-16 04:16:48 +00:00
Brian Paul
792a1bcbe4 replace a couple macros with inlined functions 2005-09-16 01:42:07 +00:00
Brian Paul
8885b077ed more GLuint->GLbitfield changes 2005-09-16 01:41:03 +00:00
Brian Paul
e00ac11d4d Replace GLuint with GLbitfield where appropriate. Also replace GLuint
with GLboolean in a few places.
2005-09-15 05:00:45 +00:00
Brian Paul
0f540f4b04 Code clean-ups, reorg. 2005-09-15 03:58:52 +00:00
Brian Paul
e64874ac2d silence warning 2005-09-15 01:58:39 +00:00
Brian Paul
63b5b8eaff Remove a bunch texel fetch functions that can be handled by the new
adaptor functions.
2005-09-15 01:55:40 +00:00
Brian Paul
9a22b555cf updated comments 2005-09-15 01:08:24 +00:00
Brian Paul
da9f65268d New set_fetch_functions() to set a gl_texture_image's FetchTexel functions
from the gl_texture_format's functions.
Added "adaptor" functions to allow sampling a float-valued texture with
GLchans and vice versa.  This will allow trimming down the number of
texture fetch routines.
2005-09-15 01:06:19 +00:00
Brian Paul
7fb9352fe4 replace s_texture.[ch] with s_texcombine.[ch] and s_texfilter.[ch] 2005-09-15 01:00:20 +00:00
Brian Paul
55187ea63e Update includes post-splitting of s_texture.c 2005-09-15 00:58:03 +00:00
Brian Paul
2cd8791cad Split the s_texture.c file into two new files:
s_texcombine.c - for texture combining/application
  s_texfilter.c - for texture sampling/filtering
2005-09-15 00:57:00 +00:00
Brian Paul
6ce60beb28 remove unused vars 2005-09-14 18:21:05 +00:00
Brian Paul
5f16244879 remove _tnl_MakeCurrent call 2005-09-14 18:09:15 +00:00
Brian Paul
a25fe61607 initial 6.5 release notes 2005-09-14 14:34:54 +00:00
Brian Paul
b43671c8bf Remove _tnl_MakeCurrent() and the unused ctx->Driver.MakeCurrent() callback. 2005-09-14 14:32:20 +00:00
Dave Airlie
04adb70f32 fix breakage from Brians changes earlier 2005-09-14 12:08:32 +00:00
Brian Paul
a702bbfff3 clean-up some _mesa_make_current() code 2005-09-14 03:11:36 +00:00
Brian Paul
5250aa7c6a remove rm -f line 2005-09-14 02:18:43 +00:00
Brian Paul
7a534dcab1 remove .a file before creating new one 2005-09-14 02:18:09 +00:00
Brian Paul
41cf68b4cb pageflip change from radeon driver 2005-09-14 00:49:09 +00:00
Brian Paul
a400a1e404 Instead of calling _mesa_ResizeBuffersMESA() in the Viewport function,
call driUpdateFramebufferSize() when window size/position changes.
2005-09-14 00:42:33 +00:00
Brian Paul
f157e2dee4 make some funcs static 2005-09-14 00:37:10 +00:00
Brian Paul
ff9d235042 Instead of calling _mesa_ResizeBuffersMESA() in the Viewport function,
call driUpdateFramebufferSize() when window size/position changes.
2005-09-14 00:36:27 +00:00
Brian Paul
48799287b3 use mklib script to make drivers instead of gcc -shared 2005-09-14 00:33:03 +00:00
Brian Paul
a60ff20c58 updated comment 2005-09-14 00:11:30 +00:00
Brian Paul
67a8decffe make some functions static 2005-09-14 00:10:56 +00:00
Brian Paul
e42a31350d Instead of calling _mesa_ResizeBuffersMESA() in the Viewport function,
call driUpdateFramebufferSize() when we detect changes in window size/
position in radeonGetLock().
2005-09-14 00:10:27 +00:00
Brian Paul
9ae952a88c added driUpdateFramebufferSize() 2005-09-14 00:09:09 +00:00
Brian Paul
f084f60f8b Move _mesa_add_soft_renderbuffers() from framebuffer.c to renderbuffer.c
Update some comments, code, etc.
2005-09-13 23:37:50 +00:00
Brian Paul
7909dd920d update like for MD2 viewer 2005-09-13 18:18:47 +00:00
Brian Paul
56ff8ed6d8 replace semicolon with && 2005-09-13 15:04:30 +00:00
Brian Paul
363344f5b8 print version with debug info 2005-09-13 14:48:28 +00:00
Brian Paul
7bb7f97594 fix FreeBSD problem (bug 4435) 2005-09-13 13:36:47 +00:00
Eric Anholt
914ec8ef58 Fix libGL build on FreeBSD by respecting ASM_FLAGS.
Submitted by:	Diego Pettenò <flameeyes@gentoo.org>
2005-09-13 05:19:02 +00:00
Brian Paul
878c371e6c Replace ctx->Driver.StencilOp/Func/Mask() functions with
ctx->Driver.Stencil*Separate() functions.
2005-09-13 04:42:09 +00:00
Brian Paul
42c34efd23 OpenGL 2.0's two-sided stencil feature wasn't implemented correctly.
See comment near top of stencil.c for info about OpenGL 2.0 vs.
GL_EXT_stencil_two_side.
2005-09-13 02:59:53 +00:00
Brian Paul
bdf8441f80 just some reformatting 2005-09-13 02:57:07 +00:00
Brian Paul
56a2e084be Clear either 8 or 16-bit stencil buffers. 2005-09-13 02:03:06 +00:00
Brian Paul
b5932cfc9d Use GLuint/GLint intead of GLstencil for stencil state. 2005-09-13 02:02:03 +00:00
Brian Paul
a96f889a57 Move the ctx->FirstTimeCurrent initialization 2005-09-13 01:19:29 +00:00
Brian Paul
5179f671e7 init StencilOpSeparate to NULL 2005-09-13 01:17:01 +00:00
Roland Scheidegger
8d2139e513 add GL_ATI_fragment_shader support for r200 2005-09-12 23:45:05 +00:00
Brian Paul
fd9de710f5 added a return upon out-of-memory, remove a needless assignment 2005-09-12 23:18:21 +00:00
Brian Paul
f6e3234639 restore brace lost in previous check-in 2005-09-12 21:41:45 +00:00
Roland Scheidegger
f20917de5b add complete support for ATI_fragment_shader for the r200. Most of the new code is in the new file r200_fragshader.c. Reverse engeneered by Dave Airlie and me 2005-09-12 21:20:10 +00:00
Roland Scheidegger
11543624ed remove unnecessary Swizzle parameter from struct (forgotten when the code was refactored) 2005-09-12 17:21:40 +00:00
Brian Paul
28569c25f6 use ASM_API variable, bug 4415 2005-09-12 15:19:19 +00:00
Brian Paul
68d436140d make lookup_query_object() static 2005-09-12 15:05:57 +00:00
Brian Paul
758f447a17 remove rendundant r,g,b,a vars (bug 4331) 2005-09-12 13:59:29 +00:00
Dave Airlie
2745df2774 add 1002:5460 M22 X300 card 2005-09-11 04:02:41 +00:00
Dave Airlie
654286eab1 fix dri drivers build 2005-09-11 03:58:29 +00:00
Brian Paul
2eef2eca87 Silence some warnings. 2005-09-11 01:45:04 +00:00
Brian Paul
7f8cb30ccc bunch of updates 2005-09-10 16:57:22 +00:00
Brian Paul
80cef697f4 put GLUT sources into a separate tarball 2005-09-10 16:54:05 +00:00
Brian Paul
26c7e65785 Clean-up of sources/Makefile, bug 4111 2005-09-10 16:41:17 +00:00
Brian Paul
5704b8e57a fix a problem w/ color index mode when CHAN_BITS=16 2005-09-10 16:27:51 +00:00
Brian Paul
f15b499cfd make some vars static 2005-09-10 16:20:47 +00:00
Brian Paul
392c93e398 fix GLubyte/GLchan inconsistencies (bug 4331) 2005-09-10 16:19:36 +00:00
Roland Scheidegger
0ca6715ba5 new demo to test ATI_fragment_shader, not very creative but easy to know if the output is correct. Tests single-pass as well as multi-pass shader (only pseudo-dependant texture read though, and no tex coord swizzling), src and dst modifiers, src repetition, dst masks, constants, and some ops. Both shaders run succesfully with swrast as well as r200. 2005-09-10 01:02:25 +00:00
Roland Scheidegger
c53d2d0ca8 add the new drm packets needed for ATI_fragment_shader to the sanity code of the r200 and radeon driver 2005-09-10 00:31:11 +00:00
Roland Scheidegger
6c2e82b601 add reverse-engeneered register bits needed for ATI_fragment_shader (Dave Airlie, me) 2005-09-10 00:11:27 +00:00
Brian Paul
402b2bea64 Add offset and pitch fields to intelRegion. Remove frontOffset, frontPitch,
backOffset, backPitch, depthOffset, depthPitch, textureOffset fields.
2005-09-10 00:10:15 +00:00
Roland Scheidegger
036a99452d add _tnl_arb_vertex_program_stage to all drivers which already have _tnl_vertex_program_stage. Fixes crashes when using vertex programs. Tested on r200 only (fix by Keith Whitwell) 2005-09-09 23:31:31 +00:00
Brian Paul
a3dd2ce29e remove the redundant textureSize field, use tex.size instead, it's always the same value 2005-09-09 22:57:05 +00:00
Brian Paul
338cbb0e5c don't generate selection hits for glBitmap, glDraw/CopyPixels. Misc clean-ups 2005-09-09 16:40:47 +00:00
Roland Scheidegger
b346213960 fix some bugs with handling of GL_DOT4_ATI, GL_DOT3_ATI and GL_DOT2_ADD_ATI ATI_fs instructions. 2005-09-09 15:43:11 +00:00
Roland Scheidegger
95db1f0127 add missing fallback string for ARB_vertex_program 2005-09-09 12:51:38 +00:00
Roland Scheidegger
7e3be5559e Fix wrong fallback bit being set by the tcl fallback caused by ARB_vertex_program. Disable ARB_vertex_program by default - it is incredibly slow, and just plain doesn't work anyway (arbvptorus fails an assertion, arbvpmesh has bogus output) 2005-09-09 01:38:21 +00:00
Keith Whitwell
45ba4e4332 use an explicit reserved field, rather than magic number in bound 2005-09-08 21:40:10 +00:00
Brian Paul
d9b9b4b3be Fix the comment for the 'bound' field: it's a bitmask, not an index.
In driTexturesGone(), set bound = 0, not 99.
2005-09-08 18:47:36 +00:00
Keith Whitwell
b5cbaf945d Keep NumTemporaries uptodate.
Make sure oC alpha is populated when separate_specular enabled.
2005-09-08 18:45:03 +00:00
Keith Whitwell
b15f46a093 Treat NegateBase as a bitfield, not a boolean. 2005-09-08 18:36:39 +00:00
Keith Whitwell
5cf1397710 be consistent in populating NegateBase field 2005-09-08 18:35:48 +00:00
Brian Paul
4618a9bfc2 check for either GL_ARB_depth_texture or GL_SGIX_depth_texture in a few places 2005-09-08 15:28:45 +00:00
Brian Paul
f36954ec3c fix precision problem in depth clearing (bug 4395) 2005-09-08 13:55:05 +00:00
Roland Scheidegger
f4ff4d36ed fix incorrect swizzling handling. fix code so it can potentially handle implementations with less than 6 texture units correctly. 2005-09-08 13:41:54 +00:00
Jouk Jansen
21ed29598f Committing in .
Define suseconds_t for OpenVMS

 Modified Files:
 	Mesa/src/mesa/drivers/x11/xm_dd.c
 ----------------------------------------------------------------------
2005-09-08 10:05:37 +00:00
Roland Scheidegger
ce3350770c add a bunch of FLUSH_VERTICES to some of the ATI_fs functions, most notably when changing the global ati fragment shader constants. 2005-09-08 00:12:57 +00:00
Brian Paul
692147ebf7 some clean-up and re-org for renderbuffers 2005-09-07 23:28:41 +00:00
Brian Paul
526242614f some updates, but code still out of date 2005-09-07 23:26:01 +00:00
Brian Paul
ab8ef280ec new comment 2005-09-07 23:21:59 +00:00
Brian Paul
f0da327c87 minor tweaks to _mesa_ResizeBuffersMESA() 2005-09-07 23:21:40 +00:00
Roland Scheidegger
b683b0df45 fix bug with ATI_fragment_shader in swrast (need to copy all 4 values due to later applied srcRep) 2005-09-07 21:59:30 +00:00
Brian Paul
8693b70e8f try to fix renderbuffer breakage, primarily in calculate_buffer_parameters() 2005-09-07 18:32:29 +00:00
Brian Paul
eba4ff6e0a minor formatting fix 2005-09-06 21:22:16 +00:00
Brian Paul
d869a43554 added viaRenderbufferStorage() function 2005-09-06 20:42:23 +00:00
Brian Paul
20354edf35 just changes/updates to comments 2005-09-06 14:47:57 +00:00
Brian Paul
bd07168eb2 added -Wmissing-prototypes to WARN_FLAGS 2005-09-06 03:13:18 +00:00
Brian Paul
158a2aa488 Use mklib script instead of ar. Make libmesa.a instead of mesa.a 2005-09-06 03:02:01 +00:00
Brian Paul
c0b4b9fc3e remove DEFARRAY, CHECKARRAY stuff 2005-09-06 02:56:51 +00:00
Brian Paul
e2399effa0 minor clean-up of texture_combine() 2005-09-06 02:55:34 +00:00
Brian Paul
3622f4f27f don't use DEFARRAY/CHECKARRAY stuff 2005-09-06 02:44:00 +00:00
Brian Paul
fcb6a0fa3e make some functions static 2005-09-05 21:17:44 +00:00
Brian Paul
6575e37cbf make r128SpanRenderStart/Finish static 2005-09-05 21:09:22 +00:00
Brian Paul
e3c8a0c16d remove obsolete CurrentBufferBit 2005-09-05 21:04:22 +00:00
Brian Paul
3952d6d4bb remove unused var 2005-09-05 21:03:48 +00:00
Karl Schultz
f66084b834 Add support for memory contexts (Thomas Kaltofen). Cleanup compilation warnings. 2005-09-05 14:48:39 +00:00
Karl Schultz
e15c2d077a remove _swrast_DrawBuffer 2005-09-05 14:08:51 +00:00
Karl Schultz
53a3c70580 Windows mesa.def file had been moved to the drivers dir tree some time ago. This copy is not needed. 2005-09-05 14:03:41 +00:00
Karl Schultz
e81cbd876e fix var declaration so that a C compiler can build it. 2005-09-05 13:45:23 +00:00
Brian Paul
b4b040f7d8 just formatting clean-ups 2005-09-04 22:55:57 +00:00
Brian Paul
16e7aebfe3 Simplify radeonSetCliprects(). Remove the 'mode' parameter. 2005-09-04 22:20:07 +00:00
Brian Paul
87ce68e1b3 Further clean-up and simplification of the span-related functions. 2005-09-04 22:16:08 +00:00
Brian Paul
61ba6b5a74 Add new void *addr and __DRIdrawablePrivate parameters to
driNewRenderbuffer().
2005-09-04 22:13:42 +00:00
Brian Paul
6e0e6eff05 Fix UpdatePageFlipping() function. Always call driFlipRenderbuffers()
with pfCurrentPage value, in case it's initially 1 instead of 0.
2005-09-04 16:15:38 +00:00
Brian Paul
d575a4c4a1 minor clean-ups 2005-09-04 15:03:36 +00:00
Brian Paul
0cfd4f92dd replace GET_SRC_PTR, GET_DST_PTR with GET_PTR 2005-09-04 15:02:48 +00:00
Brian Paul
eae73dbd91 Use InitPointers helper 2005-09-04 15:01:33 +00:00
Brian Paul
90cfbd3dd5 Combine GET_DST_PTR and GET_SRC_PTR into just GET_PTR. 2005-09-04 15:00:04 +00:00
Brian Paul
f8cc27ecfc Added InitPointers helper function 2005-09-04 14:59:34 +00:00
Brian Paul
16f76703a5 replace assertion with a conditional return 2005-09-04 14:59:18 +00:00
Brian Paul
05aed23d1b fudge set_component_sizes() a bit, see comments 2005-09-03 17:33:16 +00:00
Brian Paul
acafeeb6dc Remove last remnants of pre-renderbuffer code. 2005-09-03 16:57:58 +00:00
Brian Paul
54be0763e1 renderbuffer updates 2005-09-03 16:55:02 +00:00
Brian Paul
2b81c8999f SetBuffer, renderbuffer changes 2005-09-03 16:54:20 +00:00
Brian Paul
6e57725061 use new InitStencil/DepthPointer functions 2005-09-03 16:49:35 +00:00
Brian Paul
b0715811e8 remove dead code 2005-09-03 16:48:48 +00:00
Brian Paul
f6540c6252 remove SetBuffer 2005-09-03 16:47:30 +00:00
Brian Paul
687918b794 SetBuffer, renderbuffer changes 2005-09-03 16:43:02 +00:00
Brian Paul
e6925b51e1 added flippedData field for page flipping, code to flip stereo color buffers 2005-09-03 16:42:19 +00:00
Brian Paul
c6262cd8c5 added SetStencil/DepthPointer functions 2005-09-03 16:41:30 +00:00
Brian Paul
3ba814ae07 remove SetBuffer(). Misc renderbuffer changes. 2005-09-03 16:40:44 +00:00
Brian Paul
7fa6c1afb9 silence misc warnings 2005-09-03 16:39:57 +00:00
Dave Airlie
624ad14a58 Check for ATI_fragment_shader enabled 2005-09-02 23:52:05 +00:00
Brian Paul
712e5042de fix some strict aliasing problems related to choosing framebuffer configs (Matthias Hopf) 2005-09-02 17:07:00 +00:00
Brian Paul
93cfdfe1ef GL_EXT_timer_query 2005-09-02 14:02:44 +00:00
Brian Paul
14520eb25e comments 2005-09-02 13:55:50 +00:00
Brian Paul
c799e9ec24 added GL_EXT_timer_query token 2005-09-02 13:43:26 +00:00
Brian Paul
4fb995084e Prototype implementation of new GL_EXT_timer_query extension (not finalized yet).
Extends the query mechanism to query elapsed time while rendering.
2005-09-02 13:42:49 +00:00
Brian Paul
8cdf372946 replace -1 with PROGRAM_UNDEFINED when initializing instructions 2005-09-02 13:40:09 +00:00
Brian Paul
350a167635 set depthHasSurface for stencil renderbuffer 2005-09-02 13:20:20 +00:00
Roland Scheidegger
3c450b2917 ATI_fragment_shader fixes: fix bug in passTexCoord (caused by recent changes). Fix sampling from wrong texture unit. Apply swizzling before texture sampling, and hopefully get non-projected coordinates from swrast. (still does not work at all with sw doom3, way too dark just the same as with the doom3 arb2 path) 2005-09-02 12:05:38 +00:00
Brian Paul
a02febb8cc change scratch pointer from _int32_t to u_int32_t to silence warning. Is this field actually used for anything? 2005-09-02 03:39:31 +00:00
Brian Paul
a517cc1ef6 remove unneeded assertion in stencil/depth LOCAL_DEPTH_VARS code 2005-09-02 03:36:41 +00:00
Brian Paul
b343f06a09 set depthHasSurface field for stencil renderbuffer 2005-09-02 03:28:08 +00:00
Roland Scheidegger
f519a770d0 add error checking to the GL_ATI_FRAGMENT_SHADER entrypoints. Fix bug with scope of ati fragment shader constants. Fix issues with specifying color/alpha instructions not pair-wise. Change internal representation of the shader (to better fit how the extension works, should make driver implementations simpler, and saves some memory). (still doesn't work correctly with doom3 and swrast, but not worse than before) 2005-09-02 01:11:53 +00:00
Brian Paul
b252e0f47f added an assertion to help debug broken stencil readback 2005-09-01 20:14:50 +00:00
Brian Paul
238de2db12 added driFlipRenderbuffers() 2005-09-01 20:11:32 +00:00
Brian Paul
da84f0b642 fix page flipping breakage 2005-09-01 20:10:17 +00:00
Brian Paul
98e92d261b fix typo 2005-09-01 14:04:45 +00:00
Brian Paul
4d11d45d84 some missing renderbuffer changes (Roland) 2005-09-01 14:04:32 +00:00
Brian Paul
fcbfeb5d28 Finish up some of the gl_renderbuffer work.
Use driRenderbuffer's offset, pitch fields in the span routines.
Remove the SetBuffer driver function.
Consolidate the code for setting CTX_RB3D_COLOROFFSET and CTX_RB3D_COLORPITCH
state in new radeonUpdateDrawBuffer() function.
Old code is surrounded by #if 000 / #endif, temporarily.
2005-09-01 04:03:44 +00:00
Brian Paul
982e8e4d5c Finish up some of the gl_renderbuffer work.
Use driRenderbuffer's offset, pitch fields in the span routines.
Remove the SetBuffer driver function.
Consolidate the code for setting CTX_RB3D_COLOROFFSET and CTX_RB3D_COLORPITCH
state in new radeonUpdateDrawBuffer() function.
2005-09-01 03:54:34 +00:00
Brian Paul
8e5479c7f8 s/__inline/INLINE/ 2005-09-01 03:50:54 +00:00
Brian Paul
f1d269060b use char* instead of GLubyte* in i915_program_error() to silence warnings 2005-09-01 03:32:48 +00:00
Brian Paul
f069e74dd8 use proper datatypes to silence a bunch of warnings 2005-09-01 03:19:45 +00:00
Brian Paul
5545245fe7 added a few more fields to help with DRI drivers 2005-09-01 03:07:29 +00:00
Brian Paul
db84ec2c6d remove fxDDSetBuffer() 2005-09-01 03:06:28 +00:00
Brian Paul
af39910f94 remove set_buffer() 2005-09-01 03:05:39 +00:00
Brian Paul
c958a9798a remove old set_buffer routine and misc code 2005-09-01 03:04:41 +00:00
Brian Paul
26bb5239c8 remove the old set_buffer() routine 2005-09-01 02:56:47 +00:00
Brian Paul
527835977a Just additional comments. 2005-08-31 21:38:53 +00:00
Roland Scheidegger
36603539cc enable GL_ARB_texture_env_crossbar on r200, separate the enable bits for texture sampling and texture environment, optimize away texture sampling for units if the result is not used, always emit the env instructions in-order and try to eliminate GL_REPLACE env instructions. 2005-08-31 19:11:09 +00:00
Brian Paul
d5783737f1 use 'f' key to toggle front/back buffer rendering 2005-08-31 16:42:59 +00:00
Brian Paul
2c8524b4fb remove dead code, update comments 2005-08-31 16:04:17 +00:00
Alan Hourihane
cbafed8716 reverse a bogus patch 2005-08-31 15:11:21 +00:00
Dave Airlie
3d4d6d29e2 complete fix for miniglx startup issue since driver version checks 2005-08-31 01:24:01 +00:00
Brian Paul
275a563bea remove redundant ctx->Driver fallback assignments that were already done in _mesa_init_driver_functions() 2005-08-31 00:39:32 +00:00
Brian Paul
f830f640b6 fix a cast/assignment warning 2005-08-31 00:00:17 +00:00
Brian Paul
513a553d4a silence fprintf and casting warnings 2005-08-30 23:57:04 +00:00
Brian Paul
16fb04ccb5 added some parenthesis to silence warnings 2005-08-30 23:50:23 +00:00
Alan Hourihane
f98b9853e1 drmUnmap correct size 2005-08-30 20:37:30 +00:00
Alan Hourihane
b41c025420 move via_dri.h to server 2005-08-30 19:46:08 +00:00
Alan Hourihane
9165d46fdb define Bool for solo builds 2005-08-30 19:22:46 +00:00
Alan Hourihane
d5cc77e37c Fixes from https://bugs.freedesktop.org/attachment.cgi?id=3077 2005-08-30 19:14:23 +00:00
Brian Paul
156dc55628 fix APP_LIB_DEPS 2005-08-29 22:45:52 +00:00
Ian Romanick
f0d0e50994 Implement GL_ARB_texture_env_combine, GL_EXT_texture_env_combine, and
GL_ARB_texture_env_crossbar for i810.  This passes both demos/texenv and all
of glean's texCombine tests.
2005-08-29 15:43:02 +00:00
Alan Hourihane
d9089ab96e remove drmAddress 2005-08-29 15:23:55 +00:00
Brian Paul
3a165edc9a added note about IEEE vs VAX floating point (bug 4270) 2005-08-29 14:45:30 +00:00
Brian Paul
49fd874f24 fix a few proxy color table bugs (bug 4270) 2005-08-28 17:12:07 +00:00
Brian Paul
082501a74c check the Ready flag when getting GL_QUERY_RESULT_ARB 2005-08-27 14:04:37 +00:00
Brian Paul
23ffc3a85d Rearrange the code related to GL_ARB_occlusion_object to generalize query
objects for future types of queries.
2005-08-27 13:56:08 +00:00
Adam Jackson
ca1ac986a1 /dri/msg 2005-08-26 17:50:39 +00:00
Alan Hourihane
f4166a1fd7 Fix the scripts for the cygwin & mingw changes 2005-08-26 09:37:41 +00:00
Brian Paul
adbf932ec1 added singlebuffer demo 2005-08-25 23:26:51 +00:00
Brian Paul
59d680db22 Demo of how to do (nearly) flicker-free rendering with a single color buffer. 2005-08-25 23:25:25 +00:00
Brian Paul
713635adef fix comment and #if test 2005-08-25 22:09:43 +00:00
Brian Paul
a2c65f4793 don't compile debug code (bug 4242: rand undefined) 2005-08-25 19:43:38 +00:00
Brian Paul
2735b33638 remove stray references to ctx->Depth.OcclusionTest 2005-08-25 19:38:42 +00:00
Ian Romanick
8bc0b3f961 Fix texture format selection. ChooseTextureFormat is supposed to select the
hardware format of the texture, and SetTexImages is supposed to use the
format selected by ChooseTextureFormat.  However, both routines were making
their choices based on the texture's BaseFormat.  This is wrong.
ChooseTextureFormat uses BaseFormat and SetTexImages uses
TexFormat->MesaFormat.

Once SetTexImages was fixed to use the right format values,
ChooseTextureFormat was cleaned up.  It now uses the few available texture
formats supported by the i810 in a smarter way.  This should improve the
quality of LUMINANCE, LUMINANCE_ALPHA, and INTENSITY textures.

I tested this by cycling through all the texture formats in demos/texenv and
tests/yuvsquare.
2005-08-25 19:15:01 +00:00
Alan Hourihane
8de9d92acf update for mingw 2005-08-25 18:08:16 +00:00
Brian Paul
8e247d52e3 Update the glut idle function after a new window is created 2005-08-25 17:46:04 +00:00
Brian Paul
b8a804d24f initial 6.5 changes (reflect demo, remove GL_HP_occlusion_test) 2005-08-25 14:24:49 +00:00
Brian Paul
6e4f594a02 removed GL_HP_occlusion_test extension 2005-08-25 14:23:38 +00:00
Brian Paul
dd1a9f75dc fix segfault in Fake_glXCreatePBuffer(), bug 4235 2005-08-25 14:07:06 +00:00
Brian Paul
7e6553c1aa s/GLX_RGBA_BIT/GLX_RGBA_TYPE/ (bug 4237) 2005-08-25 13:18:53 +00:00
Eric Anholt
61d386a93f Attempt to fix the issue reported by Alan Grimes with DRM_RADEON_TEXTURE
erroring out when it shouldn't.  The errno could be changed by usleep() between
the ioctl call and the loop check, if a signal was received.  This could cause
an EAGAIN return from the DRM_RADEON_TEXTURE ioctl to not loop again.
Instead of checking errno, check thevalue of ret itself, since it is a saved
(and sign-flipped) copy of errno from the ioctl call.
2005-08-25 03:38:07 +00:00
Brian Paul
d545d916a8 make tiles a little smaller so they're all visible 2005-08-25 03:09:12 +00:00
Brian Paul
9e385282fc also check for texture border in sample_linear_2d() 2005-08-25 03:05:10 +00:00
Brian Paul
5d7c486d90 Added multi-window support. Press 'n' to create new window, 'k' to kill
a window.  Good for exercising multi-window rendering.
2005-08-24 21:32:02 +00:00
Alan Hourihane
c58cea0085 Fix Windows build problems.
GCC's visibility attribute is for ELF systems, so undef INTERNAL
GCC's fastcall attribute interferes with __stdcall so undef FASTCALL
2005-08-24 09:08:06 +00:00
Brian Paul
334f2d8077 GLw demo doesn't belong here 2005-08-23 14:50:02 +00:00
Brian Paul
17756df903 removed lines that caused some files to be included in tarballs multiple times 2005-08-23 13:40:30 +00:00
Brian Paul
edf0d14bd4 simplify, clean-up texel addressing macros 2005-08-23 03:50:12 +00:00
Brian Paul
249160fdfa update version to 6.5.0 2005-08-23 00:45:54 +00:00
Brian Paul
dfb6c56ed8 added GL_X_RENDERABLE to glXChooseFBConfig (bug 4181) 2005-08-22 14:28:19 +00:00
Brian Paul
dcf14aa3a7 bump version to 6.5 2005-08-22 14:27:33 +00:00
Brian Paul
1e71d6af48 added .S DRI files to tarball (Donnie Berkholz), bumped version to 6.5 2005-08-22 14:27:13 +00:00
Dave Airlie
298af7a609 fix up libdrm for egl 2005-08-21 03:17:52 +00:00
Brian Paul
ae27ef2219 fix typo 2005-08-19 23:44:35 +00:00
Brian Paul
f350e22716 md5 sums for 6.3.2 2005-08-19 23:42:29 +00:00
Brian Paul
eacd347fce update MESA_DEBUG with FP info 2005-08-19 23:34:10 +00:00
Adam Jackson
8fcd1e0287 Convert libGL and DRI drivers to require libdrm.
libdrm can be had from:

http://people.freedesktop.org/~ajax/libdrm/
2005-08-19 20:20:03 +00:00
Ian Romanick
2ae5645115 Fix a realloc problem with indirect vertex arrays. The actual head pointer
wasn't tracked and used for the realloc, so it tended to explode.
2005-08-19 18:53:26 +00:00
Brian Paul
b7c727e500 updates for 6.3.2 release, plus other assorted clean-ups 2005-08-19 16:57:50 +00:00
Alan Hourihane
d912f6cfe3 Commit missing piece from Egbert's 32/64 bit patches 2005-08-19 16:07:33 +00:00
Ian Romanick
f7eb54a12f Enable ARB_texture_compression. The code has been in place for a long time,
but, for whatever reason, the extension wasn't enabled.

Add some comments to i810ChooseTextureFormat.  There's some strangeness with
i810 texture formats.
2005-08-19 00:48:25 +00:00
Ian Romanick
e0029b33ef Add support for NV_blend_square. This was tested with
progs/tests/blendsquare.
2005-08-18 22:27:37 +00:00
Ian Romanick
ab5be2c5f7 Make sure extension entry point offsets are properly initialized. This is
primarilly needed to support functions that are internally implemented using
extension entry points (e.g., glBlendFunc uses glBlendFuncSeparate).
2005-08-18 22:16:46 +00:00
Ian Romanick
61ac29e7c6 Don't try to update hardware texture fields if there is no hardware texture.
This can happen when all the texture enables for a texture unit are disabled.

This fixes bugzilla #3195.
2005-08-18 20:01:01 +00:00
Ian Romanick
b462855c24 Add simple regression test for bugzilla #3195. 2005-08-18 19:52:44 +00:00
Ian Romanick
e918bac8cd Make the i810 driver use driGetRendererString like all the other drivers.
The GL_RENDERER string now accurately contains the chip name.  This was only
tested on a "plain" i810 (PCI ID 8086:7121).
2005-08-18 19:51:11 +00:00
Brian Paul
aa2a357bae Replace mult/div operators with bitwise operators in texel fetch routines
for better performance. (Roland Scheidegger)
2005-08-18 14:33:26 +00:00
Brian Paul
05fe2871e3 Bump version to 6.3.2 2005-08-16 23:13:25 +00:00
Brian Paul
926a19e108 updates for 6.3.2 2005-08-16 23:12:37 +00:00
Brian Paul
160b3284dd include stdint.h if WIN32 and GNUC (Colin Harrison). Patch forwarded to SGI. 2005-08-15 23:25:33 +00:00
Brian Paul
c2c2600728 test the standard stencil op modes too (Philipp Klaus Krause) 2005-08-15 22:57:30 +00:00
Roland Scheidegger
7a362deb8c In _mesa_TexEnvfv, do not accept values for GL_OPERAND2_ALPHA and GL_OPERAND2_RGB which are only valid with ARB_texture_env_combine but not with EXT_texture_env_combine, when only EXT_texture_env_combine is supported. 2005-08-15 18:24:12 +00:00
Ian Romanick
a3dd6efb00 Put back '-I/usr/X11R6/include'.
Make 'USING_EGL=0' the default for now.  It's causing too much confusion for
too many non-developers (which in turn wastes too much developer time).  It
is trivially overridden from the make command line.  See comments in
linux-dri.
2005-08-15 15:01:39 +00:00
Alan Hourihane
dabec11d27 Add Egberts fixes for 64bit architectures
Add additional checks for the *DRIRec info structure passed in from the
device driver. This ensures that things fallback to indirect rendering if
the DDX driver has had modifications (i.e. removal of the drmAddress field).
2005-08-15 06:59:24 +00:00
Alan Hourihane
69dc32cfac Add a check which compares the passed in size of the DDX driver private DRI
structure to the 3D drivers view of it, and abort if they don't match.

This traps the case with the drmAddress removal in the DDX driver.
2005-08-14 12:16:51 +00:00
Ian Romanick
33f9c98aa6 Enable support for EXT_stencil_wrap. The code was already there, but the
extension wasn't enabled.  I have verified its correct function with Mesa's
stencil_wrap test.  It is enabled on both Savage4 and Savage3D.  Since
Savage3D uses a software fallback for *all* stencil operations, this is safe.
2005-08-13 01:43:28 +00:00
Brian Paul
6fe7a0dc01 added FREXPF() macro (bug 4060) 2005-08-12 18:56:56 +00:00
Ian Romanick
f2876d1ee3 Remove the logic that determines at compile time whether or not HAVE_ALIAS
should be defined.  It was flawed on some platforms (e.g., Darwin & mingw).
Instead, rely on the build system to define it on the compiler command line.

This also reverts ajax's hand-edit to indirect_size.c.  I'll fix that on the
X.org side of things later today.
2005-08-11 20:29:45 +00:00
Ian Romanick
fbcc5aedf2 Remove support for the R200_NO_VTXFMT environment variable. Instead use
'tcl_mode=1'.  This fixes bugzilla #3972.
2005-08-11 19:47:06 +00:00
Ian Romanick
4c4e4bfa4e Makefile cleanups suggested by George Fufutos (bugzilla #3899). 2005-08-11 19:37:55 +00:00
Ian Romanick
ac7c147aaf Don't link with libGL, libEGL, or libEGLdri. On EGL setups libGL isn't
available, and on libGL setups libEGL and libEGLdri aren't available.
2005-08-11 19:29:25 +00:00
Ian Romanick
b7ae3e4787 Since Brian's recent commit, "-I/usr/X11R6/include/X11/extensions" is no
longer needed.
2005-08-11 19:23:23 +00:00
Brian Paul
82dfd4b71f fix X #includes so they're relative to X11/ directory (bug 4047) 2005-08-11 14:18:53 +00:00
Ian Romanick
ac887d4211 Make ffb driver build on x86-64. The fix is two fold. First, use the
proper DRM_CAS_RESULT to declare the variable used to store the result
of DRM_CAS.  Second, only use the "real" versions of LOCK_HARDWARE and
UNLOCK_HARDWARE on SPARC.  That's the only platform where the hardware
can really exist.
2005-08-11 04:25:36 +00:00
Ian Romanick
967b006f51 Remove _glapi_check_multithread from the interface exported by the loader to
the driver.  The loader now takes care of this for the driver.

Remove _glapi_DispatchTSD and give _glapi_Dispatch its semantic (i.e.,
having a NULL value means that the application is multithreaded and
_glapi_get_dispatch must be called).

Gut all of the dispatch override code.  This removes _glapi_RealDispatch,
_glapi_tls_RealDispatch, _glapi_begin_dispatch_override,
_glapi_end_dispatch_override, and _glapi_get_override_dispatch.

Remove _glapi_get_proc_address, _glapi_get_proc_name, _glapi_get_version,
and _glapi_check_table from the loader / driver interface.

Reviewed by: Brian Paul
2005-08-10 23:54:15 +00:00
Ian Romanick
1b8d0f149e Mesa uses the glVertexAttrib*NV functions to implement fixed-function
attributes in display lists.  If a driver doesn't add entry points for
GL_NV_vertex_program, it will explode.  This patch adds GL_NV_vertex_program
to the list of default extensions whose entry points are added by
driInitExtensions.

Thanks go to Roland Scheidegger for tracking the problem down and suggesting
the fix.
2005-08-10 23:39:42 +00:00
Brian Paul
8c9cd63c89 the PIXEL_MAP_I_TO_I table should be GLfloat, not GLint 2005-08-10 17:04:03 +00:00
Brian Paul
63c9ebeaff fix static assertion problem for gcc (bug 4022) 2005-08-10 14:42:21 +00:00
Brian Paul
6b563bda43 disable the pointer size assertions (bug 4021) 2005-08-10 14:40:05 +00:00
Brian Paul
5d40169436 fix indentation 2005-08-10 14:38:39 +00:00
Keith Whitwell
738c9a073f Check for prim/vertex store non-null before messing with refcounts. 2005-08-10 14:13:45 +00:00
Ian Romanick
258f005c6b Add rules and target to build src/mesa/x86-64/glapi_x86-64.S. 2005-08-09 18:54:12 +00:00
Keith Whitwell
c91720fb1a Decrement the context's refcounts on part-used storage structs on
context destroy.  Fixes memory leak.
2005-08-09 16:11:28 +00:00
Brian Paul
d2e289c70f actually free the renderbuffer in xmesa_delete_renderbuffer(), fixes a memory leak 2005-08-09 15:17:19 +00:00
Brian Paul
e78a3c42e4 delete display lists upon exit 2005-08-09 15:14:51 +00:00
Brian Paul
a1a6fa2fa1 free display lists and destroy window upon exit 2005-08-09 15:13:32 +00:00
Brian Paul
ecde87054c _mesa_free_framebuffer_data() call frees the renderbuffers, no need to call the Delete methods after 2005-08-09 15:07:55 +00:00
Brian Paul
24d55a1145 free context structure (bug 1252316) and s/free/_mesa_free/ 2005-08-09 14:23:28 +00:00
Ian Romanick
aba4864a25 Make the linux-dri-x86 builds work on x86-64 again. mklib now
determines the bits (either 32 or 64) for libraries without the lib
prefix.  progs/egl/Makefile passes CFLAGS on the link commands so that
things like '-m32' get propagated.
2005-08-08 23:22:46 +00:00
Brian Paul
7bf08c23fd s/Disaptch/Dispatch/ (bug 3918) 2005-08-08 21:42:51 +00:00
Brian Paul
63dffa4e77 added directfbgl.h to tarball 2005-08-08 21:30:12 +00:00
Ian Romanick
da0c5b2e2c Since glcontextmodes.[ch] are no longer used in the DRI drivers, removed the
IN_DRI_DRIVER cruft.  This was suggested by George Fufutos.
2005-08-08 17:22:44 +00:00
Dave Airlie
0d942b740c fix up color tiling in miniglx radeon server code 2005-08-08 04:34:35 +00:00
Dave Airlie
ac54de021a fix miniglx setting virtual size of 832 for 800x600 2005-08-08 04:17:52 +00:00
Jon Smirl
ae4e58c9ab Remove platform specific bits from radeon_egl.c 2005-08-08 03:58:26 +00:00
Eric Anholt
81b3c5e85c Dike out the linux-specific EGL bits unless it's a linux build. 2005-08-08 03:27:28 +00:00
Eric Anholt
f1a261377f Since this isn't a bash script, don't use function and instead inline the usage
into the one place that it's used.
2005-08-08 03:26:18 +00:00
Vladimir Dergachev
8e653f12bc Allow R300 driver to build on x86-64 and PowerPC. 2005-08-07 21:50:33 +00:00
Jon Smirl
bf54a28384 Add missing egldri.h header file 2005-08-07 02:30:32 +00:00
Jon Smirl
9a4dbf1cff Fix up some of the sample to work with the r200 EGL driver 2005-08-07 02:15:27 +00:00
Jon Smirl
7e5da5d526 Enable EGL support in 'linux-dri' config 2005-08-07 02:13:14 +00:00
Vladimir Dergachev
94a4eb1e78 Follow suggestion by Aapo Tahkola to fix giant memory leak from forgetting to free the key when entry was already found (presumably a common case). 2005-08-06 05:19:42 +00:00
Vladimir Dergachev
b8731903df Fix card_extensions by following corresponding r200 code.
Fix suggested by Ian Romanick.
R300 driver now works without segfault.
2005-08-06 04:39:27 +00:00
Ian Romanick
23a4f50c5b Fixes bugzilla #1730.
Make sure that all the values used in the clean-up code are initialized at
some point.  It is still unclear to me as to why GCC does not complain.  I
suspect the problem may be due to the depth of if-statement nesting.
2005-08-05 23:13:13 +00:00
Ian Romanick
6965f2cb0a Fixes bugzillla #812.
The weak version of _glapi_DispatchTSD was removed from dri_util.c.  As
stated in the bug report, this was only needed to support versions of libGL
that did not have this symbol.  Versions of libGL without this symbol are no
longer supported at all, so it is totally irrelevant.
2005-08-05 22:12:49 +00:00
Alan Hourihane
928218a283 remove the drmAddress 2005-08-05 20:47:59 +00:00
Ian Romanick
6bc24c5c05 In order to create the set of available extensions, we have to know if
direct-rendering is possible on a given screen.  It is not possible to
determine this by just looking at driDisplay.private in the display
structure.  However, it is possible to determine this by looking at
driScreen.private in the screen structure.  This field is only non-NULL if a
DRI driver has been successfully loaded and bootstrapped.  Once we get to
that point, we know that direct-rendering is at least theoretically
possible.

This fixes bugzilla #2875.
2005-08-05 19:13:51 +00:00
Ian Romanick
126c89e35f Fix recent problems with display lists and other parts of the code.
CALL_by_offset, SET_by_offset, and GET_by_offset all had various problems.

The core issue is that parts of the device-independent code in Mesa assumes
that all functions have slots in the dispatch table.  This is especially
true in the display list code.  It will merrilly try to set dispatch
pointers for glVertexAttrib1fARB even if GL_ARB_vertex_program is not
supported.  When the GET/SET/CALL macros are invoked, they would read a 0
from the remap table.  The problem is that 0 is the dispatch offset for
glNewList!

One change is that the remap table is now initialized to be full of -1
values.  In addtion, all of the *_by_offset marcos misbehave in an obvious
way if the specified offset is -1.  SET_by_offset will do nothing,
GET_by_offset will return NULL, and CALL_by_offset, since it uses
GET_by_offset, will segfault.

I also had to add GL_EXT_blend_func_separate to the list of default
extensions in all_mesa_extensions (src/mesa/drivers/dri/common/utils.c).
Even though many drivers do not export this extension, glBlendFunc is
internally implemented by calling glBlendFuncSeparate.  Without this
addition, glBlendFunc stopped working on drivers (such as mga) that do not
export GL_EXT_blend_func_separate.

There are still a few assertions / crashes in GL_ARB_vertex_program tests,
but I don't think that these are related to any of my changes.
2005-08-05 18:13:37 +00:00
Jon Smirl
33f5e47faf Remove EGL from linux-solo makefile 2005-08-05 03:48:15 +00:00
Jon Smirl
485528f2ac More EGL prep. No impact on anything outside of EGL 2005-08-05 03:33:59 +00:00
Jon Smirl
b507bd4160 New files for radeon egl driver.
Still a work in progress.
2005-08-04 22:23:34 +00:00
Ian Romanick
711555d1e3 Convert all instances of XTHREADS to USE_XTHREADS. This fixes one of
serveral things that are broken when building on a system with X.org 7.0rc0
installed.
2005-08-03 23:05:25 +00:00
Dave Airlie
7f5925d57c Add color tiling support to miniglx for radeon
(Stephane Marchesin + Dave Airlie)
2005-08-03 10:22:31 +00:00
Ian Romanick
7adcedcd54 Fix build problems related to finding Xthreads.h. 2005-08-01 16:30:24 +00:00
Ian Romanick
29206ae569 Remove unused structures and data fields. These had been left in because
DRI drivers using the "old" interface relied on certain fields being at
certain offsets.  Removing the structures would break that.  Now that the
old interface is no longer supported, the dead data can finally die.
2005-07-29 17:30:18 +00:00
Ian Romanick
dc6e2c778a Add a new config called linux-indirect. This build the GLX libGL just like
linux-dri, but it disables support for direct-rendering in it.  This config
mainly exists so that I can verify that changes to libGL haven't broken
builds on non-DRI platforms.
2005-07-29 17:25:50 +00:00
Jon Smirl
4508bcc72c Leave the AGP_BASE code in. It is pointless to bump the interface
for X on a miniglx fix. It can be removed later.
2005-07-29 16:53:02 +00:00
Jon Smirl
a7d4bfed8a Remove OUTREG(RADEON_AGP_BASE, info->ringHandle); from DRI driver
Code is already in DRM driver to do this.
2005-07-29 13:58:22 +00:00
Jon Smirl
4ce390b933 Commit Ian's fixes from Bug 3877
I have tested these on miniglx and they seem to be working.
I'm sure Dave will give them a better test.
2005-07-29 00:48:12 +00:00
Jon Smirl
df68d11b47 Fix a == vs !- typo for glx_enable_extension 2005-07-29 00:19:36 +00:00
Ian Romanick
82e3ecf413 Use the routines supplied in the __DRIinterfaceMethods structure to create a
destroy __GLcontextModes structures.  This eliminates the need for DRI
drivers to ever link with glcontextmodes.c.
2005-07-28 23:33:18 +00:00
Ian Romanick
f7c9eafa85 glxEnableExtension is a platform-specific function exported by the loader.
Therefore, drivers should not require it to run.
2005-07-28 21:57:17 +00:00
Ian Romanick
68679d2b9e Remove '#if 0' block that was accidentally left in. 2005-07-28 20:55:26 +00:00
Brian Paul
960467443e SPARC, DRI interface changes for 6.3.1 2005-07-28 02:46:26 +00:00
Ian Romanick
14fa5f6a60 The dri/*/depend files don't exist on a raw check-out, and that makes 'make
tarballs' have issues.
2005-07-28 01:15:45 +00:00
Ian Romanick
1585c234e0 Major rip-up of internal function insertion interface. The old
_glapi_add_entrypoint has been replaced by a new routine called
_glapi_add_dispatch.  This new routine dynamically assignes dispatch offsets
to functions added.  This allows IHVs to add support for extension functions
that do not have assigned dispatch offsets.

It also means that a driver has no idea what offset will be assigned to a
function.  The vast majority of the changes in this commit account for that.
An additional table, driDispatchRemapTable, is added.  Functions not in the
Linux OpenGL ABI (i.e., anything not in GL 1.2 + ARB_multitexture) has a
fixed offset in this new table.  The entry in this table specifies the
offset in of the function in the real dispatch table.

The internal interface was also bumped from version 20050725 to 20050727.

This has been tested with various programs in progs/demos on:

radeon (Radeon Mobility M6)
r128 (Rage 128 Pro)
mga (G400)
2005-07-28 00:29:51 +00:00
Ian Romanick
9f23a3a1bf Fix SPARC assembly for 64-bit
- The test for whether or not we're building for 64-bit is '#ifdef __arch64__'.
 This appears to be correct on both Linux and Solaris.

- The test for Solaris is now '#if defined(SVR4) || defined(__SVR4) ||
defined(__svr4__)'.  GCC 3.4.0 has all three defined on Solaris 9.

- Enables assembly language clip routines.

- Fixes to make GLSL code build on Solaris.

- Update gl_SPARC_asm.py.
2005-07-28 00:11:10 +00:00
Philippe Houdoin
3e36986e5a This precious BeOS include file was lost since some released MesaLibs. Fixed. ;-) 2005-07-27 19:56:33 +00:00
Roland Scheidegger
67d94e5a86 test for the proper drm version, at least 1.17 is required 2005-07-27 18:21:34 +00:00
Alan Hourihane
a7df74ea02 typo 2005-07-26 23:09:50 +00:00
Alan Hourihane
36d6e9df16 support GLX_DIRECT_COLOR in 1.4.0 2005-07-26 23:06:10 +00:00
Ian Romanick
ab7c6ffadc Remove the last remnants of GLX_BUILT_IN_XMESA. This allows the removal of
the evil, ugly GLX_PREFIX macro as well.
2005-07-26 22:53:38 +00:00
Alan Hourihane
1361398600 Bump the required ddx to 1.4.0 as drmAddress has been removed so that 32/64bit
combinations work.
2005-07-26 21:53:16 +00:00
Ian Romanick
5c6fd3dd4c No, really, get rid of all the remaining references to DRI_USE_NEW_INTERFACE.
A couple other remnants of the old interfaces hit the dust too.  Thanks
Jon. :)
2005-07-26 05:57:24 +00:00
Ian Romanick
a08d8a095c Quote $(CC) and $(CXX) so that 'CC=ccache gcc' and 'CXX=ccache g++' will
work again.
2005-07-26 05:55:56 +00:00
Ian Romanick
5f1ba3e21b Fixes the glXGetProcAddress portion of the interface. Most of the functions
that are currently obtained via glXGetProcAddress and all of the XF86DRI
functions are replaced with a funciton table.  This table will be passed to
__driCreateNewScreen.

One of the functions in the table is getProcAddress.  This allows some
loaders to expose functionality not in all loaders.  This will be immediatly
used for glxEnableExtension (formerly known to drivers as
__glXScrEnableExtension).  libGL (and in the future libglx) expose this
function so that drivers can enable GLX extensions.  libEGL should exposed
eglEnableExtension to enable EGL extensions.  The same function cannot be
used for both because the extensions have different names and (possibly)
different semantics.  Drivers can optionally use one, both, or neither.

The key parts are in the __DRIinterfaceMethodsRec structure in
dri_interface.h.  A pointer to one of these structures is passed into
__driCreateNewScreen.  Because of this, the version of the API is bumped to
20050725.  Since the previous version(s) were never in a release, their
existance is erased.

I was actually a little surprised by how much code this cuts from the
drivers.  A lot of glXGetProcAddress calls disappear, and a lot of
version checks go with them.  Nice.

The one thing I'm not sure of is removing __glXInitialize.  For some
reason that function was in the glXGetProcAddress table, but *nothing*
in the Mesa tree used it.  Did something with DRI conf. use this
function?  It seems odd...
2005-07-26 02:44:01 +00:00
Brian Paul
1201348a33 improve comments about win[0..3] values (bug 2554) 2005-07-26 01:04:53 +00:00
Brian Paul
800c72ae61 Fix bug 1858 - array subscript out of range in gamma driver.
Set ctx->Const.MaxTextureLevels = GAMMA_TEX_MAXLEVELS = 12
Remove bogus WRITE(level 12).
Max gamma texture size is 2kx2k  (note: 2k = 1 << (MaxLevels - 1))
2005-07-26 00:10:53 +00:00
Brian Paul
7c1ab40898 Add license/copyright.
Add -h/--help option for usage.
Minor clean-ups.
2005-07-25 23:49:50 +00:00
Brian Paul
8dcc6736ab Added -linker option to mklib, used to specify a particular program for
linking, if relevant.
Updated Makefiles to use -linker option instead of setting CC, CXX env vars.
2005-07-25 22:59:58 +00:00
Ian Romanick
e9dbe58b8b Gut a few more dead bits. Replace uses of the CreateNewScreenFunc typedef
(from glxclient.h) with PFNCREATENEWSCREEN (from dri_interface.h).

Remove the prototype for __driCreateScreen and fix the prototype for
__driCreateNewScreen (append the API version) in dri_interface.h.
2005-07-24 07:38:23 +00:00
Ian Romanick
c39bf5e273 All elements of pre-DRI_NEW_INTERFACE_ONLY are removed. This allows
1,402 lines of code to be removed from Mesa (drivers and libGL).  The
big winner is dri_util.c.

Primary changes are:

1. Remove all "deprecated" entry-points from the various structures in
dri_interface.h.

2. Rename the remaining fields to removed "version numbers."  So,
bindContext3 becomes bindContext.  Functions with "New" in the name
(e.g., CreateNewContext) were *not* changed, but that is an option.
Having "New" in the name is less annoying to me than having "3" in the name.

3. Remove all compatibility code that handles cases where the driver or
the loader is too old to support the latest interfaces.

4. Append the API version to the __driCreateNewScreen function name.
This is currently done by hand.  In the future (i.e., the next time we
make an incompatible change to the interface) we'll want to come up with
a better way to do this.  This prevents old loaders from being able to load
new (incompatible) drivers.

5. Bump the API version to 20050722.  All drivers (by way of dri_util.c)
require this version.

6. All drivers are *required* to expose GLX_SGIX_fbconfig and
GLX_OML_swap_method (or the moral equivalents).  Support for these
functions in implicit in the use of the "new" interface.

7. Some cases still exist that need to be compiled differently in a loader
or core Mesa versus in a driver.  These are identified by the define
IN_DRI_DRIVER.
2005-07-24 06:29:14 +00:00
Adam Jackson
7d40d230fa Add two aliases for some PointParameters entrypoints for libglx compatibility.
Doing this here rather than on the GLX side since the X monolith hasn't had
Mesa 6.3 imported yet.

idr, I know this is touching a generated file, but I haven't figured out what
needs changing in the generator scripts to make this change happen.  If you
could add that I'd appreciate it.
2005-07-23 02:09:58 +00:00
Brian Paul
3e2419a7cc Break the long list of MAIN_FILES and DEMO_FILES into subgroups.
rm/touch the depend files when making tarballs so they don't include
RedHat-specific paths (bug 3842).
2005-07-22 15:52:46 +00:00
Jouk Jansen
70cf1f0cf8 ----------------------------------------------------------------------
Committing in .

 _mesa_sprintf crashes on OpenVMS -> replaced it by the OS-supplied sprintf

 Modified Files:
 	Mesa/src/mesa/drivers/x11/fakeglx.c
 ----------------------------------------------------------------------
2005-07-22 09:30:54 +00:00
Brian Paul
60a6a0eb51 some GLuint idx -> GLint idx changes 2005-07-22 02:55:36 +00:00
Brian Paul
fea5a428e9 added vp negative addressing bug fix 2005-07-22 02:54:14 +00:00
Brian Paul
61e694f270 Make the vertex program source register Index field a signed int since
relative addressing can be negative.
Change some GLuint indexes to GLint in the t_vp_build.c file.
Added PROGRAM_UNDEFINED token for initializing the register File field to
avoid a gcc 4.0 warning.
2005-07-22 02:53:38 +00:00
Brian Paul
db251d72c8 bump version to 6.3.1 2005-07-21 18:46:49 +00:00
Brian Paul
7a37189adc 6.3.1 updates 2005-07-21 18:45:54 +00:00
Brian Paul
f87bb14b0b updated with DRI building instructions 2005-07-21 18:45:44 +00:00
Brian Paul
dff11bb9a8 bump version to 6.3.1 and include DRI/GLX files in tarballs 2005-07-21 18:44:52 +00:00
Brian Paul
98b06bcbeb make i810PrintSetupFlags() static, first param const 2005-07-21 18:11:24 +00:00
Brian Paul
7b5c506c0e first 6.3.1 bug fixes 2005-07-21 15:58:16 +00:00
Brian Paul
7cf480e6fe s/2004/2005/ 2005-07-21 15:57:29 +00:00
Brian Paul
951dbf08e7 check for FEATURE_EXT_framebuffer_object to enable EXT_framebuffer_object 2005-07-21 15:48:39 +00:00
Brian Paul
49e74989c3 remove ^M chars, disable shading language extensions 2005-07-21 15:41:56 +00:00
Eric Anholt
3e8efc3753 Clean up warnings in r300 code by making some symbols static, adding prototypes
for others, and being cleaner with types in fragment/vertex program structures.
One warning in r300_shader.c is still concerning.
2005-07-20 23:24:55 +00:00
Eric Anholt
aeb0ee771b Connect the r300 bits up to the build. 2005-07-20 22:08:06 +00:00
Eric Anholt
6ae76788a7 Add some missing defines, copied from linux-dri. 2005-07-20 22:07:29 +00:00
Eric Anholt
e98494d0a4 Forced commit to note repocopy from r300.sf.net CVS. 2005-07-20 21:35:27 +00:00
Brian Paul
18014525a1 fix some URLs 2005-07-20 18:25:01 +00:00
Brian Paul
2276679c53 added md5 checksums for 6.3 2005-07-20 18:20:45 +00:00
Brian Paul
d4596584f6 more updates for 6.3 release 2005-07-20 18:07:11 +00:00
Brian Paul
6bb49eacfd updates for 6.3 release 2005-07-19 21:01:46 +00:00
Brian Paul
bfb5ea307e replace fprintf() calls with _mesa_problem() 2005-07-19 18:20:04 +00:00
Brian Paul
364ae78e69 remove fprintf() 2005-07-19 18:18:49 +00:00
Brian Paul
8d7d9c22f6 include driverfuncs.h 2005-07-19 15:34:44 +00:00
Brian Paul
2d47c07398 overlay planes test 2005-07-19 15:27:03 +00:00
Brian Paul
7e152b83cb s/clippping/clipping/ 2005-07-18 20:07:19 +00:00
Philippe Houdoin
ed886336e1 Fixed warnings by using GLUTProc type instead of anonymous (void *) for
GLUT callbacks.
2005-07-18 19:27:49 +00:00
Alan Hourihane
5343ae8304 re-enable the ffb driver 2005-07-18 13:53:03 +00:00
Alan Hourihane
df88dfe1df Fix the FFB driver for the renderbuffer changes
Support NEW INTERFACE as well
2005-07-18 13:52:34 +00:00
Alan Hourihane
c235a96a71 pass in the renderbuffer 2005-07-18 13:50:06 +00:00
Ian Romanick
aa8ff1e75d Missed this on the previous commit. 2005-07-18 12:33:03 +00:00
Ian Romanick
9bdfee3a47 Wrap every place that accesses a dispatch table with a macro. A new script-
generated file, called src/mesa/glapi/dispatch.h, is added.  This file
contains three macros for each API function.  It contains a GET, a SET, and
a CALL.  Each of the macros take a pointer to the context and a pointer to
the dispatch table.

In several threads on mesa3d-dev we discussed replacing _glapi_add_entrypoint
with a new function called _glapi_add_dispatch.  For this discussion, the
important difference between the two is that the caller of _glapi_add_dispatch
does *not* know what the dispatch offset will be at compile time.  Because of
this callers need to track the dispatch offset returned by
_glapi_add_dispatch.

http://marc.theaimsgroup.com/?t=111947074700001&r=1&w=2

The downside is that driver code then has to access the dispatch table two
different ways.  It accesses it using structure tags (e.g., exec->Begin) for
functions with fixed offsets and via a remap table (e.g., exec[
remap->NewExtensionFunction ]) for functions without fixed offsets. Yuck!

Using the macros allows both types of functions to be accessed
identically.  If a driver needs to set a pointer for Begin, it does
'SET_Begin(ctx, exec, my_begin_function)'.  If it needs to set a pointer
for NewExtensionFunction, it does 'SET_NewExtensionFunction(ctx, exec,
my_NewExtensionFunction_function)'.  Furthermore, if at some point in
the future a static offset is assigned for NewExtensionFunction, only
the macros need to change (instead of every single place that accesses a
table for that function).

This code differs slightly from the originally posted patches in that the
CALL, GET, and SET marcos no longer take a context pointer as a parameter.
Brian Paul had suggested that the remap table could be stored as a global
since it would be set at CreateScreen time and would be constant for all
contexts.  This change reflects that feedback.

http://marc.theaimsgroup.com/?t=112087194700001&r=1&w=2
2005-07-18 12:31:24 +00:00
Adam Jackson
e0e993c5ff XMesaResizeBuffers needs separate paths for client and server builds 2005-07-16 04:02:05 +00:00
Adam Jackson
c529f6bf70 strip out vestigial #ifdef HAVE_CONFIG_H stanzas, they're confusing the
modular X build
2005-07-16 00:56:20 +00:00
Brian Paul
8d3aca655e disable call to via_sse_memcpy() until it's fixed 2005-07-15 23:13:46 +00:00
Brian Paul
1f88391747 need to flush vertices for GL_OCCLUSION_TEST_RESULT_HP query 2005-07-15 23:08:06 +00:00
Brian Paul
d39760d718 Check for null program->Parameters pointer in validate_vertex_program().
GL_NV_vertex_program programs can't directly reference GL state so this
pointer is always NULL.
2005-07-15 22:48:09 +00:00
Brian Paul
df0350b7ec added comments 2005-07-15 22:47:00 +00:00
Brian Paul
b0489d4f82 remove duplicate "User disable" string 2005-07-15 20:17:02 +00:00
Brian Paul
8ec981c469 redo previous check-in, just set ARCH_FLAGS = -m32 2005-07-15 14:31:31 +00:00
Brian Paul
4eb3a0f076 define CFLAGS and CXXflags with -m32 (Egbert Eich) 2005-07-15 13:58:58 +00:00
Brian Paul
4c72778251 replace gcc with $(CC) (Egbert Eich) 2005-07-15 13:55:20 +00:00
Brian Paul
badad72383 eglgears demo (Dane Rushton) 2005-07-14 23:16:41 +00:00
Brian Paul
c62c24c72f added a few more fallbackStrings (Andreas Stenglein) 2005-07-14 23:10:21 +00:00
Keith Whitwell
b127cfeb7a Use the LDEXPF wrapper macro. 2005-07-13 17:49:22 +00:00
Keith Whitwell
3f7cb794ea Add a LDEXPF wrapper macro. 2005-07-13 17:47:40 +00:00
Keith Whitwell
c472dcdac0 Wrap RESTORE_FPU/RND_NEG_FPU declarations with check for USE_SSE_ASM. 2005-07-13 13:50:31 +00:00
Keith Whitwell
ce721143b4 Cache texenv programs to avoid repeated compilation (Ben Skeggs) 2005-07-11 10:10:38 +00:00
Keith Whitwell
9311bc253e Add runtime compiled x87 implementations for most of the remaining
opcodes.  When enabled via environment vars, gears runs and almost
looks right but other apps are still quite buggy.
2005-07-10 11:23:10 +00:00
Keith Whitwell
0cfbd849ec Add lots of x87 fpu instructions. 2005-07-10 11:14:00 +00:00
Ian Romanick
6d5d1f8a41 Restore linux-x86-32 config for Brian. 2005-07-08 21:55:56 +00:00
Ian Romanick
38e2fa385d Put back the glPopMatrix. This test was derived from blendminmax.c.
When extra code was cut from blendminmax.c's Display function, the
glPopMatrix call was also accidentally cut.
2005-07-07 20:43:01 +00:00
Ian Romanick
2550844c6e Correct the comments in the file headers. Oops. 2005-07-07 19:35:30 +00:00
Ian Romanick
259f096ed8 Add regression test for bug #3101. 2005-07-07 19:34:06 +00:00
Roland Scheidegger
f3186e5789 Re-enable r200InitSpanFuncs, which was ifdefed out (probably by mistake?),
so r200SetBuffer, r200SpanRenderStart and r200SpanRenderFinish get called again.
Bugzilla #3705, #3706.
2005-07-06 12:49:46 +00:00
Brian Paul
4cf6718725 The old MESA_PBUFFER_ALLOC() function allocated memory on 512-byte boundaries.
Restore that behavior with new _mesa_alloc_texmemory() function.
Should fix via_sse_memcpy() problem in found with flightgear.
2005-07-05 14:13:42 +00:00
Jon Smirl
78be0b5dad Put default back to the normal DRM path 2005-07-02 21:28:01 +00:00
Ian Romanick
f0ff50d4ed Add support for assembly (static) dispatch functions on x86-64. This
is basically patch #2939 from X.org bugzilla #3379.  This does *not*
fix the bug as it does not dynamically generate stubs at run-time.  It
just gets things one step closer.
2005-07-02 08:29:57 +00:00
Ian Romanick
1a9cac10b8 linux-x86-32 is unnecessary. The same thing can be acomplished by
'make linux-x86 ARCH_FLAGS=-m32'.
2005-07-02 07:48:41 +00:00
Ian Romanick
9204e87b2e Massive refactor of (most of) the Linux config files. This reduces
the length of each config and brings a lot of much needed uniformity
to them.
2005-07-02 07:38:40 +00:00
Ian Romanick
4f178c6e3a Add $(CFLAGS) to the link commands. This makes 'make linux-x86
ARCH_FLAGS=-m32' work correctly on x86-64 systems.
2005-07-02 07:12:44 +00:00
Ian Romanick
ef2ce9d003 Make linux-x86 more like the other linux configs. 2005-07-02 07:11:54 +00:00
Vladimir Dergachev
c1c684b0f3 Expose the fact that we do not do either selection of feedback buffers - either with software or hardware rendering. 2005-07-02 01:09:10 +00:00
Jerome Glisse
666dcaaf05 Adding RV350_NJ ID. 2005-07-01 21:26:43 +00:00
Jerome Glisse
7b12220256 Adapt extension string to new GL dispatch schema proposed
by Idr. This  patch is based on Idr patch to radeon driver.
Change #if 1 to #if 0 (r300_context.c:l69) for old dispatch
tab.
2005-07-01 21:22:05 +00:00
Karl Schultz
5f79d27b82 Update notes with VC7 info. 2005-07-01 21:08:00 +00:00
Karl Schultz
c136b41b09 Add windows VC7 project files to filelist for tar/zip files. 2005-07-01 20:31:41 +00:00
Karl Schultz
ee850657e6 VC7 project file for building glut lib 2005-07-01 20:25:57 +00:00
Karl Schultz
0cf67634bb VC7 project file for gears demo 2005-07-01 20:25:23 +00:00
Karl Schultz
101d05ad94 VC7 Solution file for building glut and demos 2005-07-01 20:24:49 +00:00
Karl Schultz
c5b6580c6f VC7 project file for osmesa 2005-07-01 20:23:52 +00:00
Karl Schultz
35a11c14ee VC7 project file for core mesa lib 2005-07-01 20:23:23 +00:00
Karl Schultz
ec171b7d02 VC7 project file for glu 2005-07-01 20:22:41 +00:00
Karl Schultz
2de5f6e252 VC7 project file for gdi driver 2005-07-01 20:21:45 +00:00
Karl Schultz
b64d60a2a6 Visual Studio 7 solution file for mesa lib 2005-07-01 20:19:47 +00:00
Karl Schultz
eac7688231 Don't #define __FUNCTION__ on a Microsoft C compiler new enough to have it. 2005-07-01 20:11:46 +00:00
Keith Whitwell
219f3c4489 Set fp->Opcode for OP_TEX_KILL case, fix from Ben Skeggs. 2005-07-01 17:12:29 +00:00
Karl Schultz
06abb854f0 Add new files to project. 2005-07-01 15:59:33 +00:00
Karl Schultz
7fe8696d01 Use frexp on Windows; frexpf is not available. 2005-07-01 15:58:02 +00:00
Karl Schultz
9b56781986 Fix a prototype 2005-07-01 15:56:14 +00:00
Roland Scheidegger
758f334717 convert sis and radeon driver to use spantmp2 instead of spantmp template. Remove old (pre-renderbuffer) span code instead of converting that too. Remove this old code from mach64 (the dead code was not fully converted to spantmp2 previously) too. 2005-07-01 11:28:14 +00:00
Brian Paul
8e8fa63cb4 comment-out some unused code to silence warnings 2005-07-01 02:03:33 +00:00
Brian Paul
559c494fc8 replace some free() calls with _mesa_free() 2005-07-01 02:03:00 +00:00
Brian Paul
03f52fea63 updates to file list for tarballs 2005-07-01 01:55:30 +00:00
Brian Paul
6d3284efd4 fix dependencies 2005-07-01 01:54:38 +00:00
Brian Paul
58a9573b08 added some glGetRenderbufferParameterivEXT calls, printfs, and assertions 2005-07-01 01:34:29 +00:00
Brian Paul
0d34c0158d fix typo in assertions 2005-07-01 01:30:03 +00:00
Brian Paul
f4f1c29597 Move the PYTHON2 and PYTHON_FLAGS assignments to configs/current, and
include $(TOP)/configs/current in glapi/Makefile so those vars can be
easily overridden by any system config, if needed.
2005-07-01 01:27:00 +00:00
Brian Paul
bb5c84fcbc Remove NEW_RENDERBUFFER stuff.
Now, OLD_RENDERBUFFER marks code that needs to eventually be removed when
all the drivers are updated to no longer need the SetBuffer() function.
2005-07-01 01:22:25 +00:00
Brian Paul
446e258940 remove OLD_RENDERBUFFER code 2005-07-01 01:10:36 +00:00
Brian Paul
54fb9226e4 remove OLD_RENDERBUFFER stuff 2005-07-01 01:08:29 +00:00
Brian Paul
30aea49cf6 minor fixes 2005-07-01 01:04:31 +00:00
Roland Scheidegger
cf5b2f7419 remove common macros used in the span functions of most drivers from the individual drivers and put them in common code. It is still possible for a driver to define its own macros if it has special needs. This affects CLIPPIXEL, CLIPSPAN, HW_CLIPLOOP, HW_ENDCLIPLOOP, and for drivers using the spantmp2 template also GET_SRC_PTR and GET_DST_PTR. 2005-07-01 00:08:46 +00:00
Ian Romanick
c212abf99a Replace add_newer_entrypoints (src/mesa/main/context.c) with
device-specific code.  A new Python script
(src/mesa/glapi/extension_helper.py) generates a list of all
entry-points for all known extensions.  Each driver the selects only
the extensions that it needs and enables the via either
driInitExtensions or driInitSingleExtension.

This code has been compile-tested on a drivers, but has only been
run-tested on mga and i915 (on i830 hardware).

These changes were discussed at length on the mesa3d-dev mailing list.

http://marc.theaimsgroup.com/?t=111947074700001&r=1&w=2
2005-06-30 16:00:48 +00:00
Brian Paul
1ac8ae446a remove \n from warning message string 2005-06-30 14:24:44 +00:00
Brian Paul
aa70253cbb added newline at end of file 2005-06-30 14:23:40 +00:00
Brian Paul
049e320f46 Add a set of predicate functions for testing matrices instead of directly
testing the flags field.
Move definition of all the MAT_FLAGs into the m_matrix.c file since they're
now private.
2005-06-30 14:22:23 +00:00
Brian Paul
f138b977d0 Redo all the GL_LINEAR interpolation code in terms of LERP macros/functions.
This cleans up and simplifies the arithmetic quite a bit.
2005-06-30 13:42:10 +00:00
Roland Scheidegger
4d652b7855 Fix crashes with pixel readback when using the optimized assembly functions.
Pixel count can be negative (this could be fixed elsewhere), so adapt the
functions to work with such inputs correctly (same behaviour as non-optimized
functions).
Bugzilla #2317
Submitted by idr
2005-06-30 11:42:56 +00:00
Aapo Tahkola
b0d62880e8 -"fix" page flipping
-use depth tiling if tiling is enabled
2005-06-30 04:37:19 +00:00
Brian Paul
0e55891674 fix a few glitches 2005-06-30 02:34:07 +00:00
Brian Paul
ccda2162f6 fix Darwin dynamic lib naming 2005-06-30 02:33:25 +00:00
Brian Paul
b6c0d753fa just code clean-ups and new comments 2005-06-28 03:48:08 +00:00
Vladimir Dergachev
ec17e7941a Uncomment a couple of helper functions.
Fix slipup from CVS update that was commented out and did not show up during compilation.
2005-06-27 18:46:31 +00:00
Vladimir Dergachev
b6c5116171 Rename unchecked state to match DRM driver.
Emit wait idle and pacify r300 before emitting state - this seems to improve stability.
2005-06-27 15:56:14 +00:00
Brian Paul
84f8d7aafb include t_vp_build.h 2005-06-27 00:45:36 +00:00
Brian Paul
39a488ed63 remove unused MEMSET16 macro 2005-06-27 00:39:33 +00:00
Brian Paul
2dbffb30f0 Get rid of the MESA_PBUFFER_ALLOC/FREE() macros.
If that stuff is still needed, lots of other updates are needed anyway.
Also, some misc MALLOC/FREE -> _mesa_malloc/free() changes.
2005-06-27 00:34:17 +00:00
Brian Paul
397088ff5e added _tnl_ProgramCacheDestroy() prototype 2005-06-27 00:30:56 +00:00
Brian Paul
c43f03e38d make create_new_program() static 2005-06-27 00:30:37 +00:00
Eric Anholt
3f9839a52b Fix crashes during rasterization fallback by avoiding _tnl_need_projected_coords
during fallbacks.  In one case, _swsetup_Wakeup had just been called, covering
the need there, and in the other case, we can simply exit the entire
radeonChooseVertexState function, knowing that it will be called again once we
leave the fallback.

Bugzilla #:	2516
Submitted by:	sroland
2005-06-26 21:57:23 +00:00
Eric Anholt
a4eb693b5f Remove the #if 0-ed out old span code. 2005-06-26 21:54:43 +00:00
Eric Anholt
32b898126e Explain the reason for TCL fallback when GL_SPHERE_MAP happens with
RADEON_DEBUG=fall.
2005-06-26 21:53:11 +00:00
Eric Anholt
3b817fde88 Zero out the ENGPACKET allocated on the stack, to avoid sending uninitialized
values to reserved fields on the card, resulting in all-black output and
sometimes hangs.

Submitted by:	Thomas Winischhofer
2005-06-26 21:02:58 +00:00
Brian Paul
845f2a7350 fix for-loop in _mesa_GetDouble to avoid out of bounds memory read 2005-06-26 20:08:23 +00:00
Brian Paul
f8582b6c1f check for null oldBuffer in _mesa_realloc(), cleaned up some comments 2005-06-26 19:57:17 +00:00
Brian Paul
394fd40a53 need parenthesis in realloc call 2005-06-26 19:53:52 +00:00
Ian Romanick
4e1aae6e0e Ignore files generated as part of the build process. 2005-06-24 18:54:57 +00:00
Ian Romanick
5aafea03af Fix non-x86 specific builds. The changes from glTexImage3DEXT to
glTexImage3D that caused me so many problems during the re-development
of the API scripts reared its ugly head again.  This has been fixed by
tracking the parameter string for each entry-point individually.

This has the annoying side-effect that the names of the parameters in
all aliases of a function must be the same or gl_apitemp.py will
generate bad code. :(  The changes in
src/mesa/glapi/{gl_API.xml,glapitable.h} and src/glx/x11/* are caused
by fixing the parameter names in various function aliases that didn't
match.

Reported by: Eric Anholt, Jacob Jansen
2005-06-24 18:35:31 +00:00
Jeremy Kolb
3fb86eefe8 Fixed the XCB implementation when always_array is true, thanks to Ian Romanick for pointing it out. Please review. 2005-06-24 02:28:02 +00:00
Brian Paul
1c5caba184 Remove the xmesa_set_buffer() function. No longer needed since the
span functions pass in a gl_renderbuffer to indicate which color
buffer should be drawn into.  Optimized line/triangle routines are
smart enough to know which buffer to draw into as well.
The swrast->SetBuffer() routine should eventually be removed from
all drivers.
2005-06-23 15:09:32 +00:00
Ian Romanick
2636e853f6 Mark GenQueriesARB at 'always_array="true"'. This eliminates the need
to special-case the handling of that function in glX_proto_send.py.
2005-06-22 17:11:20 +00:00
Jeremy Kolb
814e5360b0 Fixed a bug where GenQueriesARB was generating the wrong code for XCB and wouldn't compile. Not sure how that slipped through before but it should work now. 2005-06-22 02:36:23 +00:00
Ian Romanick
66a5548fbb Mammoth update to the Python code generator scripts that live in
src/mesa/glapi.  Basically, the scripts that did simple things (like
gl_offsets.py) were simple, and the scripts that did more complicated things
(like glX_proto_send.py) were getting progressively more and more out of
control.  So, I re-write the foundation classes on which everything is based.

One problem with the existing code is that the division between the GL API
database representation and the way the output code is generated was either
blury or nonexistant.  The new code somewhat follows the
Model-View-Controller pattern, minus the Controller.  There is a distinct
set of classes that model the API data, and there is a distinct set of
classes that generate code from that data.

One big change is in the class that represents GL functions (was glFunction,
is now gl_function).  There used to be an instance of this calls for each
function and for each alias to that function.  For example, there was an
instance for PointParameterivSGIS, PointParameterivEXT, PointParameterivARB,
and PointParameteriv.  In the new code, there is one instance.  Each
instance has a list of entrypoint names for the function. In the next
revision, this will allow a couple useful things.  The script will be able
to verify that the parameters, return type, and GLX protocol for a function
and all it's aliases match.

It will also allow aliases to be represented in the XML more compactly.
Instead of repeating all the information, an alias can be listed as:

     <function name="PointParameterivARB" alias="PointParameterivEXT"/>

Because the data representation was changed, the order that the alias
functions are processed by the scripts also changed.  This accounts for at
least 2,700 of the ~3,600 lines of diffs in the generated code.

Most of the remaining ~900 lines of diffs are the result of bugs *fixed* by
the new scripts.  The old scripts also generated code with some bugs in it.
These bugs were discovered while the new code was being written.

These changes were discussed on the mesa3d-dev mailing list back at the end
of May:

http://marc.theaimsgroup.com/?t=111714569000004&r=1&w=2

Xorg bug: 3197, 3208
2005-06-21 23:42:43 +00:00
Nicolai Haehnle
f292e13a20 Back out the actual enabling of depth tiling.
Depth tiling breaks software fallbacks and depth buffer reads.
radeon_span.c **must** be updated for anything that is related to tiling.
2005-06-21 17:18:00 +00:00
Nicolai Haehnle
1e4744d2b9 Add PCI ID for R420 JI.
The driver appears to work reliably (i.e. lockup-free) with a card based
on this chip. However, I have not explored whether we could get anything
in terms of 3D performance "for free" just by setting some magic bits
in those registers that are still a mystery to us.
2005-06-21 17:03:29 +00:00
Aapo Tahkola
ebd99043ed r300 driver side of color tiling support. 2005-06-21 15:41:03 +00:00
Nicolai Haehnle
a5fb15cb87 Make sure texture base addresses are used correctly.
They are relative to the card's address space, not relative to fbLocation,
which will be important once we program MC_FB/AGP_LOCATION in the way
they are programmed on older Radeon chips.
2005-06-21 15:21:14 +00:00
Brian Paul
04f863e856 check for NULL swrast->Driver.SetBuffer before calling it 2005-06-21 14:39:43 +00:00
Brian Paul
23606a5704 updated to version 29 2005-06-21 14:30:46 +00:00
Brian Paul
90b40c33e7 include light.h to silence warning 2005-06-21 03:38:10 +00:00
Brian Paul
dc137ddb3f DirectFB updates (Claudio Ciccani) 2005-06-20 18:29:28 +00:00
Jeremy Kolb
a6a3e01b09 ran "make" after update to glX_proto_send.py. 2005-06-20 03:18:16 +00:00
Jeremy Kolb
4378dee78c Fixed some issues where XCB replies were being freed and data was not being copied. 2005-06-20 03:12:35 +00:00
Brian Paul
38332a6d94 Define __FUNCTION__ as a preprocessor symbol in glheader.h if we're not
using GCC or VMS.
2005-06-19 14:57:34 +00:00
Aapo Tahkola
4e7df27466 Fix gloss breakage when using hw tnl. 2005-06-16 11:57:45 +00:00
Aapo Tahkola
3c6f17be32 Use depth tiling. 2005-06-16 11:41:19 +00:00
Aapo Tahkola
af02907b4c Support 16-bit modes. 2005-06-16 10:40:39 +00:00
Aapo Tahkola
463c1d6c57 Fix problems with elts when immediate mode is on. 2005-06-16 10:27:04 +00:00
Aapo Tahkola
0e288e58ef Turn off VBO's. 2005-06-16 10:21:01 +00:00
Aapo Tahkola
3176f8e2e1 lost_context never gets reset. 2005-06-16 10:05:18 +00:00
Jon Smirl
6c2098ffd4 Fix a few compiler warnings 2005-06-16 04:25:45 +00:00
Jon Smirl
f445aaa67a Fix linux-solo build for mga check-in 2005-06-16 03:45:48 +00:00
Ian Romanick
aa26915472 Adds support for MGA DRM version 3.2.
This patch makes use of two of the new ioctls added in MGA DRM version
3.2.  Specifically, the DRM_MGA_SET_FENCE and DRM_MGA_WAIT_FENCE
ioctls are used in mgaWaitForFrameCompletion.  As a result the MMIO
register region and the primary DMA region are *not* mapped (if DRM
3.2 is available).

This patch does *not* make use of the new get_param query was added to
differentiate between G4x0 cards and G550 cards.  That is left to a
future update.

Xorg bug: 3259
Reviewed by: Eric Anholt
2005-06-14 22:51:44 +00:00
Jouk Jansen
fb818a0b11 Committing in .
OpenVMS updates

 Modified Files:
 	Mesa/src/mesa/tnl/descrip.mms Mesa/src/mesa/tnl/t_vp_build.c
 ----------------------------------------------------------------------
2005-06-14 10:27:05 +00:00
Jon Smirl
6b9d9c5039 fbSwapBuffers needs to return a status 2005-06-13 14:21:34 +00:00
Brian Paul
2d218885ec mingw changes (Nolan Leake) 2005-06-13 14:07:14 +00:00
Vladimir Dergachev
902e70875d Fixed typos. 2005-06-12 14:57:02 +00:00
Vladimir Dergachev
b675c48027 Add definition for memory controller latency registers.. 2005-06-10 16:10:50 +00:00
Keith Whitwell
4476978856 remove debug prints 2005-06-10 14:58:32 +00:00
Brian Paul
252d8e78cc be sure we have span texcoords before calling _swrast_texture_span() 2005-06-10 14:37:32 +00:00
Brian Paul
5d6ecf25f8 pass mask array to PutRowRGB() in simple_z_textured_triangle() 2005-06-10 14:36:55 +00:00
Keith Whitwell
b4979ec178 Allow the print opcode to compile 2005-06-10 13:59:49 +00:00
Keith Whitwell
6c1948d593 Fix typo in spot attenuation 2005-06-10 13:35:31 +00:00
Keith Whitwell
729cccba5d Correct test for attenuation.
DISSASEM changes.
2005-06-10 12:04:47 +00:00
Keith Whitwell
7e8e4c500e remove depend files on clean 2005-06-10 10:43:02 +00:00
Keith Whitwell
f6e7cfb60d Fix colormaterial flag calculations.
Fix lighting alpha result.
2005-06-10 08:33:37 +00:00
Keith Whitwell
52608d2d21 Add notes about intended precision of opcodes.
Remove dead floating point twiddles.
Fix bug translating MAD->MUL,ADD.
2005-06-10 08:32:27 +00:00
Keith Whitwell
1c48986e54 Fix a couple of buglets 2005-06-09 22:10:23 +00:00
Keith Whitwell
1fc4bcbb17 Another typo 2005-06-09 19:03:18 +00:00
Keith Whitwell
44367aab2a Further clean up RoughApproxPow2 and disable the optimized version --
it's a very poor approximation.
2005-06-09 18:59:41 +00:00
Keith Whitwell
2c6e8e90ec Fix typo in RoughApproxPow2 2005-06-09 18:52:42 +00:00
Keith Whitwell
81032030ff Store compiled vertex program representations in a pointer in the
vertex_program struct.

Allow switching between regular and vertex_program implementations
of fixed function TNL with the MESA_TNL_PROG environment var
(previously this required recompilation).

Ensure program compilation only references program data, not the
wider context.  This means that compiled programs only need to be
invalidated when the program string changes, not on other state
changes.
2005-06-09 14:55:34 +00:00
Keith Whitwell
a8534885ef Build vertex programs using state from a 'state key' struct which is
distilled from the current state.

Maintain a list of vertex programs for various different tnl states
indexed by these state keys.

This cuts down the number of vertex programs generated and means that
time spent optimizing vertex programs for execution isn't wasted each
time the state changes.
2005-06-09 14:52:08 +00:00
Keith Whitwell
79b7bd18bb Turn off debug 2005-06-08 22:14:29 +00:00
Keith Whitwell
8e56122782 Add t_vb_arbprogram_sse.c 2005-06-08 22:10:34 +00:00
Keith Whitwell
ea93b2986b Runtime generate sse/sse2 code for some vertex programs. Experimental
and only active when _TNL_FIXED_FUNCTION_PROGRAM is defined *and*
the MESA_EXPERIMENTAL environment variable is set...
Works for the arbfplight demo at least.
2005-06-08 22:10:16 +00:00
Keith Whitwell
002d0ad3e9 Turn off DISASSEM 2005-06-08 22:06:29 +00:00
Keith Whitwell
562bdaf70e New arguments for sse_shufps() 2005-06-08 21:58:30 +00:00
Keith Whitwell
9899f58c76 Use ALIGN_MALLOC for parameter lists. 2005-06-08 21:57:45 +00:00
Keith Whitwell
dce3a91a8d Add some more opcodes 2005-06-08 21:56:21 +00:00
Ben Skeggs
2d2f5a4b19 - Secondary colour
- Calculate tc_count in EmitArrays (enabled units != nr texcoords).
2005-06-08 15:05:19 +00:00
Brian Paul
ee7ad16f3f regenerated 2005-06-08 13:35:28 +00:00
Brian Paul
2c7336af4e put full prototype on one line to fix gl_mangle.h generation (Dave Reveman) 2005-06-08 13:35:07 +00:00
Brian Paul
012de39c23 remove stray line 2005-06-08 13:07:33 +00:00
Keith Whitwell
60339c7062 Remove ARL opcode from interpreter.
Revert SEL opcode to MSK.
Split out t_vb_arbprogram.h header file.
2005-06-08 10:03:29 +00:00
Keith Whitwell
7fb16836e7 new file 2005-06-08 10:02:28 +00:00
Brian Paul
d45cb9a836 regenerate for latest glext.h 2005-06-08 02:18:22 +00:00
Brian Paul
681b758f11 fix some renderbuffer problems for Xserver build (Dave Reveman) 2005-06-08 02:17:10 +00:00
Brian Paul
a0b5c98364 check for double-buffered buffer in XMesaDestroyBuffer() (Dave Reveman) 2005-06-08 02:14:55 +00:00
Daniel Borca
31d0cedd78 updates from Paul Garceau 2005-06-07 19:01:33 +00:00
Brian Paul
7477a7d366 added GL libs to APP_LIB_DEPS (bug 3485) 2005-06-07 15:30:12 +00:00
Brian Paul
4417d4cb61 fix error in OSMESA_LIB_NAME line 2005-06-07 15:25:08 +00:00
Brian Paul
ed7f3aead8 fix GL_ALPHA render-to-texture problem (Jon Smirl) 2005-06-07 15:03:40 +00:00
Keith Whitwell
395280bf88 Initialize some variables. 2005-06-07 12:46:30 +00:00
Keith Whitwell
a4691981d9 Add new runtime assembly files. 2005-06-07 12:45:29 +00:00
Keith Whitwell
1d60469c4c Split out runtime assembly functions. 2005-06-07 12:45:04 +00:00
Keith Whitwell
461a2a799a New files - split off runtime assembly functions from
t_vertex_sse.c.
2005-06-07 12:44:26 +00:00
Keith Whitwell
757e0855ad Simplify interpreted language:
- Expand operand argument specifiers so that all registers and
  parameters can be referenced directly.  Remove old PAR/PRL
  instructions.

- No 3 operand instructions, translate MAD -> MUL, ADD.  (No room for
  3 full operands in instruction struct).

- Translate SWZ instructions into 1 or 2 reduced swizzles at compile
  time.

- Add hardwired code for moving input and output values to/from the
  register file.  Drop old INx, OUT instructions.
2005-06-07 10:59:37 +00:00
Keith Whitwell
17d249d31b Add a VP_MAX_OPCODE entry to allow engines with internal opcodes to
place them sensibly.
2005-06-07 10:56:17 +00:00
Daniel Borca
4f923fb0bc updates from Paul Garceau 2005-06-07 05:29:38 +00:00
Jon Smirl
c20a2b0b72 Add SetBuffer to egl driver too 2005-06-07 02:10:14 +00:00
Jon Smirl
ef9e0be0cb Add a NULL SetBuffer function to the fbdev driver 2005-06-06 21:40:55 +00:00
Brian Paul
2e7dcdd38b this is auto-generated 2005-06-06 14:40:56 +00:00
Ben Skeggs
d59fbcdee5 TEX to output 2005-06-06 07:38:29 +00:00
Ben Skeggs
3c4c6d1f80 Fix xyz/w interaction (needs a cleanup still..)
Use SRC0A instead of WZY/XXX combination for W in XYZ positions.
Remove dodgy hack from POW opcode, now works correctly without it
2005-06-05 08:25:54 +00:00
Jon Smirl
40b8b57ed4 Make install install GLES too 2005-06-05 02:10:58 +00:00
Brian Paul
df5e2b934b set OLD_RENDERBUFFER=0, need to clean up a few more things before totally removing that 2005-06-04 22:09:27 +00:00
Brian Paul
d96dd3cd49 remove old span functions from swrast_device_driver struct 2005-06-04 18:25:39 +00:00
Brian Paul
bb8b302dbc remove old span code 2005-06-04 18:12:28 +00:00
Brian Paul
5ec5c6b222 fix an assertion 2005-06-04 17:53:30 +00:00
Brian Paul
863bd56520 remove old span code 2005-06-04 17:45:50 +00:00
Brian Paul
5821f3d70c added comment 2005-06-04 17:44:42 +00:00
Karl Schultz
5b10d71559 Fixup file lists for tarball/zip file creation.
- Adjust for recent changes to Windows build files.
- Add in at least some of the new slang files - enough to build on
Windows, but some of the other slang-related files may still need to be
added.  (Will probably get corrected just prior to next release, if needed)
2005-06-03 15:24:55 +00:00
Karl Schultz
516546ad5b Updates for new Windows build system. 2005-06-02 23:17:02 +00:00
Brian Paul
3fe9c40cb2 Remove last of the old span code. 2005-06-02 04:09:05 +00:00
Brian Paul
13c8f985d9 oops, undo previous change 2005-06-02 04:07:08 +00:00
Brian Paul
1516f559bc start removing old (pre-renderbuffer) span code 2005-06-02 04:05:45 +00:00
Jouk Jansen
c4fbdb090c Committing in .
OpenVMS makefile added

 Added Files:
 	Mesa/src/mesa/shader/grammar/descrip.mms
 ----------------------------------------------------------------------
2005-06-01 12:07:15 +00:00
Jouk Jansen
589a3a3f6e Committing in .
Update OpneVMS compilesupport

 Modified Files:
 	Mesa/src/mesa/shader/descrip.mms
 	Mesa/src/mesa/shader/slang/descrip.mms
 	Mesa/src/mesa/shader/slang/slang_compile.c
 	Mesa/src/mesa/shader/slang/slang_storage.c
 	Mesa/src/mesa/shader/slang/slang_storage.h
 ----------------------------------------------------------------------
2005-06-01 12:05:34 +00:00
Eric Anholt
f090fdc50b Move fallback and other debugging under TDFX_DEBUG using the same mechanism
as other drivers.
2005-06-01 08:22:57 +00:00
Eric Anholt
d638f6a0bb Add no_rast option. 2005-06-01 07:44:52 +00:00
Keith Whitwell
502504de23 Add a mode to test flat shading + separate specular. 2005-06-01 07:02:23 +00:00
Eric Anholt
f772e3dd15 Fix the 3dfx driver by correcting what appears to be a typo GL_RGBA8 instead
of GL_RGBA in driNewRenderbuffer of the backbuffer.
2005-06-01 02:59:12 +00:00
Brian Paul
c7264415b6 added code to detect GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT error 2005-06-01 00:50:23 +00:00
Brian Paul
1b93953fbc add support for GL_RENDERBUFFER_RED/GREEN/BLUE/etc_SIZE_EXT querie 2005-05-31 23:55:21 +00:00
Brian Paul
5d5100aabc remove temporary GL_EXT_framebuffer_object info 2005-05-31 23:54:44 +00:00
Brian Paul
2e081cd90e updated to version 28 2005-05-31 23:54:24 +00:00
Eric Anholt
0009e3d97d Bugzilla #2708: Disable the fallback on GL_SPHERE_MAP. It appears to hurt more
than it helps, and we seem to have a handle on how to fix it.
2005-05-31 23:32:47 +00:00
Alan Hourihane
628b18b8ca Add Intel(R) 945G support (Keith Whitwell, Tungsten Graphics) 2005-05-31 18:10:03 +00:00
Aapo Tahkola
4ec6eceea9 Causes lockups on some rare cases. 2005-05-31 05:53:38 +00:00
Eric Anholt
8c2a9a9166 Pull locking out of HW_LOCK/UNLOCK and into SpanRenderStart/Finish. Also do
some cleanups on the span macros.  This does not deal with the brokenness of
depth spans, but makes the code more readable.
2005-05-31 05:31:43 +00:00
Eric Anholt
ef377c3c00 Correct the descriptions of the glBlend{Equation,Func} fallbacks in r128, and
remove those descriptions and the corresponding bits on r200, where they're no
longer used.
2005-05-31 04:26:13 +00:00
Eric Anholt
b79c47e90c Remove unused CTX_ARG2 define. 2005-05-31 04:13:45 +00:00
Eric Anholt
8a1df96862 Bugzilla #2195: Convert the radeon driver to the t_vertex interface. This cuts
about 200 lines from the code and 25k from the binary, while matching other
drivers more closely.  In the worst case (tcl_mode=0) it appears to have
a performance cost of 4.4% +/- 0.3% on quake3 (800x600 demofours, 1ghz p3,
rv200).  Tested on ut2004, ut, q3, projtex.

Submitted by:	Andreas Stenglein <a.stenglein@gmx.net>
2005-05-31 04:04:24 +00:00
Eric Anholt
9dff2ca07a Move fallback debugging under MACH64_DEBUG=fall (matching other drivers) and
add pretty descriptions of the bits.  GC one of the bits that was unused.
Also, now only the first thing triggering a fallback and the last thing
requiring one do the debug output.  This also matches other drivers.
2005-05-31 03:47:39 +00:00
Eric Anholt
12eabeb3b9 Pull locking out from HW_LOCK/UNLOCK into SpanRenderStart/Finish. Provides a
factor of 5+ improvement in no_rast glxgears and 2.3 in no_rast quake3 (n=1,
320x240, 16bpp, low qualities, 1ghz p3)
2005-05-30 08:07:03 +00:00
Eric Anholt
c7f8d36451 Fix software fallbacks by being safe with macro arguments in READ/WRITE_DEPTH.
Convert to spantmp2.h while I'm here.  Tested with 16 and 32bpp no_rast
glxgears.
2005-05-30 06:50:17 +00:00
Eric Anholt
993d8ad5ef Add the no_rast debug option to mach64. It shows that software fallbacks are
pretty broken.
2005-05-30 06:41:19 +00:00
Eric Anholt
b328dded75 Pull hardware locking out into SpanRenderStart/Finish rather than
HW_LOCK/UNLOCK. Provides a 61% performance improvement in no_rast=true quake3
(n=2, 320x240, 16bpp, p4 1ghz), and a factor of 3 improvement in no_rast
glxgears.
2005-05-30 06:15:29 +00:00
Eric Anholt
c1b87b2a06 Add the description of the no_rast option fallback so that MGA_DEBUG=fall
doesn't segfault with no_rast.
2005-05-30 06:11:22 +00:00
Eric Anholt
0936eeb456 Add the no_rast debug option, which I used in some testing. 2005-05-30 03:32:52 +00:00
Eric Anholt
f2149a7a66 Remove unused CTX_ARG2. 2005-05-30 01:59:39 +00:00
Eric Anholt
0b73889d54 Put some fallback debugging output under DEBUG_FALLBACKS. 2005-05-28 23:45:39 +00:00
Eric Anholt
2962f88189 Add a missing EnsureCmdBufSpace, matching r200. 2005-05-28 22:56:16 +00:00
Eric Anholt
f054fa85d8 Add a freebsd-dri-amd64 config, and quiet makedepend slightly by making an
EXPAT_INCLUDES config variable (set on FreeBSD) which is then used in
Makefile.template's INCLUDES.
2005-05-28 20:17:06 +00:00
Jerome Glisse
2ed4c296d9 Some fixes 2005-05-28 12:18:32 +00:00
Dave Airlie
22b0a42465 use shared-core 2005-05-28 10:55:23 +00:00
Ben Skeggs
0bae91562e Up MAX_AOS_ARRAYS to 16. Do we need more? 2005-05-28 05:20:05 +00:00
Ben Skeggs
908dbc44c2 Play with swizzling a bit. 2005-05-28 03:19:56 +00:00
Aapo Tahkola
74e412c695 Programmable per-vertex point sizes and proper result reg assigns. 2005-05-28 01:02:00 +00:00
Aapo Tahkola
0080faf83e More optimal r300Clear. 2005-05-27 20:10:05 +00:00
Brian Paul
d322810e13 properly pop the GL_TEXTURE_GEN_ enable state 2005-05-27 14:44:14 +00:00
Karl Schultz
6580a6d561 Account for moved/new/removed files. 2005-05-26 18:22:13 +00:00
Ian Romanick
70dbbbf89a Fix gl_enums.py so that enums that are listed with the same name in
multiple places don't get generated multiple times.
2005-05-26 16:59:47 +00:00
Ian Romanick
497dd3e920 Minor correction to EXT_framebuffer_object XML. Fix gl_table.py so that it
generates the correct script name in the generated output.
2005-05-26 16:34:58 +00:00
Ian Romanick
249db89b00 Make a couple minor corrections to gl_API.xml. Fixes the name of an
extension that was missing the GL_ part and uses the core GL type names for
vertex buffer object functions instead of the ARB names.

Also commits the resulting changes to the generated code.  Some how, the
#if sequence disappeared in the 1.52 version of glapi_x86.S.
2005-05-26 16:24:35 +00:00
Keith Whitwell
020225496e Bump driver date. 2005-05-26 11:42:19 +00:00
Dave Airlie
69509641a8 make egl build first so we don't get wierd drivers linking to libs not available
yet
2005-05-26 04:24:09 +00:00
Dave Airlie
978d2fda3c make linux-solo and linux-solo-x86 config files hierarchical 2005-05-26 03:47:34 +00:00
Ben Skeggs
ae516306b4 constant tracking 2005-05-26 02:33:57 +00:00
Dave Airlie
e45b5a4fa8 use shared-core rather than shared 2005-05-26 01:40:34 +00:00
Dave Airlie
8e5099d6a0 use shared-core instead of shared 2005-05-26 01:40:00 +00:00
Ian Romanick
d2ee346a93 Fix a couple typeos in enum names. 2005-05-25 21:00:16 +00:00
Michal Krol
170999a103 change local var names from "asm" to "assem" - I guess it caused
gcc 3.3.5 to break, but not tested it
2005-05-25 15:09:32 +00:00
Michal Krol
d1834e8c10 a small utility to convert .syn files to its binary forms;
does not require any command line params;
2005-05-25 14:58:22 +00:00
Michal Krol
0432411837 silencium gcc warnings 2005-05-25 14:27:59 +00:00
Michal Krol
0f71c6691e add shader/slang/slang_assemble_assignment.c 2005-05-25 14:24:34 +00:00
Michal Krol
fc534034cc more slang code 2005-05-25 14:23:00 +00:00
Michal Krol
1de60fe47f ncrease stack size 2005-05-25 14:19:24 +00:00
Michal Krol
c16264b138 update grammar_mesa.c path 2005-05-25 14:00:22 +00:00
Michal Krol
1aadf1c039 moved from mesa/shader to mesa/shader/grammar 2005-05-25 13:58:36 +00:00
Michal Krol
1008f57f6f remove the GLSL spec wording;
reorder some elementary operators;
disable assignment "=" and equality "==" "!=" operators - they are
handled internally by the assembly generator;
fix minor typos
2005-05-25 13:43:32 +00:00
Michal Krol
2b73e5aaaf add mesa/shader/grammar to include list 2005-05-25 13:37:56 +00:00
Michal Krol
863eca9973 stand-alone vertsions of grammar_mesa - used by utilities;
DO NOT BUILD UNDER MESA
2005-05-25 13:35:39 +00:00
Keith Whitwell
39e14d2cff Provide initial values for some variables. 2005-05-25 13:35:21 +00:00
Keith Whitwell
741b980433 add special case for flat shaded + separate specular triangles 2005-05-25 13:34:52 +00:00
Michal Krol
3f6d985753 change the behaviour of enter and local_addr instructions 2005-05-25 13:20:59 +00:00
Keith Whitwell
49109d01c0 Disable polygon stipple - it seems to break if certain specific stipple
patterns are used, including the one generated by conform.
2005-05-25 10:17:19 +00:00
Keith Whitwell
8286abd798 Fix various issues with cliprects and MakeCurrent 2005-05-25 10:14:39 +00:00
Ben Skeggs
53d13e014f - Remove one of the loops in emit_arith
- Handle REPL_ALPHA in emit_arith (possibly incorrect for some things)
- Start on getting demos/arbfplight.c to look right.  Won't be animated yet,
  need to re-work const emit so we can update consts without re-translating
  the entire program.

Assertion in r300_state.c::setup_rs_unit needs to be disabled for it to
work.
2005-05-25 06:46:10 +00:00
Ian Romanick
f387c83ec1 Commit the changes propagated from Jeremy Kolb's changes to the Python
scripts in src/mesa/glapi.
2005-05-25 03:30:06 +00:00
Ian Romanick
e87ab8c05f Only use x86 / SSE assembly when USE_X86_ASM / USE_SSE_ASM are defined.
This makes the driver build on x86-64 again.
2005-05-24 23:03:15 +00:00
Karl Schultz
6b5afb0036 Cleanup some Windows junk. 2005-05-24 22:16:27 +00:00
Karl Schultz
89bf62cd49 project file for glut library 2005-05-24 22:06:59 +00:00
Karl Schultz
5dc31379c4 fix location of gears project 2005-05-24 22:04:03 +00:00
Karl Schultz
c97a3a3038 project file to build gears 2005-05-24 21:57:45 +00:00
Karl Schultz
7df5eddf6a Visual Studio 6 project file to build GLUT and some demos. 2005-05-24 21:51:58 +00:00
Karl Schultz
f7c0c4f485 moved to windows build dir 2005-05-24 21:17:42 +00:00
Karl Schultz
b4c8b34534 moved to windows build dir 2005-05-24 21:15:52 +00:00
Karl Schultz
45ab8cb08a Major code cleanup and begin using new render buffer interface. 2005-05-24 21:12:43 +00:00
Karl Schultz
b31b1f44f1 Change prototype for TextureMemCpy to return void* (was void). 2005-05-24 21:06:41 +00:00
Karl Schultz
7708b75d72 Visual Studio 6 project file for OSmesa library. 2005-05-24 21:02:51 +00:00
Karl Schultz
c73968af95 Visual Studio 6 project file for core Mesa. 2005-05-24 21:01:55 +00:00
Karl Schultz
9a726cdf8f Needed to build .cc files in Visual Studio 6. 2005-05-24 21:01:05 +00:00
Karl Schultz
7179810375 Visual Studio 6 project file for GLU library. 2005-05-24 21:00:03 +00:00
Karl Schultz
a1b07e187e Visual Studio 6 project file for Windows GDI driver. 2005-05-24 20:59:07 +00:00
Karl Schultz
39c0e51329 Visual Studio 6 workspace for Mesa libraries. 2005-05-24 20:57:15 +00:00
Karl Schultz
2f9722863d Removing in favor of new Windows build directory. 2005-05-24 20:50:56 +00:00
Daniel Borca
731f1b12a0 remove stupid flags 2005-05-23 22:02:53 +00:00
Keith Whitwell
2d5f12ae6b Initialize hw stencil renderbuffer. 2005-05-23 21:10:01 +00:00
Keith Whitwell
afa7f6a0f5 Disable recent sse change pending more testing. 2005-05-23 14:31:44 +00:00
Ben Skeggs
eeada48497 Implement enough of ARB_fragment_program for Keith's texenv program
generation in Mesa.  Requires most recent Mesa cvs to work correctly.

Swizzle code is possibly slow/buggy and will probably be replaced.

Old behaviour can be controlled by a #define in r300_context.h, if
no-one minds I'll remove the old code later on.

Also, disabled cube map extension.  AFAIK We don't support it yet,
and it causes issues with UT2004.
2005-05-23 14:14:19 +00:00
Keith Whitwell
0c4731b27c Use SSE for vertex emit -- another good speedup. 2005-05-23 12:25:43 +00:00
Keith Whitwell
17bcf9f816 Import Thomas Helstrom's SSE memcpy code from the via X.org driver.
Add a TextureMemCpy callback, called from texstore.c when copying
texture data via the memcpy_texture() path.
Enable this code in the via driver - 100% speedup in texdown.c results.
2005-05-23 12:17:27 +00:00
Keith Whitwell
eb9d6f44a9 silence gcc warnings 2005-05-23 12:15:19 +00:00
Keith Whitwell
241b6b7ab1 Detect use of disabled textures as tex_env_crossbar sources. 2005-05-23 09:50:34 +00:00
Keith Whitwell
2dea6df80b Support ARB_texture_env_crossbar. Changes the way programs are
generated somewhat, with all TEX instructions now emitted at the head
of the program.
2005-05-23 09:37:32 +00:00
Keith Whitwell
6fe176a648 Restore the negate() function.
Add Ben Skegg's ATI_texture_env_combine3 support.
2005-05-23 08:08:43 +00:00
Jerome Glisse
eb8be5d923 Small change to handle native case (7 natives case) 2005-05-22 12:24:52 +00:00
Jerome Glisse
446980473d Adding r300 fragment program swizzle tab. Please some
one reread macro at begining see if i made any error.
A full reread would also be usefull there may be some
errors for some swizzle despite the great care i took
to done them :)
2005-05-22 12:06:50 +00:00
Ian Romanick
b70a47736a Add support for modes with a depth-buffer but no stencil-buffer. This
eliminates various "3D driver claims to not support visual" messages in
16-bit color mode.
2005-05-20 18:40:11 +00:00
Keith Whitwell
3cc2f82bb5 Remove debug printfs 2005-05-20 15:12:12 +00:00
Keith Whitwell
923515b3f8 Re-enable X11 optimized triangle funcs. 2005-05-20 15:06:41 +00:00
Brian Paul
e3e8067db7 use MAX_SCREENS instead of hard-coded number 2005-05-20 14:11:11 +00:00
Brian Paul
8f384f0b67 fix reversed strstr() args, print mode string 2005-05-20 14:03:35 +00:00
Brian Paul
e58d32947e replace // with /* */ 2005-05-20 14:02:02 +00:00
Jouk Jansen
063efce6ee Committing in .
Update openVMS compile support

 Modified Files:
 	Mesa/progs/demos/descrip.mms
 	Mesa/src/mesa/shader/slang/descrip.mms
 	Mesa/src/mesa/tnl/descrip.mms
 ----------------------------------------------------------------------
2005-05-20 11:43:54 +00:00
Jon Smirl
bab559b1fa Remove some debug output
Add #if DEBUG_FRAG in s_nvfragprog.c
2005-05-20 01:17:38 +00:00
Adam Jackson
8f8e0f0b01 Use the 1.3 names for FogCoord* 2005-05-20 00:44:37 +00:00
Keith Whitwell
18a74321aa Invalidate current fastpath on changes to attribute size or offset within
the vertex.

Use existing facilities to check for sse2 and enable when available.

Turn on SSE/SSE2 codegen for t_vertex.c by default when USE_SSE_ASM is
defined.  Disable with "MESA_NO_CODEGEN=t".
2005-05-19 20:25:32 +00:00
Keith Whitwell
c2745ffa49 Cope with the common 3ub and 1ub cases.
Fix a few typos.
Note that sse_movss sets high dwords to zero when reading from memory.
Fix a few related bugs.
2005-05-19 19:02:46 +00:00
Keith Whitwell
9557401a98 Re-initialize viewport shadows each time. 2005-05-19 19:01:47 +00:00
Keith Whitwell
67cc1f6ba6 move osmesa demos to their own directory 2005-05-19 15:39:37 +00:00
Jon Smirl
c70dace694 Fix EGL fbdev palette problem. demo3 can save ppm of screen 2005-05-19 15:03:31 +00:00
Keith Whitwell
6040d34109 Rename emit functions to reflect instruction set in use (ie
x86,sse,sse2,mmx).  Add paths for sse+mmx vs. the initial version
which assumed sse2 was available everywhere.
2005-05-19 14:42:09 +00:00
Brian Paul
8608978aba remove the XFree86 ID line 2005-05-19 13:32:41 +00:00
Michal Krol
02168254a8 intermediate code generator (not finished);
generic back-end interpreter (interprets directly intermediate code)
2005-05-19 11:50:53 +00:00
Michal Krol
e5ff2b94ff add static_assert macro 2005-05-19 10:22:28 +00:00
Michal Krol
216f89318e fix info log grabbing 2005-05-19 09:28:01 +00:00
Aapo Tahkola
e3cdbca63f Ditch unused code and features that arent in subject to get supported any near time. 2005-05-19 00:03:50 +00:00
Ian Romanick
6bc9ea1df9 In addition to dead-code removal and other clean-up, bump the required DDX
version from 1.0.0 to 1.1.1.  1.1.1 is over a year and a half old at this
point, so it should be pretty widespread.  This allows the linecomp_sane
field to be eliminated from mga_screen_private_s.
2005-05-18 22:49:59 +00:00
Jon Smirl
9a1b5af333 Fix inverted y for egl fbdev, add egl demo3 2005-05-18 20:44:23 +00:00
Brian Paul
8818eae253 To better exercise pixel packing, replace regular glReadPixels with four
ReadPixels that get the image piece by piece.
2005-05-18 15:44:13 +00:00
Keith Whitwell
2b2bd08589 Remove old t_vertex.c codegen infrastructure, tie in new code.
Currently disabled, can enable with MESA_EXPERIMENTAL=t.
2005-05-18 15:26:48 +00:00
Keith Whitwell
dc7fc17396 Fix a few typos, initialize p->identity. 2005-05-18 14:04:19 +00:00
Keith Whitwell
96582f4f28 Eliminate a couple of swizzles. 2005-05-18 14:03:02 +00:00
Keith Whitwell
dd4c1dd038 Generates working SSE code for gears under the swrast driver. 2005-05-18 12:26:21 +00:00
Keith Whitwell
b745bf08cd Checkpoint commit: Preliminary version of a facility to emit x86/sse code
to implement vertex emit functions for the t_vertex.c mechanism.
2005-05-18 10:04:27 +00:00
Aapo Tahkola
2f74adc41f Stick texture LOD back on. 2005-05-18 08:43:30 +00:00
Aapo Tahkola
e53fc72f67 Polygon mode fixes. 2005-05-18 08:22:36 +00:00
Jon Smirl
bd565e4bb7 Fix for writing the wrong sysfs variable when blanking 2005-05-18 02:48:44 +00:00
Jon Smirl
9a3da7ea7b Implement fbdev swapbuffers() 2005-05-18 01:44:11 +00:00
Ian Romanick
6e56f905d0 More comments. More dead-code removed. More clean-up. 2005-05-18 00:37:32 +00:00
Keith Whitwell
2860e5f536 Disable leftover debug statements 2005-05-17 22:21:08 +00:00
Brian Paul
22652f952f fix some BCOMP/ACOMP typos (fixes Brad King's vtk failures) 2005-05-17 19:29:46 +00:00
Brian Paul
ae818ed1da don't include strings.h 2005-05-17 18:44:33 +00:00
Brian Paul
198d6d05b0 remove eglQueryDisplayMESA() 2005-05-17 13:22:13 +00:00
Brian Paul
5a0cb726d1 fix pbuffer sample code 2005-05-17 13:21:46 +00:00
Brian Paul
d2ab4eb2c2 remove glmode stuff 2005-05-17 13:21:12 +00:00
Jon Smirl
2ec2e94e2e Check error return from _eglInitPbufferSurface() correctly 2005-05-17 03:48:38 +00:00
Jon Smirl
40c1c723fb Compute stride in the right order 2005-05-17 03:38:06 +00:00
Brian Paul
bf7f998f39 Added software-based pbuffer support (untested).
Use _eglConfigToContextModesRec() function and remove need for
the _EGLConfig->glmode struct.
Silence some compiler warnings.
2005-05-17 02:18:38 +00:00
Brian Paul
bb2c65200c updated demoCreatePbufferSurface() 2005-05-17 02:15:38 +00:00
Brian Paul
5119056324 update comments 2005-05-17 02:14:44 +00:00
Brian Paul
4c80f8df46 more work on _eglConfigToContextModesRec() 2005-05-17 02:13:00 +00:00
Jon Smirl
e03b5cdf3f Make EGL_NO_MODE_MESA work. 2005-05-17 02:12:29 +00:00
Brian Paul
167b141e6e added _eglInitPbufferSurface() 2005-05-17 02:12:26 +00:00
Jon Smirl
d06da50888 Fix several internal problems with generating the list of configs. 2005-05-17 00:59:13 +00:00
Ian Romanick
c1082804a8 Rearranged some code and added some comments to mgaAllocDmaLow. The
modified code performs identically, but cuts 16KiB from the resulting
mga_dri.so.
2005-05-16 23:23:51 +00:00
Felix Kuehling
ffd97d20aa Don't use _mesa_swizzle_ubyte_image if all three texture formats
involved in _mesa_textore_argb/rgba8888 (source, base-internal,
destination) differ. _mesa_swizzle_ubyte_image knows only about two of
the formats and can't handle the case that all three are different
correctly. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=3111.
2005-05-16 23:01:09 +00:00
Brian Paul
a33f0d3024 remove -ansi -pedantic -D_POSIX_C_SOURCE=199309L from CXXFLAGS 2005-05-16 19:07:45 +00:00
Jon Smirl
380991cb65 Implement query of surface type. 2005-05-16 16:50:38 +00:00
Jon Smirl
3e8001a465 Add error about write permission to fbdev attribs 2005-05-16 15:51:05 +00:00
Brian Paul
af1a729972 another GLX / XCB patch (Jeremy Kolb) 2005-05-16 14:12:46 +00:00
Keith Whitwell
cf4f3c5061 Deal better with indirection and indirection accounting, developed
with Ben Skeggs.
2005-05-16 12:15:01 +00:00
Keith Whitwell
4cf20d9236 Apply r200 tcl fix to radeon - compiles but untested. 2005-05-16 08:36:28 +00:00
Brian Paul
72a313902b EGL_MESA_copy_context stuff 2005-05-16 02:21:57 +00:00
Brian Paul
f9bad3dfea use EGLint instead of unsigned long for eglCopyContextMESA, added comments 2005-05-16 02:21:08 +00:00
Brian Paul
a495ed372f separate ext strings with a space 2005-05-16 02:17:49 +00:00
Brian Paul
d9789b7861 s/Atrib/Attrib/, set extension enable flags 2005-05-16 02:16:33 +00:00
Brian Paul
51ac95ba89 added boolean extension flags to _EGLDriver 2005-05-16 02:15:42 +00:00
Brian Paul
6493bd07a7 restore _eglSetConfigAttrib (for now), added prototype _eglConfigToContextModesRec() 2005-05-16 02:14:50 +00:00
Brian Paul
7bfe8df08a define M_E if needed 2005-05-16 01:32:57 +00:00
Brian Paul
5873faf39b make _eglSetConfigAtrib() a static function, and rename it 2005-05-16 00:45:03 +00:00
Brian Paul
fdeda9c458 remove MESA suffix from _eglInitScreenSurface, use swAlpha value 2005-05-16 00:32:09 +00:00
Brian Paul
9b134f641c minor tweaks 2005-05-16 00:31:29 +00:00
Brian Paul
efeea95dcc fix GetRow parameters (Nicolai Haehnle) 2005-05-15 21:26:11 +00:00
Jon Smirl
45472672a2 A few egl patches needed for glitz, mainly config BITS 2005-05-15 04:00:59 +00:00
Aapo Tahkola
aca2e0da3c Make gleans polyoffset test happy. 2005-05-14 17:41:57 +00:00
Aapo Tahkola
d5084d42d4 Dont assume GLbooleans are ones when true. 2005-05-14 16:52:32 +00:00
Nicolai Haehnle
578f63f2bf Cleanup blend state generation.
Do not set the NO_SEPARATE bit, as it causes problems with some
combinations of blend functions.
2005-05-14 14:56:25 +00:00
Jon Smirl
1c606a9aa1 Add empty placeholder for eglCopyContextMESA 2005-05-14 14:54:38 +00:00
Nicolai Haehnle
09f433b97c The kernel doesn't like command buffers over 64KB, so we don't
allocate buffers bigger than that.
2005-05-14 14:51:17 +00:00
Jon Smirl
8110df4f61 Fix compiler warning about missing parameter list 2005-05-14 14:11:11 +00:00
Nicolai Haehnle
9cf35d2876 Remove dead span functions code. 2005-05-14 12:19:05 +00:00
Nicolai Haehnle
11bd5c1ac4 Fix span functions for stencil buffer access. 2005-05-14 11:43:04 +00:00
Nicolai Haehnle
686e9b9f57 Don't print debug messages unless the user explicitly requested them
using the RADEON_DEBUG environment variable.
2005-05-14 09:17:28 +00:00
Jon Smirl
aecc05627a Add forgotten demo2.c
VS: ----------------------------------------------------------------------
2005-05-14 03:51:18 +00:00
Jon Smirl
d0ddf190aa Fix compile error in demo egl driver 2005-05-14 03:49:55 +00:00
Jon Smirl
5cb977fedf Forgot to add fb_egl.c 2005-05-14 03:22:48 +00:00
Nicolai Haehnle
296428dcf4 Make software fallbacks work again:
We need to plug in swsetup functions into the TNL module's callbacks.
Also, resize the framebuffer size when the drawable size changes.
2005-05-13 21:29:17 +00:00
Nicolai Haehnle
ee83a1302f Remove quiescence sequence from r300ClearBuffer.
The DRM is responsible for emitting this quiescence sequence when
appropriate.
2005-05-13 21:00:11 +00:00
Jon Smirl
7012d01d88 First attempt at getting egl support up on dumb framebuffer.
Seems to be mostly working. Not all of egl API is implemented.
2005-05-13 18:31:35 +00:00
Nicolai Haehnle
a6ed129dfc Patch from Jeff Smith:
The type of vertex data is opaque in the emit_* functions, so use GLvoid*
instead of char*. This also eliminates some compiler warnings.
2005-05-13 18:03:24 +00:00
Nicolai Haehnle
733bc876ee Patch from Jeff Smith:
Fix a WARN_ONCE format string.
2005-05-13 17:44:22 +00:00
Alan Hourihane
64034c4fb5 Remove MAX_VISUAL limitations of 100. If running dual head this can
be easily consumed. There are no limitations now and the VisualTable
is realloced when necessary.
2005-05-13 11:56:13 +00:00
Keith Whitwell
846eb333ae Calculate render inputs for tcl stage correctly (hint: they aren't the
same as tnl->render_inputs).  Fixes recent tcl problems.
2005-05-13 09:15:50 +00:00
Ian Romanick
c9a69a6968 Remove some unused structure fields, add some comments, and ifdef out some
dead code.  This is just some clean-up work which should not have any
functional impact.
2005-05-12 23:15:38 +00:00
Keith Whitwell
269e3895d9 new MESA_DEBUG option: disassem 2005-05-12 10:28:43 +00:00
Keith Whitwell
5c72837af9 Rein in debug slightly 2005-05-12 10:22:29 +00:00
Keith Whitwell
5f430c9976 Turn disassem off (oops). 2005-05-12 09:31:33 +00:00
Keith Whitwell
714be699be Add check for mask == NULL to the one routine missing it. 2005-05-12 09:07:12 +00:00
Keith Whitwell
10432bcc0a When lighting is enabled, but no lights are enabled, the scenecolor
becomes the result of lighting.  When lighting is disabled,
pass-through incoming color value.  Likewise, pass through incoming
texture values.  (Based on patch by Aapo Tahkola)

Add compile-time configuration to switch between DP4 and MUL/MAD for
matrix-vector multiplications.
2005-05-12 08:54:13 +00:00
Ben Skeggs
69a2f7cdd5 fix warnings in r300_texstate.c (Jeff Smith) 2005-05-12 03:53:18 +00:00
Karl Schultz
db21f1c84f The "P" suffix on APIENTRY and GLAPIENTRY is to be used for pointers to
functions, not for functions that return pointers.  Restore protoype
for glGetString back to its correct form.
2005-05-11 22:01:20 +00:00
Aapo Tahkola
4e68f4c1fa VBOs. 2005-05-11 17:28:13 +00:00
Keith Whitwell
1e5772f0ba Don't let FragmentProgram._Active influence choice of vertex vs pixel
fog.
2005-05-11 16:30:02 +00:00
Keith Whitwell
ac6728d2d9 Previously in TXP and TEX instructions, lambda was passed to
fetch_texel as zero, but I believe this is incorrect.  The spec uses a
pseudocode function:

      vec4 TextureSample(float s, float t, float r, float lodBias,
                         int texImageUnit, enum texTarget);

to specify the behaviour of TEX, TXB and TXP instructions.  For TEX
and TXP, lodBias is passed as zero, TXB is passed with texcoord[4].  In our code we have

      static void
      fetch_texel( GLcontext *ctx, const GLfloat texcoord[4], GLfloat lambda,
                   GLuint unit, GLfloat color[4] )

and were passing zero and a biased lambda value respectively.  The
difference is that TextureSample() would add in the lambda term
itself, while in our code the caller is expected to do this.  Thus in
the TEX and TXP cases, it is necessary to pass an unbiased lambda
value for things to work out correctly.
2005-05-11 16:28:33 +00:00
Keith Whitwell
49d8cbe8d1 Use _mesa_memset rather than memset 2005-05-11 15:18:59 +00:00
Keith Whitwell
9d148e6b2b Don't let FragmentProgram._Active influence choice of vertex vs pixel
fog.
2005-05-11 15:18:23 +00:00
Keith Whitwell
363d0bcf01 Test for texcoord[3] == zero before dividing. Not so sure about this
test - if texcoord[3] is zero, we'd probably be fine except for an
ASSERT in IROUND_POS() which gets triggered by the inf values
created.
2005-05-11 15:17:31 +00:00
Keith Whitwell
e490242b9a Fix glean/conform problems. Don't generate so much output when
disassembling.
2005-05-11 15:16:35 +00:00
Keith Whitwell
a582015905 Fix valgrind complaint, conform vertex order test. 2005-05-11 10:30:13 +00:00
Keith Whitwell
3509fd8c1b Rename temp_flag to temp_in_use. Use ctx->Const.MaxVertexProgramTemps
rather than MAX_NV_VERTEX_PROGRAM_TEMPS and deal with this possibly
being greater than 32.
2005-05-11 08:34:19 +00:00
Keith Whitwell
93cd9237d7 Fix logic for allocating texture temporaries (Ben Skeggs).
Rename temp_flag, tex_temp_flag to make this clearer.
Respect ctx->Const.MaxFragmentProgramTemps limit.
2005-05-11 08:30:23 +00:00
Adam Jackson
1243b829bb int -> size_t to fix compile on LP64. 2005-05-11 01:33:50 +00:00
Keith Whitwell
2fcaf7a529 Ensure programs don't overflow allocated instruction store. 2005-05-10 18:24:50 +00:00
Keith Whitwell
a42fe19d8d Fix some valgrind complaints 2005-05-10 18:22:19 +00:00
Keith Whitwell
e57d5c4742 fix some valgrind complaints 2005-05-10 18:10:32 +00:00
Keith Whitwell
5a5b4436cb Improved detection of program changes. 2005-05-10 18:10:00 +00:00
Keith Whitwell
3ffe8731e6 Double-buffer generated instructions and only notify driver when the
generated program differs from the previous one.
2005-05-10 18:09:17 +00:00
Keith Whitwell
c5f5055097 Fix some valgrind complaints 2005-05-10 18:08:25 +00:00
Keith Whitwell
dbeea25bb8 Double-buffer generated instructions and only notify driver when the
generated program differs from the previous one.
2005-05-10 13:57:50 +00:00
Keith Whitwell
f29f2fc294 reduce the use of malloc and strdup for parameter lists 2005-05-10 13:56:23 +00:00
Keith Whitwell
ab81d1fd99 don't be fooled into emitting padding for wpos when not used 2005-05-10 13:54:52 +00:00
Keith Whitwell
d9fdb6c2bb Missing from previous commit 2005-05-10 11:41:33 +00:00
Keith Whitwell
9eef0da109 Update for FragmentProgram._Active 2005-05-10 11:40:52 +00:00
Keith Whitwell
8b88f62fbd Better driver notification on changes. 2005-05-10 11:39:50 +00:00
Keith Whitwell
948fa3b295 get fog working with _TexEnvProgram 2005-05-10 11:38:56 +00:00
Keith Whitwell
586f2c59fe Temporary fix - delete and recreate texenvprogram so that drivers
notice when it changes.
2005-05-10 10:25:16 +00:00
Jouk Jansen
e3b0c19ec9 Committing in .
OpenVMS compile support update for new buffer-code

 Modified Files:
 	Mesa/src/mesa/drivers/x11/descrip.mms
 	Mesa/src/mesa/main/descrip.mms
 	Mesa/src/mesa/swrast/descrip.mms
 ----------------------------------------------------------------------
2005-05-10 10:15:30 +00:00
Keith Whitwell
9ca8815d3b Fix texenv segfault. Reported by Ben Skeggs. 2005-05-10 09:56:02 +00:00
Keith Whitwell
ecb6bfc0ce Try not to use the same temp reg as a TXP destination more than once,
as this also constitutes a texture indirection.  Reported by Ben
Skeggs.
2005-05-10 08:58:44 +00:00
Daniel Borca
fee163a61a pathetic attempt to accomodate new frambuffer changes (still some work to do) 2005-05-09 22:15:24 +00:00
Daniel Borca
0e26580c90 accomodate new frambuffer changes 2005-05-09 22:14:58 +00:00
Daniel Borca
c8542705f7 fix some typos in FX code 2005-05-09 22:14:32 +00:00
Keith Whitwell
435eff8b85 i915 will use _TexEnvProgram (if active) 2005-05-09 17:59:13 +00:00
Keith Whitwell
276330b241 Use driver functions to create TexEnvProgram, TnlProgram 2005-05-09 17:58:13 +00:00
Keith Whitwell
ff6723e326 check for null DrawBuffer values 2005-05-09 17:42:18 +00:00
Keith Whitwell
1180fc13db Fallback (rather than fail) on unknown program targets. 2005-05-09 17:38:52 +00:00
Jon Smirl
5c6aec2f39 dri fb works using renderbuffers now in RGBA mode 2005-05-08 05:01:03 +00:00
Jon Smirl
86300c6945 fbdri can draw double buffered now. Next step is to convert it
to use RenderBuffers.
2005-05-07 19:56:44 +00:00
Brian Paul
fc3bc1ae14 remove some dead code 2005-05-07 18:27:58 +00:00
Brian Paul
d3bd97bb14 x86_64 stuff 2005-05-07 17:27:57 +00:00
Brian Paul
52064f6c37 added linux-x86-xcb config (Jeremy Kolb) 2005-05-07 17:21:11 +00:00
Brian Paul
2eb147e7f5 Patches for XCB (Jeremy Kolb) 2005-05-07 17:14:50 +00:00
Brian Paul
6f3d16c64a assorted warning clean-ups for x86_64, etc (Mikko T.) 2005-05-07 17:06:49 +00:00
Brian Paul
42fa81275c x86-64 transform optimizations (Mikko T.) 2005-05-07 16:59:58 +00:00
Brian Paul
e3f684b753 fix a bunch of html errors 2005-05-06 22:17:24 +00:00
Brian Paul
883d20791a fix cpp / bytesPerPixel problem (bug 1196554) 2005-05-06 19:28:31 +00:00
Brian Paul
b1d0ac64ab remove bad assertion, added new ones in clear_pixmap() 2005-05-06 15:23:54 +00:00
Brian Paul
c64573997c restore call to SetBuffer() in clear_color_buffers(), only temporary 2005-05-06 14:44:16 +00:00
Ben Skeggs
e133984f51 Updated for EXT_framebuffer_object changes. I don't know if this is correct, but it seems to work 2005-05-06 08:41:50 +00:00
Jon Smirl
bd8162aaac Fix problem generating mode db. Miniglxtest works now.
Miniglxsample is still broken with double buffering issues.
2005-05-06 05:50:41 +00:00
Aapo Tahkola
4a55d4ffa7 Missing setups that cause all kinds of problems with hw tnl. 2005-05-06 03:18:40 +00:00
Karl Schultz
6258b76c49 Port Mesa to build on a P64 platform (e.g., Win64). P64 platforms
use 64-bit pointers and 32-bit longs.  So, operations like casting pointers
to unsigned long and back to pointer won't work.  glheader.h now
includes files to define uintptr_t, which should instead be used for
this sort of operation.  It is an integer type that is the same size
as a pointer.
2005-05-05 21:08:07 +00:00
Brian Paul
203dcb733d fix for renderbuffer (Andreas Stenglein) 2005-05-05 17:13:18 +00:00
Brian Paul
bd1d9d96b2 remove some test code 2005-05-05 15:09:16 +00:00
Brian Paul
9f8b3fac97 minor face-lift for web pages 2005-05-05 14:18:31 +00:00
Brian Paul
0355d3ff94 fix typo 2005-05-05 14:18:04 +00:00
Brian Paul
cb34c11663 added a comment 2005-05-05 13:08:06 +00:00
Brian Paul
1077779c7d add PROGRAM_DIRS line 2005-05-05 13:07:52 +00:00
Aapo Tahkola
1c39d183c4 Getting rusty... 4278 was already there. 2005-05-05 06:51:00 +00:00
Jon Smirl
fd4f7064e2 Fix up origin in dri/fb driver
Calculated fbBPP
2005-05-05 05:50:19 +00:00
Aapo Tahkola
db46e2a7dd Flat shading and bunch of clarifications to r300_reg.h . 2005-05-05 03:40:47 +00:00
Adam Jackson
e7769cb348 Refactor COMMON_SOURCES up to Makefile.template 2005-05-05 03:15:08 +00:00
Jon Smirl
d83c4e6dd1 Minor touchups to fbdev renderbuffer support 2005-05-05 00:28:37 +00:00
Aapo Tahkola
73e8ffe9f3 Pack tex coord regs at vertex program backend. 2005-05-05 00:28:31 +00:00
Brian Paul
286c4cc201 more updates for users of s_spantemp.h 2005-05-05 00:10:18 +00:00
Adam Jackson
b3e878ad90 Add drirenderbuffer.c to COMMON_SOURCES 2005-05-04 22:05:02 +00:00
Brian Paul
eae0439ae6 fix s_spantemp.h includes 2005-05-04 20:20:02 +00:00
Brian Paul
79c0bb5264 FBO changes 2005-05-04 20:18:23 +00:00
Brian Paul
41a93f544e fix xm_span2.c reference 2005-05-04 20:13:59 +00:00
Brian Paul
e4b2356c07 Major check-in of changes for GL_EXT_framebuffer_object extension.
Main driver impacts:
- new code for creating the Mesa GLframebuffer
- new span/pixel read/write code
Some drivers not yet updated/tested.
2005-05-04 20:11:35 +00:00
Brian Paul
ebef61f5c0 html fix 2005-05-04 20:05:21 +00:00
Brian Paul
fe6ee3f5e6 EGLScreenMESA updates 2005-05-04 20:00:15 +00:00
Brian Paul
f5581bb994 don't call XTranslateCoordinates() if rendering to pixmap 2005-05-04 14:50:45 +00:00
Keith Whitwell
47b29f511a Add a facility to route all rasterization through a fragment program
which is automatically generated to match the current texture environment
state.  Introduces a new value ctx->FragmentProgram._Active which is
true when either _Enabled is true or there is such a fragment program
ready to run.

To test out on a driver running the software rasterizer, set
MESA_TEX_PROG=t in the environment.  It goes without saying that performance
is lower for the software rasterizer in this mode.
2005-05-04 11:44:44 +00:00
Keith Whitwell
c3f764f7bb Sort instructions for clarity. 2005-05-04 11:21:46 +00:00
Keith Whitwell
3151b27b0a Include negate information in disassembly output. 2005-05-04 11:21:25 +00:00
Keith Whitwell
209b090241 Mark unused registers as undefined so dissassemblers can recognized
them easily.
2005-05-04 11:20:59 +00:00
Keith Whitwell
d8f9599403 Improve the quality of the disassembly output for fragment programs. 2005-05-04 11:20:20 +00:00
Jouk Jansen
c6e1569b7f Committing in .
OpenVMS compile update

 Modified Files:
 	Mesa/src/mesa/shader/slang/descrip.mms
 ----------------------------------------------------------------------
2005-05-04 06:33:58 +00:00
Jon Smirl
82761cb08b DRI fbdev driver getting better. Now I can see something on the screen
but it isn't the right something yet.
2005-05-04 06:12:22 +00:00
Brian Paul
c22990c29a sync with latest EGL_MESA_screen_surface spec (EGLScreenMESA handles) 2005-05-04 03:33:21 +00:00
Brian Paul
3aeae20685 updates for latest EGLScreenMESA changes 2005-05-04 03:32:39 +00:00
Keith Whitwell
884b5ade86 Import all texture coordinate arrays. Import them only once. 2005-05-03 15:11:23 +00:00
Aapo Tahkola
138b7ef4d9 Add support to external tnl switcher and disable hw tnl by default. 2005-05-01 23:36:43 +00:00
Felix Kuehling
3a934557bf Bumped the Savage driver date (a bit late) to mark S3TC support. 2005-05-01 14:37:23 +00:00
Felix Kuehling
5f0bf77255 Fixed and cleaned up programming of watermark registers. There may be
a marginal speedup, but I'm not sure this has the same effect on all
hardware. Tested on Savage IX and ProSavageDDR. For experimenting with
different values see the macros at the start of savagestate.c.
2005-05-01 14:29:16 +00:00
Jon Smirl
8af7ff1ded Improve the DRI fb driver, now it compiles.
Added code to support NEW_INTERFACE.
It still doesn't work. Made it build from make linux-solo.
2005-05-01 00:21:27 +00:00
Brian Paul
1c54579e86 apply previous GL_COMPRESSED_TEXTURE_FORMATS_ARB fix to generator file, and regenerate get.c 2005-04-30 18:30:16 +00:00
Aapo Tahkola
7d33053e47 r300 side support for fixed function pipeline. This isnt functional with current Mesa. 2005-04-30 11:06:14 +00:00
Felix Kuehling
47d18cbb64 Fixed bogus ENUM_TO_BOOLEAN in
_mesa_GetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS_ARB). Must be ENUM_TO_INT.
mesa/progs/tests/texenv now lists supported compressed texture formats
correctly.
2005-04-30 02:09:23 +00:00
Felix Kuehling
f1d053b19a Added S3TC support to the Savage driver with some help from Mark Cass's
S3TC support for an older driver version. On Savage3D/IX/MX
GL_EXT_texture_compression_s3tc can't be enabled because DXT3 and DXT5
are not supported. However GL_S3_s3tc is enabled on all Savage chips.
Tested on a Savage IX and a ProSavageDDR
2005-04-30 02:03:18 +00:00
Jon Smirl
28d0a9c9dd Fix include path to make build work 2005-04-29 22:25:21 +00:00
Keith Whitwell
5f534aa1e2 Format for 80 columns. Add alternate matrix mul based on MAD rather than DP4. 2005-04-29 17:32:27 +00:00
Keith Whitwell
e9e20fc47d Add DISASSEM define, similar to other program generator files. 2005-04-29 17:31:54 +00:00
Keith Whitwell
a5cb1aa211 Add linux-fbdev config 2005-04-29 17:31:10 +00:00
Keith Whitwell
431417fec7 new config 2005-04-29 17:30:29 +00:00
Keith Whitwell
5c81a4b9cd Put back not-so-redundant #ifdef. 2005-04-29 15:41:24 +00:00
Keith Whitwell
a6ebcdfe7d Remove redundant #ifdef, fix compiler warning 2005-04-29 15:37:27 +00:00
Keith Whitwell
2c19069182 new file 2005-04-29 15:36:38 +00:00
Keith Whitwell
15e75e00c7 Maintain a fragment program for current texturing state. 2005-04-29 15:11:39 +00:00
Brian Paul
d59054e60b fix _tnl_copy_to_current() so that current edge flag and rasterpos aren't trashed by color index updates 2005-04-28 21:14:00 +00:00
Keith Whitwell
5cef1a1fed Stop gcc-4.0 complaining about "type qualifiers ignored on function
return type".
2005-04-28 13:16:23 +00:00
Keith Whitwell
545515cbea Stop gcc-4.0 complaining about "type qualifiers ignored on function
return type".
2005-04-28 12:05:58 +00:00
Brian Paul
97e1e60b1c move set_component_sizes() to fix bug 3135 2005-04-27 21:20:30 +00:00
Brian Paul
69441868f6 no need to enable fog or set fog mode with fragment program 2005-04-26 20:58:27 +00:00
Brian Paul
55d8dd4078 tweak previous fog/fragment program fix 2005-04-26 20:56:21 +00:00
Brian Paul
d09df24082 added interpolate_fog() 2005-04-26 17:35:45 +00:00
Brian Paul
c03b6f40ba enable fog render input if fragment program fog option set 2005-04-26 17:25:53 +00:00
Brian Paul
c039af165d comments and minor clean-up 2005-04-26 16:02:56 +00:00
Aapo Tahkola
c3259fa436 Fix as suggested by Ben Skeggs. 2005-04-25 09:50:45 +00:00
Keith Whitwell
b83aadb0e4 Ensure all VB->AttribPtr[] are populated. Reported by Aapo Tahkola 2005-04-25 09:36:27 +00:00
Jon Smirl
576caad33e Minor changes to make linux-solo build again 2005-04-25 03:03:10 +00:00
Felix Kuehling
cbc8d7596a Software fallback for glColorMask. Can be avoided on Savage4 when all
channels are masked (disable draw update). Bumped driver date to
reflect recent correctness fixes. The driver now passes all glean
tests except exactRGBA on both Savage4 and Savage3D-based cards.
2005-04-24 20:55:57 +00:00
Aapo Tahkola
6ffd0a4cf1 Modifying to build against current Mesa. Disabled r200*.c files since they didnt want to build anymore. 2005-04-24 09:08:31 +00:00
Felix Kuehling
5c906924ed Fixed a segfault introduced by Keith's pipeline changes. 2005-04-23 19:54:30 +00:00
Felix Kuehling
9b4536a654 Texturing fixes for Savage3D/MX/IX:
- force emitting texAddr when the texture image changed (flush caches)
- set transparent texture color key to something improbable
  (couldn't find a way to disable it completely)
- fixed texture environment modes GL_DECAL and GL_REPLACE
- made texture environment mode GL_BLEND a software fallback
- added two custom texture formats for promoting from GL_ALPHA to ARGB8888
  and 4444. Since the hardware can't be made to ignore the RGB color
  components, set them to 1 instead of 0. This gives the correct results
- disabled GL_EXT_texture_env_add on Savage3D/MX/IX
- map both GL_CLAMP and GL_CLAMP_TO_EDGE to hardware mode "wrap". It doesn't
  match either mode exactly by the spec, so we should either fall back on both
  or none. I chose the latter.
- fall back to software when s and t wrapping modes differ (hardware has only
  one bit for both)
2005-04-23 17:18:57 +00:00
Keith Whitwell
df943a4041 Fix the worst problems with dangling edgeflag references in
display lists.  These mainly arise from edgeflag being the only
attribute no longer stored internally as a float and requiring
various special case paths to accomodate it.
2005-04-23 11:55:18 +00:00
Keith Whitwell
0d4af83f25 Updates for pipeline_stage struct changes. 2005-04-22 22:47:09 +00:00
Keith Whitwell
bf87f86493 First pass at updating these drivers with pipeline_stage struct changes. 2005-04-22 22:42:09 +00:00
Felix Kuehling
963586b871 Added a French translation of option descriptions by Stephane Marchesin. 2005-04-22 21:36:37 +00:00
Brian Paul
fc06f9fb25 demo / test progs 2005-04-22 21:17:14 +00:00
Brian Paul
20d44dc9bc types for Mesa implementation of EGL 2005-04-22 21:16:28 +00:00
Brian Paul
11b0a76370 prototype EGL_MESA_screen_surface. 2005-04-22 21:16:12 +00:00
Brian Paul
adbff7e977 initial EGL code 2005-04-22 21:09:39 +00:00
Keith Whitwell
a661654a33 Move the call to _tnl_UpdateFixedFunctionProgram to make
it easier for hardware drivers to test this out.
2005-04-22 13:02:04 +00:00
Keith Whitwell
6f973f3367 Simplify the pipeline_stage structure
- remove input/output fields, input tracking removed.
	- remove state fields, the validate function now called
	  on every statechange.
	- add an explicit 'create' function.

Add in code to build vertex program to implement current t&l state.  Still
disabled, but turn on with a #define in t_vp_build.h.
2005-04-22 12:51:19 +00:00
Keith Whitwell
6a13c7da4c Up the value of MAX_NV_VERTEX_PROGRAM_PARAMS to a power of two. 2005-04-22 12:46:13 +00:00
Michal Krol
addcc6afbd Add more error checking. 2005-04-22 10:43:36 +00:00
Michal Krol
19fb77ee7b Cosmetic changes. 2005-04-22 10:28:53 +00:00
Michal Krol
b10d080b1e Move some utility functions to slang_utility.c. 2005-04-22 10:15:32 +00:00
Michal Krol
3ed1f07686 Provide precompiled binary versions of built-in library .gc sources
to dramatically improve shader compiling performance.
2005-04-22 09:51:46 +00:00
Brian Paul
2cbbd3dc50 undef DEPTH_TYPE at end 2005-04-22 02:56:21 +00:00
Felix Kuehling
a7fcac5e92 Fixed some suspicious pointer casts that caused lots of
compile-time-warnings on x86-64. Not tested on x86-64 yet, but a good
thing in general, so I'm giving up waiting for feedback. See also
https://bugs.freedesktop.org/show_bug.cgi?id=2924.
2005-04-21 21:50:54 +00:00
Felix Kuehling
07d91bbb59 Fixed TexEnv modes GL_BLEND and GL_ADD on Savage4-based cards. Disabled
the use of hardware texture format I8 as it produces garbage at least on
ProSavageDDR.
2005-04-21 21:43:21 +00:00
Aapo Tahkola
b3474de7b5 Adding some comments. 2005-04-21 19:09:54 +00:00
Keith Whitwell
7c26b61f93 Reduce the size of mesa's internal fragment and vertex program
representations by switching to packed structures for registers and
instructions.
2005-04-21 14:46:57 +00:00
Brian Paul
88b69d7998 use _mesa_pow() for LIT (bug 3087) 2005-04-21 14:19:50 +00:00
Keith Whitwell
f069e5e412 Facility to construct a vertex program which executes the current
fixed function t&l pipeline.

Currently runs most of the Mesa demos OK, but still needs debugging &
polishing.
2005-04-21 13:13:49 +00:00
Keith Whitwell
0ff98b03c6 New software implementation of ARB_vertex_program. Similar in speed
to existing version, but with the potential for good improvements.
2005-04-21 13:11:02 +00:00
Aapo Tahkola
70375aff48 Had some odd problems with add and temps so doing it with mad. Adding some MAD_2 cases. 2005-04-21 05:24:02 +00:00
Brian Paul
52bf005425 fix state.light[n].spot.direction.w value (bug 3083) 2005-04-20 23:47:03 +00:00
Brian Paul
8d51bbf2a3 clean up buffer creation code 2005-04-20 17:12:10 +00:00
Aapo Tahkola
fc8f202181 Reorganized shader stuff. 2005-04-19 18:49:44 +00:00
Aapo Tahkola
c4e1fd5a7f Fixes for bugs that were nailed down when compairing against software vertex shading. 2005-04-19 03:12:30 +00:00
Aapo Tahkola
f8ed0aa268 Fixing and enabling elt buffers by default. 2005-04-18 22:41:43 +00:00
Ian Romanick
d03ab104db If the file name passed to parse_GL_API is None or "-", read from standard
input.  This allows use of GL API scripts in pipelines.
2005-04-18 21:30:20 +00:00
Ian Romanick
93d2d54e7a Refactor a bunch of common code from the "leaf" scripts to a new functions,
parse_GL_API, in gl_XML.py.
2005-04-18 19:42:23 +00:00
Ian Romanick
8ea22650bd Fill-in function offsets and correct a couple typos. 2005-04-18 19:17:12 +00:00
Ian Romanick
2510ba618d Convert all Python scripts to use XML namespaces. 2005-04-18 19:16:07 +00:00
Peter Zubaj
b7142567bc Alpha test fix 2005-04-18 19:06:14 +00:00
Ian Romanick
61f08d8094 Move the DTD to its own file. 2005-04-18 18:36:57 +00:00
Brian Paul
f905145b60 comments and clean-up 2005-04-18 17:48:25 +00:00
Ian Romanick
02986cb2cc Add support for pthreads and TLS to libGL for __glXLock / __glXUnlock and
for tracking the current GLX context.

This fixes bug #3024.
2005-04-18 16:59:53 +00:00
Ian Romanick
2e823f29e4 Send GL_PACK_INVERT_MESA state to the server. This fixes bug #2538. 2005-04-18 16:40:36 +00:00
Brian Paul
b52673117b s/NORMAL/FOG/ (J.P. Delport) 2005-04-18 14:21:44 +00:00
Jouk Jansen
49b1d95c1c Updates for OpenVMS : New makefiles
added some type-casts

 Modified Files:
 	Mesa/src/mesa/shader/descrip.mms
 	Mesa/src/mesa/shader/program.c
 	Mesa/src/mesa/shader/slang/slang_compile.c
 	Mesa/src/mesa/shader/slang/slang_preprocess.c
 Added Files:
 	Mesa/src/mesa/shader/slang/descrip.mms
 ----------------------------------------------------------------------
2005-04-18 13:05:24 +00:00
Brian Paul
e9a3d8a772 added SLANG_SOURCES to SOLO_C_SOURCES 2005-04-15 22:20:46 +00:00
Brian Paul
afb3fb4b77 config for profiling with gprof 2005-04-15 22:16:18 +00:00
Brian Paul
635ee2df37 added _mesa_share_state() 2005-04-15 17:25:07 +00:00
Ben Crossman
509710cfd7 more gldirect compile fixes. Getting near the linking stage now. No build file yet. 2005-04-15 17:17:47 +00:00
Brian Paul
efb41b07ff remove carriage returns 2005-04-15 16:05:14 +00:00
Keith Whitwell
78803b2667 Fix alpha value of STATE_LIGHTMODEL_SCENECOLOR. From the spec:
The "w" component of the program parameter variable is filled with
 the alpha component of the front diffuse material color.

Make sure matrix inverses are uptodate also.
2005-04-15 12:57:23 +00:00
Michal Krol
a131d50fb7 add shader/slang/slang_preprocess.c 2005-04-15 10:30:43 +00:00
Michal Krol
e3a846b0e3 implement info log; parse #version directive 2005-04-15 10:23:10 +00:00
Michal Krol
65ce50897e slang preprocessor 2005-04-15 10:21:34 +00:00
Michal Krol
8855664489 slang #version directive syntax 2005-04-15 10:20:30 +00:00
Michal Krol
35725a92be change __asm statement semantics 2005-04-15 10:19:27 +00:00
Ben Crossman
d8aa5ffed5 Reverted the last change back to fix bug 3035 2005-04-15 09:13:21 +00:00
Ian Romanick
067e788acd Convert 'variable_param' from a CDATA attribute to a NMTOKENS attribute.
The main difference is that white-space is used to separate the names
instead of comas.
2005-04-14 23:03:44 +00:00
Ian Romanick
73b4c1b388 Refactor the handling of the '(true | false)' enumerated attributes. 2005-04-14 23:00:34 +00:00
Ian Romanick
a3deff2404 Modify the DTD to use NMTOKEN, enumerants, and explicit default values
wherever possible.  Correct a couple mis-uses of the 'counter' attribute
when 'count' was intended.  Fix some errors in the DTD and in the data with
'doubles_in_order'.
2005-04-14 22:59:46 +00:00
Ian Romanick
6cae4f3bc9 In GLX_USE_TLS builds, make GET_CURRENT_CONTEXT use the TLS verion of the
variable.  Without this, GET_CURRENT_CONTEXT would *always* result in a call
to _glapi_get_context (because _glapi_Context is a const pointer to NULL in
TLS builds).
2005-04-14 21:05:55 +00:00
Ian Romanick
f434e07a6a Add missing includes of indirect.h. 2005-04-14 20:35:33 +00:00
Ben Crossman
369404299c A few getenv() that werent using the mesa wrapper version 2005-04-14 19:54:15 +00:00
Ben Crossman
b2b01a60db Some initial compile fixes. Still some left and warnings that need fixing. No where near runnable yet. 2005-04-14 16:58:25 +00:00
Keith Whitwell
60e2810ae4 Disable CLOD (Lod constant) state emit. The values emitted were
possibly negative, hence clobbering the leading register-id byte.
Fixed the calculation of the values to prevent negative numbers being
emitted, but the code still doesn't implement texture LOD bias
correctly, so leave it disabled overall.
2005-04-14 15:53:30 +00:00
Michal Krol
99b329ca13 hook to _slang_compile() 2005-04-14 10:31:36 +00:00
Michal Krol
ed5f790919 cosmetic changes 2005-04-14 10:30:08 +00:00
Michal Krol
8c01903114 ARB_fragment_shader state 2005-04-14 10:28:14 +00:00
Michal Krol
6372ea0da0 ARB_fragment/vertex_shader state 2005-04-14 10:27:19 +00:00
Michal Krol
2a37053fd5 ARB_shading_language_100 bit;
Fragment shader derivative hint
2005-04-14 10:25:49 +00:00
Michal Krol
1e8fc5ffea add GL_ARB_shading_language_100;
reorder GL_ARB_shader_objects and GL_ARB_fragment/vertex_shader stuff
2005-04-14 10:23:51 +00:00
Michal Krol
5c968cbc5e add FEATURE_ARB_shading_language_100;
remove FEATURE_shading_language;
add ARB_fragment/vertex_shader max values
2005-04-14 10:21:30 +00:00
Michal Krol
98e35025ba do not use isdigit() - can cause link errors 2005-04-14 10:19:19 +00:00
Brian Paul
fd451b6d01 updated procedure for getting CVS-write access 2005-04-13 23:50:47 +00:00
Ian Romanick
25fe93f0a1 Add TLS support to libGL and, by virtue of using glthread.h and GL_CALL, all
DRI drivers.  A TLS enabled libGL can load a TLS or a non-TLS DRI driver,
but a TLS DRI driver requires a TLS enabled libGL.

This fixes bug #1822.
2005-04-13 20:59:15 +00:00
Ian Romanick
c604e457d1 Revert revision 1.13. This allows server-side libGLcore (in X.org) to build
with Mesa CVS.  This change was wrong in the first place, and the issue that
necessitated it has been resolved.  For more background on the problem see:

http://marc.theaimsgroup.com/?l=mesa3d-dev&m=111333880529935&w=2
2005-04-13 18:41:33 +00:00
Michal Krol
9a5ba4794c add SLANG_SOURCES 2005-04-13 14:05:28 +00:00
Michal Krol
fa2802d4d0 clean-up stuff 2005-04-13 14:05:06 +00:00
Michal Krol
0e7836b500 simple front-end compiler 2005-04-13 14:04:41 +00:00
Michal Krol
d3ea221d3e add __fixed_input and __fixed_output qualifier support;
fix for_init_statement output;
2005-04-13 13:18:35 +00:00
Michal Krol
2f951683be cosmetic changes;
add __fixed_input and __fixed_output qualifiers for built-in variables;
2005-04-13 13:06:57 +00:00
Michal Krol
5a38200122 cosmetic changes;
fix syntax errors;
2005-04-13 13:03:23 +00:00
Michal Krol
f18d70b804 cosmetic changes;
change first parameter's qualifier from inout to out for __operator =;
remove __asm instructions: int_add, int_multiply, int_divide, int_negate,
int_less, int_equal, bool_equal;
2005-04-13 12:59:58 +00:00
Michal Krol
cfcf86b37d converts a .gc file to a C header containing string form of the file 2005-04-13 12:48:40 +00:00
Felix Kuehling
0ad2ef20a7 Added a Spanish translation by David Rubio Miguélezand a Dutch
translation by Manfred Stienstra.
2005-04-12 21:01:30 +00:00
Felix Kuehling
ad0dbe6b04 Changed escaping of double quotes. 2005-04-12 20:58:34 +00:00
Brian Paul
41bddcfa7b PF_8A8R8G8B pixel format (Dave Reveman) 2005-04-12 01:41:04 +00:00
Felix Kuehling
55ba0dccc9 Manage option translations in separate .po files to make translations
easier for non-programmers familiar with GNU gettext. For now there is
only a German translation but more translations are encouraged.

Translatable strings are extracted from t_options.h containing option
definitions with English descriptions. A corresponding header options.h
with all available translations of option descriptions is generated by
gen_xmlpool.py and included by xmlpool.h.

Many option descriptions were rephrased to make them unambiguous for
translation without context. They are hopefully more helpful to users at
the same time.
2005-04-11 21:41:40 +00:00
Brian Paul
aaa5a66433 set table size to 1023 and use new HASH_FUNC() macro 2005-04-10 17:44:27 +00:00
Adam Jackson
5f92c38f0e Bug #2945: Fix math error that left half the hash buckets empty. 2005-04-09 18:35:57 +00:00
Ian Romanick
db382c5b1d Remove all the radeon_subset files. They were completely unused. Keith
Whitwell says, "[T]he radeon subset code can probably be archived now."
This "fixes" bug #1623.
2005-04-08 23:54:20 +00:00
Ian Romanick
a657c1aee8 Use the same dispatch.c source file for "normal" Mesa builds and DRI
libGL builds.
2005-04-07 23:58:51 +00:00
Brian Paul
d9c389dff6 Add shaderobjects_3dlabs.c back into build but use #ifdef FEATURE_shading_language to enable/disable relevant code. 2005-04-07 14:38:41 +00:00
Ian Romanick
c51ed8c236 Follow the GLX_SGIX_fbconfig spec and return the complete list of
available fbconfigs if attrList is NULL.  This fixes bug #2917.
2005-04-07 00:05:55 +00:00
Brian Paul
c61782958b added wrappers/helpers for creating/destroying rendering contexts 2005-04-06 22:41:46 +00:00
Brian Paul
c3984fc015 changed implementation of GetAllFBConfigs() 2005-04-06 22:40:39 +00:00
Brian Paul
481bdd383a Fix Fake_glXChooseFBConfig so passing NULL attribList causes a list of all
fbconfigs to be returned.
2005-04-06 22:33:15 +00:00
Ian Romanick
bfc8a8dc63 Make linux-dri-x86-64 more like linux-dri-x86. Add ARCH_FLAGS. This is
where things like "-m64" or "-m32" should be specified.  Using this, a
32-bit DRI build can be done on an x86-64 system by doing 'ARCH_CFLAGS=-m32
make linux-dri-x86'.  Minor tweaks to linux-dri to support these changes.
2005-04-06 21:34:34 +00:00
Ian Romanick
29c909f81c Make glxgears_fbconfig compile and respect the DISPLAY setting. Add it
to the Makefile as well.
2005-04-05 20:43:06 +00:00
Keith Whitwell
5234d17514 Don't call PrimitiveNotify with an invalid primitive. Fix ipers
wireframe mode.
2005-04-05 10:30:05 +00:00
Brian Paul
c39a4bc83c s/Togle/Toggle/ 2005-04-04 20:06:40 +00:00
Brian Paul
a92100a3c6 updated warning string to match patch in bug report 2868 2005-04-04 16:06:16 +00:00
Brian Paul
fe1230f1c8 Use FEATURE_shading_language to control whether the shading language
compiler is hooked in.  May be enabled on compiler command line by setting
-DFEATURE_shading_lanuage=1.
2005-04-01 01:41:54 +00:00
Adam Jackson
26772ac988 Disable _mesa_3dlabs_create_{program,shader}_object references. 2005-03-30 17:02:18 +00:00
Brian Paul
425569bbc5 Disable C++ shading language code yet again. Doesn't compile with older
g++ installations.
2005-03-29 02:46:59 +00:00
Brian Paul
93b52d9484 re-enable shading language sources 2005-03-29 02:31:43 +00:00
Brian Paul
1706ba4101 re-enable _mesa_init_shaderobjects_3dlabs() call 2005-03-29 02:31:11 +00:00
Brian Paul
9a54843a94 fix a variety of warnings/errors 2005-03-29 02:28:21 +00:00
Brian Paul
cb80e3905c disable 3dlabs shading language code until build is fixed 2005-03-26 19:45:40 +00:00
Brian Paul
32e845f05e disable _mesa_init_shaderobjects_3dlabs() call until build is fixed 2005-03-26 19:45:08 +00:00
Brian Paul
7d4abc9b3a remove INSTALL.GNU from tarball list 2005-03-26 19:22:06 +00:00
Brian Paul
a62fe7f5e3 obsolete 2005-03-26 19:21:07 +00:00
Michal Krol
00e599e783 implement gl2_3dlabs_shhandle interface; resolve few TODOs 2005-03-25 12:16:53 +00:00
Michal Krol
1d7f71924d cleanup query functions 2005-03-25 12:12:50 +00:00
Michal Krol
05ab19ef43 add _mesa_init_shaderobjects_3dlabs() declaration 2005-03-25 12:07:31 +00:00
Michal Krol
a095aa4f4b fix comments; fix TBuiltInResource typedef 2005-03-25 12:05:30 +00:00
Michal Krol
675f802542 fix comments; disable DLL linkage for WIN32 2005-03-25 12:03:58 +00:00
Felix Kuehling
116986bad5 Fixed segfault due to an off-by-one error in SAVAGE_TEX_MAXLEVELS. 2005-03-24 11:53:19 +00:00
Felix Kuehling
798e753e07 Initialize texture addresses to something valid. 2005-03-23 17:59:09 +00:00
Keith Whitwell
ce1d7ee5ee remove file after merge 2005-03-23 12:01:08 +00:00
1115 changed files with 160643 additions and 93143 deletions

231
Makefile
View File

@@ -28,6 +28,7 @@ realclean:
-rm -f `find . -name \*.o`
-rm -f `find . -name \*.a`
-rm -f `find . -name \*.so`
-rm -f `find . -name depend`
@@ -61,6 +62,7 @@ darwin \
darwin-static \
freebsd \
freebsd-dri \
freebsd-dri-amd64 \
freebsd-dri-x86 \
hpux10 \
hpux10-gcc \
@@ -87,6 +89,8 @@ linux-dri \
linux-dri-x86 \
linux-dri-x86-64 \
linux-dri-ppc \
linux-indirect \
linux-fbdev \
linux-glide \
linux-icc \
linux-icc-static \
@@ -107,7 +111,9 @@ linux-x86 \
linux-x86-debug \
linux-x86-32 \
linux-x86-64 \
linux-x86-64-debug \
linux-x86-64-static \
linux-x86-xcb \
linux-x86-glide \
linux-x86-static \
netbsd \
@@ -128,28 +134,28 @@ ultrix-gcc:
# Rules for making release tarballs
DIRECTORY = Mesa-6.3
LIB_NAME = MesaLib-6.3
DEMO_NAME = MesaDemos-6.3
DIRECTORY = Mesa-6.5
LIB_NAME = MesaLib-6.5
DEMO_NAME = MesaDemos-6.5
GLUT_NAME = MesaGLUT-6.5
LIB_FILES = \
MAIN_FILES = \
$(DIRECTORY)/Makefile* \
$(DIRECTORY)/descrip.mms \
$(DIRECTORY)/mms-config. \
$(DIRECTORY)/Mesa.dsw \
$(DIRECTORY)/bin/mklib \
$(DIRECTORY)/bin/installmesa \
$(DIRECTORY)/configs/[a-z]* \
$(DIRECTORY)/docs/*.html \
$(DIRECTORY)/docs/COPYING \
$(DIRECTORY)/docs/INSTALL.GNU \
$(DIRECTORY)/docs/README.* \
$(DIRECTORY)/docs/RELNOTES* \
$(DIRECTORY)/docs/VERSIONS \
$(DIRECTORY)/docs/*.spec \
$(DIRECTORY)/include/GL/internal/glcore.h \
$(DIRECTORY)/include/GL/dmesa.h \
$(DIRECTORY)/include/GL/amesa.h \
$(DIRECTORY)/include/GL/dmesa.h \
$(DIRECTORY)/include/GL/directfbgl.h \
$(DIRECTORY)/include/GL/fxmesa.h \
$(DIRECTORY)/include/GL/ggimesa.h \
$(DIRECTORY)/include/GL/gl.h \
@@ -170,6 +176,7 @@ LIB_FILES = \
$(DIRECTORY)/include/GL/xmesa.h \
$(DIRECTORY)/include/GL/xmesa_x.h \
$(DIRECTORY)/include/GL/xmesa_xf86.h \
$(DIRECTORY)/include/GLView.h \
$(DIRECTORY)/src/Makefile \
$(DIRECTORY)/src/descrip.mms \
$(DIRECTORY)/src/mesa/Makefile* \
@@ -177,28 +184,25 @@ LIB_FILES = \
$(DIRECTORY)/src/mesa/descrip.mms \
$(DIRECTORY)/src/mesa/depend \
$(DIRECTORY)/src/mesa/main/*.[chS] \
$(DIRECTORY)/src/mesa/main/main.dsp \
$(DIRECTORY)/src/mesa/main/descrip.mms \
$(DIRECTORY)/src/mesa/glapi/*.[chS] \
$(DIRECTORY)/src/mesa/glapi/glapi.dsp \
$(DIRECTORY)/src/mesa/glapi/descrip.mms \
$(DIRECTORY)/src/mesa/array_cache/*.[ch] \
$(DIRECTORY)/src/mesa/array_cache/array_cache.dsp \
$(DIRECTORY)/src/mesa/array_cache/descrip.mms \
$(DIRECTORY)/src/mesa/math/*.[ch] \
$(DIRECTORY)/src/mesa/math/math.dsp \
$(DIRECTORY)/src/mesa/math/descrip.mms \
$(DIRECTORY)/src/mesa/shader/*.[ch] \
$(DIRECTORY)/src/mesa/shader/shader.dsp \
$(DIRECTORY)/src/mesa/shader/descrip.mms \
$(DIRECTORY)/src/mesa/shader/grammar/*.[ch] \
$(DIRECTORY)/src/mesa/shader/grammar/descrip.mms \
$(DIRECTORY)/src/mesa/shader/slang/*.[ch] \
$(DIRECTORY)/src/mesa/shader/slang/descrip.mms \
$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch] \
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
$(DIRECTORY)/src/mesa/swrast/swrast.dsp \
$(DIRECTORY)/src/mesa/swrast/descrip.mms \
$(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \
$(DIRECTORY)/src/mesa/swrast_setup/swrast_setup.dsp \
$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms \
$(DIRECTORY)/src/mesa/tnl/*.[chS] \
$(DIRECTORY)/src/mesa/tnl/tnl.dsp \
$(DIRECTORY)/src/mesa/tnl/descrip.mms \
$(DIRECTORY)/src/mesa/tnl_dd/*.[ch] \
$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch] \
@@ -207,13 +211,11 @@ LIB_FILES = \
$(DIRECTORY)/src/mesa/drivers/beos/Makefile \
$(DIRECTORY)/src/mesa/drivers/common/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/common/descrip.mms \
$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/directfb/Makefile \
$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/directfb/Makefile \
$(DIRECTORY)/src/mesa/drivers/dos/*.[chS] \
$(DIRECTORY)/src/mesa/drivers/dri/common/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c \
$(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/glide/*.def \
$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in \
$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c \
@@ -224,26 +226,61 @@ LIB_FILES = \
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win \
$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms \
$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def \
$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.dsp \
$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/svga/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/windows/*/*.def \
$(DIRECTORY)/src/mesa/drivers/windows/*/*.dsp \
$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms \
$(DIRECTORY)/src/mesa/drivers/x11/*.[ch] \
$(DIRECTORY)/src/mesa/ppc/*.[ch] \
$(DIRECTORY)/src/mesa/sparc/*.[chS] \
$(DIRECTORY)/src/mesa/x86/Makefile \
$(DIRECTORY)/src/mesa/x86/*.[ch] \
$(DIRECTORY)/src/mesa/x86/*.S \
$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch] \
$(DIRECTORY)/src/mesa/x86-64/*.[chS] \
$(DIRECTORY)/src/mesa/x86-64/Makefile \
$(DIRECTORY)/progs/Makefile \
$(DIRECTORY)/progs/util/README \
$(DIRECTORY)/progs/util/*.[ch] \
$(DIRECTORY)/progs/util/sampleMakefile \
$(DIRECTORY)/vms/analyze_map.com \
$(DIRECTORY)/vms/xlib.opt \
$(DIRECTORY)/vms/xlib_share.opt \
$(DIRECTORY)/windows/VC6/mesa/gdi/gdi.dsp \
$(DIRECTORY)/windows/VC6/mesa/glu/*.txt \
$(DIRECTORY)/windows/VC6/mesa/glu/glu.dsp \
$(DIRECTORY)/windows/VC6/mesa/mesa.dsw \
$(DIRECTORY)/windows/VC6/mesa/mesa/mesa.dsp \
$(DIRECTORY)/windows/VC6/mesa/osmesa/osmesa.dsp \
$(DIRECTORY)/windows/VC7/mesa/gdi/gdi.vcproj \
$(DIRECTORY)/windows/VC7/mesa/glu/glu.vcproj \
$(DIRECTORY)/windows/VC7/mesa/mesa.sln \
$(DIRECTORY)/windows/VC7/mesa/mesa/mesa.vcproj \
$(DIRECTORY)/windows/VC7/mesa/osmesa/osmesa.vcproj
DRI_FILES = \
$(DIRECTORY)/include/GL/internal/dri_interface.h \
$(DIRECTORY)/include/GL/internal/sarea.h \
$(DIRECTORY)/src/glx/Makefile \
$(DIRECTORY)/src/glx/x11/Makefile \
$(DIRECTORY)/src/glx/x11/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po \
$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS] \
$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile \
$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile \
$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
SGI_GLU_FILES = \
$(DIRECTORY)/src/glu/Makefile \
$(DIRECTORY)/src/glu/descrip.mms \
$(DIRECTORY)/src/glu/sgi/Makefile \
$(DIRECTORY)/src/glu/sgi/Makefile.win \
$(DIRECTORY)/src/glu/sgi/Makefile.DJ \
$(DIRECTORY)/src/glu/sgi/cc*.txt \
$(DIRECTORY)/src/glu/sgi/glu.def \
$(DIRECTORY)/src/glu/sgi/glu.dsp \
$(DIRECTORY)/src/glu/sgi/dummy.cc \
$(DIRECTORY)/src/glu/sgi/descrip.mms \
$(DIRECTORY)/src/glu/sgi/mesaglu.opt \
@@ -257,46 +294,22 @@ LIB_FILES = \
$(DIRECTORY)/src/glu/sgi/libtess/README \
$(DIRECTORY)/src/glu/sgi/libtess/alg-outline \
$(DIRECTORY)/src/glu/sgi/libtess/*.[ch] \
$(DIRECTORY)/src/glu/sgi/libutil/*.[ch] \
$(DIRECTORY)/src/glu/mesa/README[12] \
$(DIRECTORY)/src/glu/mesa/Makefile* \
$(DIRECTORY)/src/glu/mesa/descrip.mms \
$(DIRECTORY)/src/glu/mesa/mms_depend \
$(DIRECTORY)/src/glu/mesa/*.def \
$(DIRECTORY)/src/glu/mesa/depend \
$(DIRECTORY)/src/glu/mesa/*.[ch] \
$(DIRECTORY)/src/glw/*.[ch] \
$(DIRECTORY)/src/glw/Makefile* \
$(DIRECTORY)/src/glw/README \
$(DIRECTORY)/src/glw/depend \
$(DIRECTORY)/progs/Makefile \
$(DIRECTORY)/progs/util/README \
$(DIRECTORY)/progs/util/*.[ch] \
$(DIRECTORY)/progs/util/sampleMakefile \
$(DIRECTORY)/vms/analyze_map.com \
$(DIRECTORY)/vms/xlib.opt \
$(DIRECTORY)/vms/xlib_share.opt
$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
MESA_GLU_FILES = \
$(DIRECTORY)/src/glu/mesa/README[12] \
$(DIRECTORY)/src/glu/mesa/Makefile* \
$(DIRECTORY)/src/glu/mesa/descrip.mms \
$(DIRECTORY)/src/glu/mesa/mms_depend \
$(DIRECTORY)/src/glu/mesa/*.def \
$(DIRECTORY)/src/glu/mesa/depend \
$(DIRECTORY)/src/glu/mesa/*.[ch]
GLUT_FILES = \
$(DIRECTORY)/include/GL/glut.h \
$(DIRECTORY)/include/GL/glutf90.h \
$(DIRECTORY)/src/glut/glx/Makefile* \
$(DIRECTORY)/src/glut/glx/depend \
$(DIRECTORY)/src/glut/glx/*def \
$(DIRECTORY)/src/glut/glx/descrip.mms \
$(DIRECTORY)/src/glut/glx/mms_depend \
$(DIRECTORY)/src/glut/glx/glut.dsp \
$(DIRECTORY)/src/glut/glx/*.[ch] \
$(DIRECTORY)/src/glut/beos/*.[ch] \
$(DIRECTORY)/src/glut/beos/*.cpp \
$(DIRECTORY)/src/glut/beos/Makefile \
$(DIRECTORY)/src/glut/dos/*.[ch] \
$(DIRECTORY)/src/glut/dos/Makefile.DJ \
$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS] \
$(DIRECTORY)/src/glut/ggi/*.[ch] \
$(DIRECTORY)/src/glut/ggi/Makefile
GLW_FILES = \
$(DIRECTORY)/src/glw/*.[ch] \
$(DIRECTORY)/src/glw/Makefile* \
$(DIRECTORY)/src/glw/README \
$(DIRECTORY)/src/glw/depend
DEMO_FILES = \
$(DIRECTORY)/progs/beos/*.cpp \
@@ -309,8 +322,8 @@ DEMO_FILES = \
$(DIRECTORY)/progs/demos/*.cxx \
$(DIRECTORY)/progs/demos/*.dat \
$(DIRECTORY)/progs/demos/README \
$(DIRECTORY)/progs/demos/Windows/*.dsp \
$(DIRECTORY)/progs/demos/Windows/*.dsw \
$(DIRECTORY)/progs/osdemos/Makefile \
$(DIRECTORY)/progs/osdemos/*.c \
$(DIRECTORY)/progs/xdemos/Makefile* \
$(DIRECTORY)/progs/xdemos/descrip.mms \
$(DIRECTORY)/progs/xdemos/*.[chf] \
@@ -323,68 +336,109 @@ DEMO_FILES = \
$(DIRECTORY)/progs/windml/Makefile.ugl \
$(DIRECTORY)/progs/windml/*.c \
$(DIRECTORY)/progs/windml/*.bmp \
$(DIRECTORY)/progs/ggi/*.c
$(DIRECTORY)/progs/ggi/*.c \
$(DIRECTORY)/windows/VC6/progs/demos/*.dsp \
$(DIRECTORY)/windows/VC6/progs/progs.dsw \
$(DIRECTORY)/windows/VC7/progs/demos/*.vcproj \
$(DIRECTORY)/windows/VC7/progs/progs.sln
GLUT_FILES = \
$(DIRECTORY)/include/GL/glut.h \
$(DIRECTORY)/include/GL/glutf90.h \
$(DIRECTORY)/src/glut/glx/Makefile* \
$(DIRECTORY)/src/glut/glx/depend \
$(DIRECTORY)/src/glut/glx/*def \
$(DIRECTORY)/src/glut/glx/descrip.mms \
$(DIRECTORY)/src/glut/glx/mms_depend \
$(DIRECTORY)/src/glut/glx/*.[ch] \
$(DIRECTORY)/src/glut/beos/*.[ch] \
$(DIRECTORY)/src/glut/beos/*.cpp \
$(DIRECTORY)/src/glut/beos/Makefile \
$(DIRECTORY)/src/glut/dos/*.[ch] \
$(DIRECTORY)/src/glut/dos/Makefile.DJ \
$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS] \
$(DIRECTORY)/src/glut/ggi/*.[ch] \
$(DIRECTORY)/src/glut/ggi/Makefile \
$(DIRECTORY)/windows/VC6/progs/glut/glut.dsp \
$(DIRECTORY)/windows/VC7/progs/glut/glut.vcproj
DEPEND_FILES = \
$(TOP)/src/mesa/depend \
$(TOP)/src/glw/depend \
$(TOP)/src/glut/glx/depend \
$(TOP)/src/glu/sgi/depend
DRI_FILES = \
$(DIRECTORY)/src/glx/Makefile \
$(DIRECTORY)/src/glx/mini/*.[ch] \
$(DIRECTORY)/src/glx/mini/example.miniglx.conf \
$(DIRECTORY)/src/glx/mini/NOTES \
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
$(DIRECTORY)/src/mesa/drivers/dri/common/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/dri/dri_client/imports/*.h \
$(DIRECTORY)/src/mesa/drivers/dri/*/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/dri/*/depend \
$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile \
$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile \
$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
LIB_FILES = $(MAIN_FILES) $(DRI_FILES) $(SGI_GLU_FILES) $(GLW_FILES)
# Everything for new a Mesa release:
tarballs: lib_gz demo_gz lib_bz2 demo_bz2 lib_zip demo_zip md5
tarballs: rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 glut_bz2 lib_zip demo_zip glut_zip md5
rm_depend:
@for dep in $(DEPEND_FILES) ; do \
rm -f $$dep ; \
touch $$dep ; \
done
lib_gz:
rm -f configs/current ; \
cd .. ; \
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
gzip $(LIB_NAME).tar ; \
mv $(LIB_NAME).tar.gz $(DIRECTORY)
demo_gz:
cd .. ; \
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) $(GLUT_FILES) ; \
tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
gzip $(DEMO_NAME).tar ; \
mv $(DEMO_NAME).tar.gz $(DIRECTORY)
glut_gz:
cd .. ; \
tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
gzip $(GLUT_NAME).tar ; \
mv $(GLUT_NAME).tar.gz $(DIRECTORY)
lib_bz2:
rm -f configs/current ; \
cd .. ; \
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
bzip2 $(LIB_NAME).tar ; \
mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
demo_bz2:
cd .. ; \
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) $(GLUT_FILES) ; \
tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
bzip2 $(DEMO_NAME).tar ; \
mv $(DEMO_NAME).tar.bz2 $(DIRECTORY)
glut_bz2:
cd .. ; \
tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
bzip2 $(GLUT_NAME).tar ; \
mv $(GLUT_NAME).tar.bz2 $(DIRECTORY)
lib_zip:
rm -f configs/current ; \
-rm $(LIB_NAME).zip ; \
rm -f $(LIB_NAME).zip ; \
cd .. ; \
zip -r $(LIB_NAME).zip $(LIB_FILES) ; \
zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
mv $(LIB_NAME).zip $(DIRECTORY)
demo_zip:
-rm $(DEMO_NAME).zip ; \
rm -f $(DEMO_NAME).zip ; \
cd .. ; \
zip -r $(DEMO_NAME).zip $(DEMO_FILES) $(GLUT_FILES) ; \
zip -qr $(DEMO_NAME).zip $(DEMO_FILES) ; \
mv $(DEMO_NAME).zip $(DIRECTORY)
glut_zip:
rm -f $(GLUT_NAME).zip ; \
cd .. ; \
zip -qr $(GLUT_NAME).zip $(GLUT_FILES) ; \
mv $(GLUT_NAME).zip $(DIRECTORY)
md5:
@-md5sum $(LIB_NAME).tar.gz
@-md5sum $(LIB_NAME).tar.bz2
@@ -392,3 +446,6 @@ md5:
@-md5sum $(DEMO_NAME).tar.gz
@-md5sum $(DEMO_NAME).tar.bz2
@-md5sum $(DEMO_NAME).zip
@-md5sum $(GLUT_NAME).tar.gz
@-md5sum $(GLUT_NAME).tar.bz2
@-md5sum $(GLUT_NAME).zip

View File

@@ -31,8 +31,6 @@
# Available options:
#
# Environment variables:
# CPU optimize for the given processor.
# default = pentium
# GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++)
# or `mesa'.
# default = mesa
@@ -59,12 +57,10 @@
.PHONY : all libgl libglu libglut clean realclean
CPU ?= pentium
GLU ?= mesa
CFLAGS = -Wall -W -pedantic
CFLAGS += -O2 -ffast-math -mtune=$(CPU)
CFLAGS += -O2 -ffast-math
export CFLAGS

View File

@@ -31,8 +31,6 @@
# Available options:
#
# Environment variables:
# CPU optimize for the given processor.
# default = pentium
# GLIDE path to Glide3 SDK; used with FX.
# default = $(TOP)/glide3
# FX=1 build for 3dfx Glide3. Note that this disables
@@ -57,8 +55,6 @@
.PHONY : all libgl clean realclean
CPU ?= pentium
ifeq ($(ICD),1)
# when -std=c99 mingw will not define WIN32
CFLAGS = -Wall -W -Werror
@@ -66,7 +62,7 @@ else
# I love c89
CFLAGS = -Wall -W -pedantic
endif
CFLAGS += -O2 -ffast-math -mtune=$(CPU)
CFLAGS += -O2 -ffast-math
export CFLAGS

179
Mesa.dsw
View File

@@ -1,179 +0,0 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "array_cache"=".\SRC\MESA\array_cache\array_cache.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "gdi"=".\src\mesa\drivers\windows\gdi\gdi.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name array_cache
End Project Dependency
Begin Project Dependency
Project_Dep_Name main
End Project Dependency
Begin Project Dependency
Project_Dep_Name math
End Project Dependency
Begin Project Dependency
Project_Dep_Name swrast_setup
End Project Dependency
Begin Project Dependency
Project_Dep_Name swrast
End Project Dependency
Begin Project Dependency
Project_Dep_Name tnl
End Project Dependency
Begin Project Dependency
Project_Dep_Name glapi
End Project Dependency
Begin Project Dependency
Project_Dep_Name shader
End Project Dependency
}}}
###############################################################################
Project: "glapi"=".\SRC\MESA\glapi\glapi.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "glu"=".\src\glu\sgi\glu.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name gdi
End Project Dependency
}}}
###############################################################################
Project: "main"=".\SRC\MESA\main\main.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "math"=".\SRC\MESA\math\math.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "osmesa"=".\SRC\MESA\DRIVERS\osmesa\osmesa.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name gdi
End Project Dependency
}}}
###############################################################################
Project: "shader"=".\SRC\MESA\shader\shader.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "swrast"=".\SRC\MESA\swrast\swrast.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "swrast_setup"=".\SRC\MESA\swrast_setup\swrast_setup.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "tnl"=".\SRC\MESA\tnl\tnl.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -12,7 +12,7 @@ TOP=.
INCLUDE_DIR="/usr/local/include"
LIB_DIR="/usr/local/lib"
if [ x$# == "x0" ] ; then
if [ "x$#" = "x0" ] ; then
echo
echo "***** Mesa installation - You may need root privileges to do this *****"
echo
@@ -20,7 +20,7 @@ echo "Default directory for header files is:" ${INCLUDE_DIR}
echo "Enter new directory or press <Enter> to accept this default."
read INPUT
if [ x${INPUT} != "x" ] ; then
if [ "x${INPUT}" != "x" ] ; then
INCLUDE_DIR=${INPUT}
fi
@@ -29,7 +29,7 @@ echo "Default directory for library files is:" ${LIB_DIR}
echo "Enter new directory or press <Enter> to accept this default."
read INPUT
if [ x${INPUT} != "x" ] ; then
if [ "x${INPUT}" != "x" ] ; then
LIB_DIR=${INPUT}
fi
@@ -47,14 +47,26 @@ fi
# flags:
# -f = force
# -d = preserve symlinks
# -d = preserve symlinks (does not work on BSD)
if [ `uname` = "FreeBSD" ] ; then
CP_FLAGS="-f"
elif [ `uname` = "Darwin" ] ; then
CP_FLAGS="-f"
else
CP_FLAGS="-fd"
fi
set -v
mkdir ${INCLUDE_DIR}
mkdir ${INCLUDE_DIR}/GL
mkdir ${INCLUDE_DIR}/GLES
mkdir ${LIB_DIR}
cp -f ${TOP}/include/GL/*.h ${INCLUDE_DIR}/GL
cp -fd ${TOP}/lib*/lib* ${LIB_DIR}
cp -f ${TOP}/src/glw/*.h ${INCLUDE_DIR}/GL
# NOT YET: cp -f ${TOP}/include/GLES/*.h ${INCLUDE_DIR}/GLES
cp ${CP_FLAGS} ${TOP}/lib*/lib* ${LIB_DIR}
echo "Done."

277
bin/mklib
View File

@@ -1,38 +1,28 @@
#!/bin/sh
# Make a shared library.
# Basically do a switch/case depending on the OS and make a shared (or static)
# library conforming to that OS.
# This script should be useful for projects other than Mesa.
# Improvements/fixes are welcome.
# Usage:
# mklib [options] objects ...
# Options:
# -o LIBRARY specifies the name of resulting library
# ("-o GL" for example, might result in "libGL.so" being made)
# -major N specifies major version number (default is 1)
# -minor N specifies minor version number (default is 0)
# -patch N specifies patch version number (default is 0)
# -lLIBRARY specifies a dependency on LIBRARY
# -LDIR search in DIR for library dependencies
# -cplusplus link with C++ runtime
# -static make a static library (default is dynamic/shared)
# -install DIR move resulting library file(s) to DIR
# -arch ARCH override using `uname` to determine architecture
# -archopt OPT specify an extra achitecture-specific option OPT
# -noprefix don't prefix library name with "lib" or any suffix
# -exports FILE only export the symbols listed in FILE
# Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
#
# The library name should just be "GL" or "GLU", etc. The 'lib' prefix
# will be added here if needed, as well as the ".so" or ".a" suffix,
# etc (unless the -noprefix option is used).
# 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:
#
# objects should be: foo.o bar.o etc.o
#
# Environment variables recognized:
# CC C compiler command
# CXX C++ compiler command
# 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.
#
@@ -43,6 +33,7 @@ MAJOR=1
MINOR=0
PATCH=""
DEPS=""
LINK=""
CPLUSPLUS=0
STATIC=0
INSTALLDIR="."
@@ -58,26 +49,93 @@ EXPORTS=""
while true
do
case $1 in
'-o') shift 1; LIBNAME=$1;;
'-major') shift 1; MAJOR=$1;;
'-minor') shift 1; MINOR=$1;;
'-patch') shift 1; PATCH=$1;;
-l*) DEPS="$DEPS $1";;
-L*) DEPS="$DEPS $1";;
'-cplusplus') CPLUSPLUS=1;;
'-static') STATIC=1;;
'-install') shift 1; INSTALLDIR=$1;;
'-arch') shift 1; ARCH=$1;;
'-archopt') shift 1; ARCHOPT=$1;;
'-noprefix') NOPREFIX=1;;
'-exports') shift 1; EXPORTS=$1;;
-*) echo "mklib: Unknown option: " $1 ; exit 1;;
*) break
'-h' | '--help')
echo 'Usage: mklib [options] objects'
echo 'Create a shared library from object files.'
echo ' -o LIBRARY specifies the name of the resulting library, without'
echo ' the leading "lib" or any suffix.'
echo ' (eg: "-o GL" might result in "libGL.so" being made)'
echo ' -major N specifies major version number (default is 1)'
echo ' -minor N specifies minor version number (default is 0)'
echo ' -patch N specifies patch version number (default is 0)'
echo ' -lLIBRARY specifies a dependency on LIBRARY'
echo ' -LDIR search in DIR for library dependencies'
echo ' -linker L explicity specify the linker program to use (eg: gcc, g++)'
echo ' Not observed on all systems at this time.'
echo ' -cplusplus link with C++ runtime'
echo ' -static make a static library (default is dynamic/shared)'
echo ' -install DIR put resulting library file(s) in DIR'
echo ' -arch ARCH override using `uname` to determine host system'
echo ' -archopt OPT specify an extra achitecture-specific option OPT'
echo " -noprefix don't prefix library name with 'lib' nor add any suffix"
echo ' -exports FILE only export the symbols listed in FILE'
echo ' -h, --help display this information and exit'
exit 1
;;
'-o')
shift 1;
LIBNAME=$1
;;
'-major')
shift 1;
MAJOR=$1
;;
'-minor')
shift 1;
MINOR=$1
;;
'-patch')
shift 1;
PATCH=$1
;;
'-linker')
shift 1;
LINK=$1
;;
-l*)
DEPS="$DEPS $1"
;;
-L*)
DEPS="$DEPS $1"
;;
'-cplusplus')
CPLUSPLUS=1
;;
'-static')
STATIC=1
;;
'-install')
shift 1;
INSTALLDIR=$1
;;
'-arch')
shift 1;
ARCH=$1
;;
'-archopt')
shift 1;
ARCHOPT=$1
;;
'-noprefix')
NOPREFIX=1
;;
'-exports')
shift 1;
EXPORTS=$1
;;
-*)
echo "mklib: Unknown option: " $1 ;
exit 1
;;
*)
# This should be the first object file, stop parsing
break
esac
shift 1
done
OBJECTS=$@
if [ ${ARCH} = "auto" ] ; then
ARCH=`uname`
fi
@@ -120,12 +178,13 @@ case $ARCH in
'Linux' | 'OpenBSD')
# we assume gcc
# Set default compilers if env vars not set
if [ "x$CXX" = "x" ] ; then
CXX=g++
fi
if [ "x$CC" = "x" ] ; then
CC=gcc
if [ "x$LINK" = "x" ] ; then
# -linker was not specified so set default link command now
if [ $CPLUSPLUS = 1 ] ; then
LINK=g++
else
LINK=gcc
fi
fi
if [ $NOPREFIX = 1 ] ; then
@@ -133,13 +192,16 @@ case $ARCH in
echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}
#OPTS="-shared -Wl,-soname,${LIBNAME}" # soname???
OPTS="-shared"
if [ $CPLUSPLUS = 1 ] ; then
LINK=$CXX
else
LINK=$CC
fi
rm -f ${LIBNAME}
# Check if objects are 32-bit and we're running in 64-bit
# environment. If so, pass -m32 flag to linker.
set ${OBJECTS}
ABI32=`file $1 | grep 32-bit`
if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then
OPTS="-m32 ${OPTS}"
fi
rm -f ${LIBNAME}
# make lib
${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
# finish up
@@ -147,10 +209,8 @@ case $ARCH in
elif [ $STATIC = 1 ] ; then
LIBNAME="lib${LIBNAME}" # prefix with "lib"
echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a
LINK="ar"
OPTS="-ru"
# make lib
${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS}
rm -f ${LIBNAME}.a
ar -ru ${LIBNAME}.a ${OBJECTS}
ranlib ${LIBNAME}.a
# finish up
FINAL_LIBS=${LIBNAME}.a
@@ -190,12 +250,6 @@ case $ARCH in
echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}.so.${VERSION}
if [ $CPLUSPLUS = 1 ] ; then
LINK=$CXX
else
LINK=$CC
fi
# rm any old libs
rm -f ${LIBNAME}.so.${VERSION}
rm -f ${LIBNAME}.so.${MAJOR}
@@ -224,41 +278,25 @@ case $ARCH in
echo "mklib: Making SunOS shared library: " ${LIBNAME}
# XXX OPTS for gcc should be -shared, but that doesn't work.
# Using -G does work though.
if [ $CPLUSPLUS = 1 ] ; then
# determine linker and options for C++ code
if [ "x${CXX}" = "xg++" ] ; then
# use g++
LINK="g++"
OPTS="-G"
elif [ "x${CXX}" = "xCC" ] ; then
# use Sun CC
LINK="CC"
OPTS="-G"
elif [ "x${CXX}" = "xc++" ] ; then
# use Sun c++
LINK="c++"
OPTS="-G"
elif [ `which c++` ] ; then
# use Sun c++
LINK="c++"
OPTS="-G"
elif [ `type g++` ] ; then
# use g++
LINK="g++"
OPTS="-G"
OPTS="-G"
if [ "x$LINK" = "x" ] ; then
# -linker was not specified, choose default linker now
if [ $CPLUSPLUS = 1 ] ; then
# determine linker and options for C++ code
if [ `which c++` ] ; then
# use Sun c++
LINK="c++"
elif [ `type g++` ] ; then
# use g++
LINK="g++"
else
echo "mklib: warning: can't find C++ comiler, trying CC."
LINK="CC"
fi
else
echo "mklib: warning: can't find C++ comiler, trying CC."
LINK="CC"
OPTS="-G"
# use native Sun linker for C code
LINK="ld"
fi
elif [ "x${CC}" = "xgcc" ] ; then
# use gcc for linking
LINK="gcc"
OPTS="-G"
else
# use native Sun linker
LINK="ld"
OPTS="-G"
fi
echo "mklib: linker is" ${LINK} ${OPTS}
rm -f ${LIBNAME}.${MAJOR} ${LIBNAME}
@@ -269,11 +307,23 @@ case $ARCH in
;;
'FreeBSD')
# we assume gcc
if [ "x$LINK" = "x" ] ; then
# -linker was not specified so set default link command now
if [ $CPLUSPLUS = 1 ] ; then
LINK=g++
else
LINK=gcc
fi
fi
if [ $NOPREFIX = 1 ] ; then
# No "lib" or ".so" part
echo "mklib: Making FreeBSD shared library: " ${LIBNAME}
OPTS="-shared"
rm -f ${LIBNAME}
ld -Bshareable -o ${LIBNAME} ${OBJECTS}
${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
FINAL_LIBS=${LIBNAME}
elif [ $STATIC = 1 ] ; then
STLIB="lib${LIBNAME}.a"
@@ -283,12 +333,13 @@ case $ARCH in
ranlib ${STLIB}
FINAL_LIBS=${STLIB}
else
SHLIB="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
SHLIB="lib${LIBNAME}.so.${MAJOR}"
OPTS="-shared -Wl,-soname,${SHLIB}"
echo "mklib: Making FreeBSD shared library: " ${SHLIB}
rm -f ${SHLIB}
ld -Bshareable -o ${SHLIB} ${OBJECTS}
# XXX make lib${LIBNAME}.so.${MAJOR} symlink?
FINAL_LIBS=${SHLIB}
${LINK} ${OPTS} -o ${SHLIB} ${OBJECTS} ${DEPS}
ln -sf ${SHLIB} "lib${LIBNAME}.so"
FINAL_LIBS="${SHLIB} lib${LIBNAME}.so"
fi
;;
@@ -317,6 +368,8 @@ case $ARCH in
FINAL_LIBS=${LIBNAME}
else
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
# XXX we should run 'file' on the first object file to determine
# if it's o32, n32 or 64 format, as we do for Linux above.
if [ $ARCHOPT = "64" ] ; then
# 64-bit ABI
OPTS="-64 -shared -all"
@@ -373,6 +426,7 @@ case $ARCH in
if [ $STATIC = 1 ] ; then
LIBNAME="lib${LIBNAME}.a"
echo "mklib: Making AIX static library: " ${LIBNAME}
rm -f ${LIBNAME}
ar -ruv ${X64} ${LIBNAME} ${OBJECTS}
FINAL_LIBS=${LIBNAME}
else
@@ -425,10 +479,12 @@ case $ARCH in
VERSION="${MAJOR}.${MINOR}"
LIBNAME="lib${LIBNAME}.so"
echo "mklib: Making OSF/1 shared library: " ${LIBNAME}
if [ $CPLUSPLUS = 1 ] ; then
LINK=$CXX
else
LINK=$CC
if [ "x$LINK" = "x" ] ; then
if [ $CPLUSPLUS = 1 ] ; then
LINK=cxx
else
LINK=cc
fi
fi
rm -f ${LIBNAME}.${VERSION}
${LINK} -o ${LIBNAME}.${VERSION} -shared -set_version ${VERSION} -soname ${LIBNAME}.${VERSION} -expect_unresolved \* -all ${OBJECTS} ${DEPS}
@@ -446,9 +502,9 @@ case $ARCH in
${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
FINAL_LIBS=${LIBNAME}
else
LIBNAME="${LIBNAME}.dylib"
LIBNAME="lib${LIBNAME}.dylib"
echo "mklib: Making Darwin shared library: " ${LIBNAME}
FLAGS="-dynamiclib -multiply_defined suppress"
FLAGS="-dynamiclib -multiply_defined suppress -current_version ${MAJOR}.${MINOR}.0 -compatibility_version ${MAJOR}.${MINOR}.0"
if [ $CPLUSPLUS = 1 ] ; then
LINK="g++"
else
@@ -477,6 +533,7 @@ case $ARCH in
echo "mklib: Making BeOS shared library: " ${LIBNAME}
gcc -nostart -Xlinker "-soname=${LIBNAME}" -L/Be/develop/lib/x86 -lbe ${DEPS} ${OBJECTS} -o "${LIBNAME}"
mimeset -f "${LIBNAME}"
# XXX remove the Mesa3D stuff here since mklib isn't mesa-specific.
setversion "${LIBNAME}" -app ${MAJOR} ${MINOR} ${PATCH} -short "Powered by Mesa3D!" -long "Powered by Mesa3D!"
fi
FINAL_LIBS=${LIBNAME}
@@ -498,6 +555,8 @@ case $ARCH in
'icc')
# Intel C compiler
# This should get merged into the Linux code, above, since this isn't
# really a different architecture.
LIBNAME="lib${LIBNAME}" # prefix with "lib"
if [ $STATIC = 1 ] ; then
@@ -615,7 +674,7 @@ case $ARCH in
ar rv ${LIBNAME} ${OBJECTS}
FINAL_LIBS="${LIBNAME}"
else
LIBNAME="lib${LIBNAME}.so" # prefix with "lib"
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
echo "mklib: Making shared library for example arch: " ${LIBNAME}
ld -o ${LIBNAME} ${OBJECTS} ${DEPS}
FINAL_LIBS="${LIBNAME}"

View File

@@ -26,7 +26,8 @@ ifeq ($(CPU), x86)
-DUSE_3DNOW_ASM \
-DUSE_SSE_ASM
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)
CC = gcc
CXX = g++

View File

@@ -5,11 +5,13 @@ include $(TOP)/configs/default
CONFIG_NAME = darwin
# Compiler and flags
CC = cc
CXX = cc
CC = c++
CXX = c++
CFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
CXXFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
MKLIB_OPTIONS = -cplusplus
# Library names (actual file names)
GL_LIB_NAME = libGL.dylib
GLU_LIB_NAME = libGLU.dylib
@@ -18,8 +20,12 @@ GLW_LIB_NAME = libGLw.dylib
OSMESA_LIB_NAME = libOSMesa.dylib
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
OSMESA_LIB_DEPS = $(TOP)/lib/GL.dylib
GLU_LIB_DEPS = $(TOP)/lib/GL.dylib
GLUT_LIB_DEPS =
OSMESA_LIB_DEPS = -L$(LIB_DIR) -lGL
GLU_LIB_DEPS = -L$(LIB_DIR) -lGL
GLUT_LIB_DEPS = -L$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
GLW_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXt $(TOP)/lib/GL.dylib
APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
# omit glw lib for now:
SRC_DIRS = mesa glu glut/glx

View File

@@ -7,10 +7,10 @@ CONFIG_NAME = default
# Version info
MESA_MAJOR=6
MESA_MINOR=3
MESA_MINOR=5
MESA_TINY=0
# external projects
# external projects. This should be useless now that we use libdrm.
DRM_SOURCE_PATH=$(TOP)/../drm
# Compiler and flags
@@ -26,6 +26,10 @@ MKDEP = makedepend
MKDEP_OPTIONS = -fdepend
MAKE = make
# Python and flags (generally only needed by the developers)
PYTHON2 = python
PYTHON_FLAGS = -t -O -O
# Library names (base name)
GL_LIB = GL
GLU_LIB = GLU
@@ -39,7 +43,7 @@ GL_LIB_NAME = lib$(GL_LIB).so
GLU_LIB_NAME = lib$(GLU_LIB).so
GLUT_LIB_NAME = lib$(GLUT_LIB).so
GLW_LIB_NAME = lib$(GLW_LIB).so
OSMESA_LIB_NAME = lib$(OSMesa).so
OSMESA_LIB_NAME = lib$(OSMESA_LIB).so
# Optional assembly language optimization files for libGL
@@ -56,13 +60,15 @@ INSTALL_PREFIX = /usr/local
SRC_DIRS = mesa glu glut/glx glw
GLU_DIRS = sgi
DRIVER_DIRS = x11 osmesa
# Which subdirs under $(TOP)/progs/ to enter:
PROGRAM_DIRS = demos redbook samples xdemos
# Library/program dependencies
GL_LIB_DEPS = -lX11 -lXext -lm -lpthread
EXTRA_LIB_PATH ?=
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
OSMESA_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB)
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -lX11
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm

View File

@@ -9,9 +9,9 @@ CC = gcc
CXX = g++
MAKE = gmake
CFLAGS = -O2 -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100
CFLAGS = -O2 -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100 \
$(ASM_FLAGS)
CXXFLAGS = -O2 -fPIC -pedantic
GLUT_CFLAGS = -fexceptions
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm

View File

@@ -11,23 +11,27 @@ CXX = g++
WARN_FLAGS = -Wall
OPT_FLAGS = -O
X11_INCLUDES = -I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions
DEFINES = -DDRI_NEW_INTERFACE_ONLY
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math -I/usr/local/include $(X11_INCLUDES)
EXPAT_INCLUDES = -I/usr/local/include
X11_INCLUDES = -I/usr/X11R6/include
DEFINES = -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
-DGLX_DIRECT_RENDERING -DHAVE_ALIAS
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC \
-ffast-math $(ASM_FLAGS) $(X11_INCLUDES)
CXXFLAGS = $(DEFINES) -Wall -g -ansi -pedantic -fPIC
ASM_SOURCES =
# Library/program dependencies
DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -pthread
LIBDRM_LIB = `pkg-config --libs libdrm` -ldrm
DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat $(LIBDRM_LIB)
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lm -lpthread $(LIBDRM_LIB)
GLUT_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lXm -lX11
# Directories
SRC_DIRS = mesa glu glut/glx glw glx/x11
SRC_DIRS = glx/x11 mesa glu glut/glx glw
DRIVER_DIRS = dri
PROGRAM_DIRS =
WINDOW_SYSTEM=dri
@@ -36,6 +40,6 @@ DRM_SOURCE_PATH=$(TOP)/../drm
# ffb and gamma are missing because they have not been converted to use the new
# interface.
DRI_DIRS = dri_client i810 i830 i915 mach64 mga r128 r200 radeon tdfx \
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 r300 radeon tdfx \
unichrome savage sis

10
configs/freebsd-dri-amd64 Normal file
View File

@@ -0,0 +1,10 @@
# -*-makefile-*-
# Configuration for freebsd-dri-amd64: FreeBSD DRI hardware drivers
include $(TOP)/configs/freebsd-dri
CONFIG_NAME = freebsd-dri-x86-64
ASM_FLAGS = -DUSE_X86_64_ASM
ASM_SOURCES = $(X86-64_SOURCES)
ASM_API = $(X86-64_API)

View File

@@ -10,3 +10,4 @@ PIC_FLAGS =
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)

View File

@@ -8,13 +8,25 @@ CONFIG_NAME = linux
CC = gcc
CXX = g++
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
OPT_FLAGS = -O3 -g
PIC_FLAGS = -fPIC
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support. Add -m32
# to build properly on 64-bit platforms.
ARCH_FLAGS ?=
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
-D_BSD_SOURCE -DPTHREADS -DUSE_XSHM
X11_INCLUDES = -I/usr/X11R6/include
CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math
CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
$(X11_INCLUDES)
GLUT_CFLAGS = -fexceptions
# Library/program dependencies
# Need to have -L/usr/X11R6/lib in these:
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
EXTRA_LIB_PATH = -L/usr/X11R6/lib

View File

@@ -1,20 +1,8 @@
# Configuration for debugging on Linux
include $(TOP)/configs/default
include $(TOP)/configs/linux
CONFIG_NAME = linux-debug
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG
CXXFLAGS = -g -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG -DMESA_DEBUG
GLUT_CFLAGS = -fexceptions
# Need to have -L/usr/X11R6/lib in these:
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
OPT_FLAGS = -g
DEFINES += -DDEBUG -DDEBUG_MATH

View File

@@ -17,7 +17,8 @@ HAVE_X86 = $(shell uname -m | grep 'i[3-6]86' >/dev/null && echo yes)
ifeq ($(HAVE_X86), yes)
CFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
CXXFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)
endif
# Directories

View File

@@ -9,45 +9,61 @@ CONFIG_NAME = linux-dri
CC = gcc
CXX = g++
MKDEP = /usr/X11R6/bin/makedepend
#MKDEP = /usr/X11R6/bin/makedepend
#MKDEP = gcc -M
#MKDEP_OPTIONS = -MF depend
WARN_FLAGS = -Wall
OPT_FLAGS = -O -g
PIC_FLAGS = -fPIC
OPT_FLAGS = -g
PIC_FLAGS = -fPIC
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
ARCH_FLAGS ?=
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
-D_BSD_SOURCE -D_GNU_SOURCE \
-DDRI_NEW_INTERFACE_ONLY -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
-DGLX_DIRECT_RENDERING -DHAVE_ALIAS
X11_INCLUDES = -I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions
X11_INCLUDES = -I/usr/X11R6/include
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(ASM_FLAGS) -std=c99 $(PIC_FLAGS) -ffast-math \
$(DEFINES)
CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
$(DEFINES) $(ASM_FLAGS) -std=c99 -ffast-math
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) \
$(DEFINES)
CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
ASM_SOURCES =
# Library/program dependencies
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
EXTRA_LIB_PATH=-L/usr/X11R6/lib
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
LIBDRM_LIB = `pkg-config --libs libdrm` -ldrm
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \
$(LIBDRM_LIB)
# This is now 0 by default since it seems to confuse the hell out of people
# and generate a lot of extra noise on bugzilla. If you need to build with
# EGL, do 'make linux-dri USING_EGL=1'
USING_EGL=0
# Directories
SRC_DIRS = mesa glu glut/glx glw glx/x11
ifeq ($(USING_EGL), 1)
SRC_DIRS = egl glx/x11 mesa glu glut/glx glw
PROGRAM_DIRS = egl
else
SRC_DIRS = glx/x11 mesa glu glut/glx glw
PROGRAM_DIRS =
endif
DRIVER_DIRS = dri
PROGRAM_DIRS =
WINDOW_SYSTEM=dri
# ffb and gamma are missing because they have not been converted to use the new
# gamma are missing because they have not been converted to use the new
# interface.
DRI_DIRS = dri_client i810 i830 i915 mach64 mga r128 r200 radeon s3v \
savage sis tdfx trident unichrome
DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon s3v \
savage sis tdfx trident unichrome ffb
DRI_DIRS = i915

View File

@@ -13,5 +13,5 @@ ASM_SOURCES = $(PPC_SOURCES)
# Build only the drivers for cards that exist on PowerPC. At some point MGA
# will be added, but not yet.
DRI_DIRS = dri_client mach64 r128 r200 radeon tdfx
DRI_DIRS = mach64 r128 r200 r300 radeon tdfx

View File

@@ -8,5 +8,10 @@ CONFIG_NAME = linux-dri-x86
# Unnecessary on x86, generally.
PIC_FLAGS =
# Add -m32 to CFLAGS:
ARCH_FLAGS = -m32
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)

View File

@@ -1,40 +1,24 @@
# -*-makefile-*-
# Configuration for linux-dri: Linux DRI hardware drivers for XFree86 & others
include $(TOP)/configs/default
include $(TOP)/configs/linux-dri
CONFIG_NAME = linux-dri-x86-64
# Compiler and flags
CC = gcc
CXX = g++
ARCH_FLAGS = -m64
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS -D_GNU_SOURCE
CFLAGS = -m64 -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math $(DEFINES)
CXXFLAGS = -m64 -Wall -g -ansi -pedantic -fPIC $(DEFINES)
X11_INCLUDES = -I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions
#ASM_SOURCES = $(X86_SOURCES)
ASM_FLAGS = -DUSE_X86_64_ASM
ASM_SOURCES = $(X86-64_SOURCES)
ASM_API = $(X86-64_API)
LIB_DIR = $(TOP)/lib64
# Library/program dependencies
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
GL_LIB_DEPS = -L/usr/X11R6/lib64 -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib64 -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib64 -lXt -lX11
EXTRA_LIB_PATH=-L/usr/X11R6/lib64
# Directories
SRC_DIRS = mesa glu glut/glx glw glx/x11
DRIVER_DIRS = dri
PROGRAM_DIRS =
WINDOW_SYSTEM=dri
# ffb, gamma, and sis are missing because they have
# not be converted to use the new interface. Do i810 & i830 really
# need to be included here?
# ffb, gamma, and sis are missing because they have not be converted to use
# the new interface. i810 and i830 are missing because there is no x86-64
# system where they could *ever* be used.
#
DRI_DIRS = dri_client i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome savage
DRI_DIRS = i915 mach64 mga r128 r200 radeon tdfx unichrome savage r300

10
configs/linux-fbdev Normal file
View File

@@ -0,0 +1,10 @@
# Configuration for Linux fbdev interface
include $(TOP)/configs/linux
CONFIG_NAME = linux-fbdev
DRIVER_DIRS = fbdev
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -DUSE_GLFBDEV_DRIVER
PROGRAM_DIRS = fbdev

View File

@@ -16,6 +16,7 @@ GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)

View File

@@ -24,6 +24,7 @@ GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lX
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
MKLIB_OPTIONS = -arch icc
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)

49
configs/linux-indirect Normal file
View File

@@ -0,0 +1,49 @@
# -*-makefile-*-
# Configuration for linux-indirect: Builds a libGL capable of indirect
# rendering, but *NOT* capable of direct rendering.
include $(TOP)/configs/default
CONFIG_NAME = linux-dri
# Compiler and flags
CC = gcc
CXX = g++
MKDEP = /usr/X11R6/bin/makedepend
#MKDEP = gcc -M
#MKDEP_OPTIONS = -MF depend
WARN_FLAGS = -Wall
OPT_FLAGS = -O -g
PIC_FLAGS = -fPIC
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
ARCH_FLAGS ?=
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
-D_BSD_SOURCE -D_GNU_SOURCE \
-DPTHREADS -DHAVE_ALIAS
X11_INCLUDES = -I/usr/X11R6/include
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
$(ASM_FLAGS) -std=c99 -ffast-math
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
ASM_SOURCES =
# Library/program dependencies
EXTRA_LIB_PATH=-L/usr/X11R6/lib
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
# Directories
SRC_DIRS = glx/x11 glu glut/glx glw
DRIVER_DIRS =
PROGRAM_DIRS =
WINDOW_SYSTEM=dri

View File

@@ -1,18 +1,9 @@
# Configuration for Linux on PPC
include $(TOP)/configs/default
include $(TOP)/configs/linux
CONFIG_NAME = linux-ppc
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM
CXXFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE
GLUT_CFLAGS = -fexceptions
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
OPT_FLAGS = -O3 -mcpu=603 -fsigned-char -funroll-loops
# FIXME: Use of PowerPC assembly should be enabled here.

View File

@@ -1,15 +1,9 @@
# Configuration for Linux on PPC, static libs
include $(TOP)/configs/default
include $(TOP)/configs/linux-ppc
CONFIG_NAME = linux-ppc-static
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM
CXXFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE
GLUT_CFLAGS = -fexceptions
MKLIB_OPTIONS = -static
# Library names (actual file names)
@@ -18,9 +12,3 @@ GLU_LIB_NAME = libGLU.a
GLUT_LIB_NAME = libglut.a
GLW_LIB_NAME = libGLw.a
OSMESA_LIB_NAME = libOSMesa.a
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm

29
configs/linux-profile Normal file
View File

@@ -0,0 +1,29 @@
# Configuration for profiling on Linux with gprof
include $(TOP)/configs/default
CONFIG_NAME = linux-profile
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -pg -O -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG
CXXFLAGS = -pg -O -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG
GLUT_CFLAGS = -fexceptions
# Need to have -L/usr/X11R6/lib in these:
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
# Need to make static libs for profiling:
MKLIB_OPTIONS = -static
GL_LIB_NAME = lib$(GL_LIB).a
GLU_LIB_NAME = lib$(GLU_LIB).a
GLUT_LIB_NAME = lib$(GLUT_LIB).a
GLW_LIB_NAME = lib$(GLW_LIB).a
OSMESA_LIB_NAME = lib$(OSMesa).a
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread

View File

@@ -8,26 +8,36 @@ CONFIG_NAME = linux-solo
CC = gcc
CXX = g++
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L -D_GNU_SOURCE -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC
WARN_FLAGS = -Wall -Wundef
OPT_FLAGS = -O3 -g
PIC_FLAGS = -fPIC
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
ARCH_FLAGS ?=
CXXFLAGS = $(DEFINES) -Wall -O3 -ansi -pedantic -fPIC
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
-D_BSD_SOURCE -D_GNU_SOURCE \
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC -DIN_DRI_DRIVER
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
$(ASM_FLAGS) -std=c99 -ffast-math
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
ASM_SOURCES = $(X86_SOURCES)
ASM_SOURCES =
# Library/program dependencies
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(LIB_DIR)
GL_LIB_DEPS = -lm -lpthread -ldl
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
# Directories
SRC_DIRS = mesa glx/mini glu glut/mini
SRC_DIRS = glx/mini mesa glu glut/mini
DRIVER_DIRS = dri
PROGRAM_DIRS = miniglx
#DRI_DIRS = fb ffb gamma sis savage
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome
#DRI_DIRS = ffb gamma sis savage
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome fb

View File

@@ -1,29 +1,7 @@
# Configuration for linux-solo-ia64: Linux DRI hardware drivers for fbdev
include $(TOP)/configs/default
include $(TOP)/configs/linux-solo
CONFIG_NAME = linux-solo-ia64
# Compiler and flags
CC = gcc
CXX = g++
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L -D_GNU_SOURCE -DDRM_USE_MALLOC
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math
CXXFLAGS = $(DEFINES) -Wall -O3 -ansi -pedantic -fPIC
# Library/program dependencies
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
GL_LIB_DEPS = -lm -lpthread -ldl
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
# Directories
SRC_DIRS = mesa glx/mini glu glut/mini
DRIVER_DIRS = dri
PROGRAM_DIRS = miniglx
DRI_DIRS = fb mach64 mga r128 r200 radeon sis tdfx unichrome

View File

@@ -1,32 +1,13 @@
# Configuration for linux-solo: Linux DRI hardware drivers for fbdev
# -*-makefile-*-
# Configuration for linux-solo-x86: Linux hardware drivers for fbdev for x86
include $(TOP)/configs/default
include $(TOP)/configs/linux-solo
CONFIG_NAME = linux-solo-x86
# Compiler and flags
CC = gcc
CXX = g++
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L -D_GNU_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC
CFLAGS = $(DEFINES) -Wmissing-prototypes -O3 -g -std=c99 -Wundef -fPIC -ffast-math
CXXFLAGS = $(DEFINES) -Wall -O3 -ansi -pedantic -fPIC
# Unnecessary on x86, generally.
PIC_FLAGS =
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
ASM_SOURCES = $(X86_SOURCES)
# Library/program dependencies
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
GL_LIB_DEPS = -lm -lpthread -ldl
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
# Directories
SRC_DIRS = mesa glx/mini glu glut/mini
DRIVER_DIRS = dri
PROGRAM_DIRS = miniglx
#DRI_DIRS = fb ffb gamma sis savage
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome
ASM_API = $(X86_API)

View File

@@ -7,10 +7,24 @@ CONFIG_NAME = linux-sparc
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM
CXXFLAGS = -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE
WARN_FLAGS = -Wall
OPT_FLAGS = -O2
PIC_FLAGS = -fPIC
DEFINES = -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM
X11_INCLUDES = -I/usr/X11R6/include
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
$(ASM_FLAGS) -std=c99 -ffast-math
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
GLUT_CFLAGS = -fexceptions
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
EXTRA_LIB_PATH=-L/usr/X11R6/lib
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11

View File

@@ -1,17 +1,9 @@
# Configuration for generic Linux, making static libs
include $(TOP)/configs/default
include $(TOP)/configs/linux
CONFIG_NAME = linux-static
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include
CXXFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
GLUT_CFLAGS = -fexceptions
MKLIB_OPTIONS = -static
# Library names (actual file names)
@@ -27,4 +19,3 @@ OSMESA_LIB_DEPS =
GLU_LIB_DEPS =
GLUT_LIB_DEPS =
GLW_LIB_DEPS =
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++

View File

@@ -1,22 +0,0 @@
# Configuration for debugging on Linux
include $(TOP)/configs/default
CONFIG_NAME = linux-tcc
# Compiler and flags
CC = gcc
CXX = g++
TCC_DIR=/home/progs/tcc-0.9.20
CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DUSE_TCC -I$(TCC_DIR)
CXXFLAGS = -g -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG -DMESA_DEBUG
GLUT_CFLAGS = -fexceptions
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L$(TCC_DIR) -ltcc -ldl
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm

View File

@@ -1,24 +1,9 @@
# Configuration for Linux with x86 optimizations
include $(TOP)/configs/default
include $(TOP)/configs/linux
CONFIG_NAME = linux-x86
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -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
CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
GLUT_CFLAGS = -fexceptions
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
# Library/program dependencies
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)

View File

@@ -4,10 +4,4 @@ include $(TOP)/configs/linux-x86
CONFIG_NAME = linux-x86-32
# Other than -m32, these are the same as in linux-x86, which we included above.
CFLAGS = -m32 -Wall -O3 -ansi -pedantic -fPIC -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
CXXFLAGS = -m32 -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
ARCH_FLAGS += -m32

View File

@@ -1,28 +1,14 @@
# Configuration for Linux for 64-bit X86 (Opteron)
include $(TOP)/configs/default
include $(TOP)/configs/linux
CONFIG_NAME = linux-x86-64
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -m64 -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include
CXXFLAGS = -m64 -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
GLUT_CFLAGS = -fexceptions
#ASM_SOURCES = $(X86_SOURCES)
ARCH_FLAGS = -m64
ASM_SOURCES = $(X86-64_SOURCES)
ASM_API = $(X86-64_API)
ASM_FLAGS = -DUSE_X86_64_ASM
LIB_DIR = $(TOP)/lib64
# Library/program dependencies
GL_LIB_DEPS = -L/usr/X11R6/lib64 -lX11 -lXext -lm -lpthread
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib64 -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib64 -lXt -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
EXTRA_LIB_PATH = -L/usr/X11R6/lib64

View File

@@ -0,0 +1,7 @@
# Configuration for Linux for 64-bit X86 (Opteron)
include $(TOP)/configs/linux-x86-64
CONFIG_NAME = linux-x86-64-debug
DEFINES += -DDEBUG -DDEBUG_MATH

View File

@@ -1,22 +1,11 @@
# Configuration for Linux for 64-bit X86 (Opteron), static libs
include $(TOP)/configs/default
include $(TOP)/configs/linux-x86-64
CONFIG_NAME = linux-x86-64-static
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -m64 -Wall -O3 -ansi -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include
CXXFLAGS = -m64 -Wall -O3 -ansi -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
GLUT_CFLAGS = -fexceptions
MKLIB_OPTIONS = -static
# Library names (actual file names)
GL_LIB_NAME = libGL.a
GLU_LIB_NAME = libGLU.a
@@ -24,17 +13,9 @@ GLUT_LIB_NAME = libglut.a
GLW_LIB_NAME = libGLw.a
OSMESA_LIB_NAME = libOSMesa.a
#ASM_SOURCES = $(X86_SOURCES)
LIB_DIR = $(TOP)/lib64
# Library/program dependencies (static libs don't have dependencies)
GL_LIB_DEPS =
OSMESA_LIB_DEPS =
GLU_LIB_DEPS =
GLUT_LIB_DEPS =
GLW_LIB_DEPS =
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib64 -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++

View File

@@ -5,6 +5,5 @@ include $(TOP)/configs/linux-x86
CONFIG_NAME = linux-x86-debug
CFLAGS = -Wall -g -ansi -pedantic -fPIC -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
CXXFLAGS = -Wall -g -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
OPT_FLAGS = -g
DEFINES += -DDEBUG -DDEBUG_MATH

View File

@@ -15,7 +15,8 @@ CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199
GLUT_CFLAGS = -fexceptions
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)
# Library/program dependencies
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread

View File

@@ -1,22 +1,11 @@
# Configuration for Linux with x86 optimizations, static libs
include $(TOP)/configs/default
include $(TOP)/configs/linux-x86
CONFIG_NAME = linux-x86-static
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -Wall -O3 -ansi -pedantic -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
CXXFLAGS = -Wall -O3 -ansi -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
GLUT_CFLAGS = -fexceptions
MKLIB_OPTIONS = -static
# Library names (actual file names)
GL_LIB_NAME = libGL.a
GLU_LIB_NAME = libGLU.a
@@ -24,14 +13,9 @@ GLUT_LIB_NAME = libglut.a
GLW_LIB_NAME = libGLw.a
OSMESA_LIB_NAME = libOSMesa.a
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
# Library/program dependencies (static libs don't have dependencies)
GL_LIB_DEPS =
OSMESA_LIB_DEPS =
GLU_LIB_DEPS =
GLUT_LIB_DEPS =
GLW_LIB_DEPS =
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++

25
configs/linux-x86-xcb Normal file
View File

@@ -0,0 +1,25 @@
# Configuration for Linux with x86 optimizations
include $(TOP)/configs/default
CONFIG_NAME = linux-x86-xcb
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -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 -DUSE_XCB -I/usr/X11R6/include
CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XCB
GLUT_CFLAGS = -fexceptions
ASM_SOURCES = $(X86_SOURCES)
ASM_API = $(X86_API)
# Library/program dependencies
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lXCB
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm

View File

@@ -9,7 +9,7 @@ CC = cc
CFLAGS = -Xa -xO3 -xpentium -KPIC -I/usr/openwin/include -DUSE_XSHM
MKLIB_OPTIONS = -static
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm -lglut -lGLU -lGL
GL_LIB_NAME = libGL.a
GLU_LIB_NAME = libGLU.a

View File

@@ -4,18 +4,33 @@ include $(TOP)/configs/default
CONFIG_NAME = sunos5-gcc
ASM_SOURCES = $(SPARC_SOURCES) $(SPARC_API)
# Compiler and flags
CC = gcc
CXX = g++
CFLAGS = -O3 -I/usr/openwin/include -fPIC -fomit-frame-pointer -D_REENTRANT -DUSE_XSHM -DUSE_SPARC_ASM
CXXFLAGS = -O3 -I/usr/openwin/include -fPIC -fomit-frame-pointer -D_REENTRANT -DUSE_SPARC_ASM
WARN_FLAGS = -Wall
OPT_FLAGS = -O3 -g -fomit-frame-pointer -pipe
PIC_FLAGS = -fPIC
ARCH_FLAGS ?=
DEFINES = -D_REENTRANT -DUSE_XSHM
ASM_SOURCES = $(SPARC_SOURCES)
ASM_API = $(SPARC_API)
ASM_FLAGS = -DUSE_SPARC_ASM
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
$(ASM_FLAGS) -std=c99 -ffast-math -I/usr/openwin/include
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
-I/usr/openwin/include
GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG
GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
# Library/program dependencies
EXTRA_LIB_PATH=-L/usr/openwin/lib
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXi -lm
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm

View File

@@ -1,182 +0,0 @@
Basic Installation
==================
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=PATH' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.

View File

@@ -14,68 +14,77 @@ Quick & dirty start:
Contact:
--------
Daniel Borca <dborca@users.sourceforge.net>
WARNING! The info below this line is outdated (yet some of it useful). WARNING!
*******************************************************************************
The Mingw port for Mesa 3-D Graphics Library was created August 30, 1998 by Paul Garceau.
August 30, 1998 -- Paul Garceau
Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
Updated January 13, 2000; June 3, 2005 -- Paul Garceau <pgarceau@users.sourceforge.net>
DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service
to the general public. I can, in no way support or make any guarantee that the
build will work for your system.
The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
Acknowledgements:
Feel free to modify or change things as you see fit, just remember that
I can't support any modifications you might want to make to the files which I
have included OR the lgpl protected Mesa 3-D Graphics Library.
Daniel Borca, whose work and commitment to maintaining the Mingw port of the Mesa 3-D Graphics Library has been, and will continue to be greatly appreciated by an overworked and underpaid developer such as myself.
Without the creative inspiration and personal commitment provided by Mumit Khan, Jan-Jaap Vanderhagen and Colin Peters, Mingw would never have existed. Acknowledgements also need to be given to all of the developers who have worked on Mingw, Mesa and Msys over the years.
Last, but certainly far from the least, Brian Paul, who has dedicated at least the last seven or eight years of his life to making Mesa 3-D Graphics Library what it is today and managing the development for all of those years.
*********************************************************************************
I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
Greetings,
(ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
Feel free to modify or change things related to the Mingw build as you see fit, just remember that, the author of the current build may not be able to support any modifications you might want to make to the files which have been included for the build.
Mesa core components are licensed under XFree-86 (for more on licensing of Mesa 3-D Graphics Library, check out the Mesa homepage (http://www.mesa3d.org).
The Mingw generated libraries themselves are licensed under the GNU-LGPL license. Source code for Mingw can be found at http://www.mingw.org. For licensing terms on Mingw, please visit http://www.mingw.org.
It is recommended that you use the latest "stable" release of Mingw. "Candidates" are beta testing distributions for Mingw. Mingw is available at http://www.mingw.org.
This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d.
I recommend using the GCC-2.95.2/Mingw32.
Installation:
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
This readme assumes that you already have extracted the necessary files to a working directory/folder that Mingw can use to build the Mesa3D libraries and that you know where that directory/folder is located on your Windows system. If you have any questions about how to set things up properly which is specific to Mesa3D, the folks on the Mesa3D mailing lists (http://www.mesa3d.org) would probably be happy to assist you. Also you can probably ask anyone on the Mingw mailing lists for any questions specific to Mingw (http://www.mingw.org)
Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
and Colin Peters for making it possible for the Mingw32 toolchain to exist. Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
Targets and Environment variables used for Mingw build:
Installing GCC-2.95.2/Mingw32 Build:
Before going into the actual build of the libraries, here is a list of available targets for the make process:
a) Open the file archive (either tar.gz or .zip extensions)
"all" or "libgl" -- this target will build libopengl.a, a static library. It will not build the demos, etc.
b) Decide the directory you want to move the archived files to.
clean -- this target will clean up most of the Mesa 3-D Graphics Library/object code from your hard drive.
realclean -- this target will clean up all of the Mesa 3D Graphics Library and the Mesa object code that it can find.
Environment Variables:
The environment variables are used to determine what sort of graphics driver support needs to be included in the finished Mesa 3-D Graphics Library.
GLIDE path to Glide3 SDK; used with FX.
default = $(TOP)/glide3
FX=1 build for 3dfx Glide3. Note that this disables
compilation of most WMesa code and requires fxMesa.
As a consequence, you'll need the Win32 Glide3
library to build any application.
default = no
ICD=1 build the installable client driver interface
(windows opengl driver interface)
default = no
X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
default = no
d) Extract the files from the archive.
e) Edit the mingw32.bat file to accomodate your choice of directory structure.
%mesaroot%: This is your root directory (Mesa-3.3)
%mesasrc%: This is the Mesa-3.3 src directory (Mesa-3.3\src)
%mesalib%: This is where the build will put libGL.a and libGLU.a
Running the Build:
Open your Command Prompt or MS-DOS prompt.
Go to your Mesa-3.3 'root' directory
At the command line type: mingw32
Launch Mingw.
From the Windows Command Prompt:
Set Environment Variables (as needed).
"cd" to your Mesa3D 'root' directory.
Enter "mingw32-make -f makefile.mgw <target>
That's all there is to it.
Enjoy!
Peace,
Paul G. (pgarceau@teleport.com)
Paul G. <pgarceau@users.sourceforge.net>
Daniel Borca <dborca@users.sourceforge.net>

View File

@@ -26,3 +26,13 @@ On Alpha platforms at default a sharable images for the libraries are created.
To get a static library make it by typing MMS/MACRO=(NOSHARE=1).
On VAX platforms only static libraries can be build.
23-sep-2005
changed default compilation to use /float=ieee/ieee=denorm. The reason for
this is that it makes Mesa on OpenVMS better compatible with other platforms
and other packages for VMS that I maintain.
For more information see
http://nchrem.tnw.tudelft.nl/openvms
https://bugs.freedesktop.org/show_bug.cgi?id=4270
You may want to compile Mesa to use VAX-floating point arithmetic, instead
of IEEE floating point by removing the /float=IEEE/denorm flag from the
compiler options in the descrip.mms files.

View File

@@ -1,108 +1,139 @@
File: docs/README.WIN32
Last updated: Oct 01, 2004 - Karl Schultz - kschultz@users.sourceforge.net
Last updated: Jul 01, 2005 - Karl Schultz - kschultz@users.sourceforge.net
Quick Start
----- -----
Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
The libs and demos build separately, so if you do not care about the
demos, you do not have to unzip that zip file. But if you do, it does
need to be unzipped into the same directory as the lib zip file because
the demos depend on the libs.
need to be unzipped into the same directory as the lib zip file
because the demos depend on the libs.
The build system has been changed to use Microsoft Visual Studio project
workspaces and projects. Makefiles are no longer shipped or supported, but
can be generated from the projects using Visual Studio.
The Windows build system uses Microsoft Visual Studio. Project files
for a specific version of Visual Studio are in their own directory in
the top-level "windows" directory. For example, Visual Studio 6 files
are in windows/VC6. If a directory does not exist for your version of
Visual Studio, you can try importing the project files from an earlier
version of Visual Studio. At this time, project files exist for
Version 6 and Version 7. The code has been built with a beta version
of Version 8 and it runs on 64-bit Windows. If you want to try this,
start by importing the VC7 files and create the 64-bit targets in the
configuration manager.
The workspace and project files were created with Visual Studio 6, so that
they can be used with VS6 and so that they can also be imported into VS 7.
The project files to build the core Mesa library, Windows Mesa
drivers, OSMesa, and GLU are in the mesa directory. The project files
to build GLUT and some demo programs are in the progs directory.
Details and Notes
Makefiles are no longer shipped or supported, but can be generated
from the projects using Visual Studio.
- To build the Mesa libraries, open the Mesa.dsw workspace file
in the top directory. You will need to build at least one
driver. Currently, only the gdi and osmesa drivers are available.
Select one or the other as the active project and build it.
If you want glu, select the glu project as active and build that as well.
- Glut is no longer in the Mesa.dsw workspace. It is now built in
the demo workspace (see below).
- The build process will create a lib directory in the top directory
and will put the following files there as you build them:
Windows Drivers
------- -------
At this time, only the GDI driver is known to work, as it has been
ported and rewritten to the latest Mesa DD interfaces. Source code
also exists in the tree for other drivers in src/mesa/drivers/windows,
but the status of this code is unknown.
The GDI driver operates basically by writing pixel spans into a DIB
section and then blitting the DIB to the window. The driver was
recently cleaned up and rewitten and so may have bugs or may be
missing some functionality. The older versions of the CVS source may
be useful in figuring out any problems, or report them to me.
To build Mesa with the GDI driver, build the mesa, gdi, and glu
projects in the Visual Studio workspace found at
windows/VC6/mesa/mesa.dsw
or
windows/VC7/mesa/mesa.sln
The osmesa DLL can also be built with the osmesa project.
The build system creates a lib top-level directory and copies
resulting LIB and DLL files to this lib directory. The files are:
OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
- Some users have reported problems building glu with VS7 after importing
and converting the VS6 project files. The problem is caused by a custom
build step that was put in place to work around a problem with VS6 not
recognizing .cc files as C++ source files. It appears that VS7 can be
configured to recognize .cc files as C++ files and so it compiles these
glu files with the default settings, and does not use settings that are
required to compile the files correctly. The easiest way to solve the
problem is to remove the .cc files from the glu project. This does not
delete the files, but removes them from the project so that VS does not
try to compile them at all. This allows the custom build step to compile
the files with the proper settings.
If the MesaDemos ZIP file was extracted, the DLL files are also copied
to the demos directory. This facilitates running the demos as described
below.
- After building, you can copy the above DLL files to a place in your PATH
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).
Be careful about accidentially overwriting files of the same name in
the SYSTEM32 directory.
- Build the demos by opening the appropriate *.dsw file in the
progs directory tree. For example, to build the demos, use
progs/demos/Windows/demos.dsw. The Windows directory contains
the workspace and all the projects for each demo program. Each
project places the executable in the same directory as its source
code, which is required for some demos.
GLUT and Demos
---- --- -----
- The demo projects also copy the Mesa library DLL files from the lib
directory into the same directory as the demo executables, so that
the demos use the Mesa libs you just built.
A Visual Studio workspace can be found at
- The DLL files are built so that the external entry points use the
stdcall calling convention.
windows/VC6/progs/progs.dsw
or
windows/VC7/progs/progs.sln
- Static LIB files are not built. The LIB files that are built with
are the linker import files associated with the DLL files.
It can be used to build GLUT and a few demos. The GLUT lib and DLL
are copied to the top-level lib directory, along with the Mesa libs.
- The si-glu sources are used to build the GLU libs. This was done
mainly to get the better tessellator code.
The demo build system expects to find the LIB files in the top level
lib directory, so you must build the Mesa libs first. The demo
executables are placed in the demos directory, because some of them
rely on data files found there. Also, the Mesa lib DLL's were copied
there by the Mesa lib build process. Therefore, you should be able to
simply run the demo executables from the demo directory.
- The Windows driver (in src/Windows) builds and runs at least at
a minimal level. I modified this driver to work with the new
Mesa 4.0 code and driver architecture, but I did not do a great
deal of optimization and testing. There are many opportunities
for optimization, many of which can be done by coding more specific
paths for the rasterizers. See src/osmesa/osmesa.c for some good
examples.
If you want to run the demos from the Visual Studio, you may have to
change the startup directory and explicitly state where the executables are.
- 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.
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
code alone, but it may need some work to get it 'turned on' again.
Build System Notes
----- ------ -----
- No assembly code is compiled or assembled. Again, this may need
some work to turn it back on or use it again.
VC6
---
- To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
to the project settings. You will also need to edit src/mesa.def to change
all the gl* symbols to mgl*. Because this is easy to do with a global
replace operation in a text editor, no additional mangled version of mesa.def
is maintained or shipped.
Visual Studio 6 does not recognize files with the .cc extension as C++
language files, without a lot of unnatural tweaking. So, the VC6
build process uses custom build steps to compile these files in the
GLU library.
VC7
---
The above-mentioned .cc problem does not exist in this version.
General
-------
After building, you can copy the above DLL files to a place in your
PATH 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). Be careful about accidentially overwriting files of
the same name in the SYSTEM32 directory.
The DLL files are built so that the external entry points use the
stdcall calling convention.
Static LIB files are not built. The LIB files that are built with are
the linker import files associated with the DLL files.
The si-glu sources are used to build the GLU libs. This was done
mainly to get the better tessellator code.
To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
to the project settings. You will also need to edit src/mesa.def to
change all the gl* symbols to mgl*. Because this is easy to do with a
global replace operation in a text editor, no additional mangled
version of mesa.def is maintained or shipped.
If you have a Windows-related build problem or question, it is
probably better to direct it to me (kschultz@users.sourceforge.net),
rather than directly to the other Mesa developers. I will help you
as much as I can. I also monitor the Mesa mailing lists and will
answer questions in this area there as well.
rather than directly to the other Mesa developers. I will help you as
much as I can. I also monitor the Mesa mailing lists and will answer
questions in this area there as well.
Karl Schultz

View File

@@ -1,7 +1,7 @@
Mesa 6.3 release notes
month day, 2004
July 20, 2005
PLEASE READ!!!!
@@ -27,6 +27,10 @@ GL_OES_read_format - allows one to query the fastest glReadPixels format
GL_ARB_pixel_buffer_object - buffer objects for pixel read/write functions.
GL_EXT_framebuffer_object - allows render-to-texture and provides a
window-system indepedent Pbuffer facility.
The Mesa CVS tree contains a couple tests of this extension.
DirectFB driver, contributed by Claudio Ciccani. See docs/README.directfb
for details.
@@ -60,11 +64,25 @@ contexts so they can't be deleted until they're unbound in _all_ contexts.
GL_EXT_framebuffer_object changes
---------------------------------
Implementing this extension involved changing a lot of code (for the better).
The gl_framebuffer object now a collection of gl_renderbuffer objects.
Renderbuffers may store colors, stencil indices, or depth values. The
gl_framebuffer and gl_renderbuffer types are object-oriented in design.
All the old RGB, color index, stencil and depth-related span functions for
reading/writing pixels from/to buffers has changed. Now, all pixels are
read/written through a set of common renderbuffer functions (methods).
Most device drivers have been updated for these changes, but some haven't.
To Do before release
--------------------
Fix dinoshade bug
To Do (someday) items
---------------------
Switch to freeglut
Increase MAX_DRAWBUFFERS
driver hooks for BeginQuery/EndQuery
@@ -74,7 +92,7 @@ To Do before release
Miscellaneous
-------------
The main/get.c file is now generated with a Python script.
The main/get.c file is now generated with a Python script (get_gen.py).
@@ -94,4 +112,4 @@ D3D needs updating
----------------------------------------------------------------------
$Id: RELNOTES-6.3,v 3.8 2005/01/20 04:03:37 brianp Exp $
$Id: RELNOTES-6.3,v 3.13 2005/07/21 15:57:29 brianp Exp $

49
docs/RELNOTES-6.3.1 Normal file
View File

@@ -0,0 +1,49 @@
Mesa 6.3.1 release notes
July XX, 2005
PLEASE READ!!!!
Introduction
------------
Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 6.3) designate new developmental releases.
Even numbered versions (such as 6.2) designate stable releases.
DRI drivers
-----------
This release includes the DRI drivers and GLX code for hardware rendering.
Bug fixes
---------
Bugs fixed in 6.3.1 are listed in the VERSIONS file.
Driver Status
---------------------- ---------------------
XMesa (Xlib) implements OpenGL 1.5
OSMesa (off-screen) implements OpenGL 1.5
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
SVGA implements OpenGL 1.3
Wind River UGL implements OpenGL 1.3
Windows/Win32 implements OpenGL 1.5
DJGPP implements OpenGL 1.5
GGI implements OpenGL 1.3
BeOS implements OpenGL 1.5
Allegro needs updating
D3D needs updating
----------------------------------------------------------------------
$Id: RELNOTES-6.3.1,v 3.1 2005/07/21 18:45:54 brianp Exp $

37
docs/RELNOTES-6.3.2 Normal file
View File

@@ -0,0 +1,37 @@
Mesa 6.3.2 Release Notes
August 19, 2005
Introduction
------------
Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 6.3) designate new developmental releases.
Even numbered versions (such as 6.2) designate stable releases.
6.3.2 is primarily a bug-fix release. See the VERSIONS file for details.
Driver Status
---------------------- ----------------------
DRI drivers varies with the driver
XMesa (Xlib) implements OpenGL 1.5
OSMesa (off-screen) implements OpenGL 1.5
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
SVGA implements OpenGL 1.3
Wind River UGL implements OpenGL 1.3
Windows/Win32 implements OpenGL 1.5
DJGPP implements OpenGL 1.5
GGI implements OpenGL 1.3
BeOS implements OpenGL 1.5
Allegro needs updating
D3D needs updating
----------------------------------------------------------------------
$Id: RELNOTES-6.3.2,v 3.2 2005/08/19 16:57:50 brianp Exp $

50
docs/RELNOTES-6.4 Normal file
View File

@@ -0,0 +1,50 @@
Mesa 6.4 Release Notes
October 24, 2005
Introduction
------------
Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 6.3) designate new developmental releases.
Even numbered versions (such as 6.4) designate stable releases.
6.4 is a bug-fix release. See the VERSIONS file for details.
GLUT tarball
------------
Starting with 6.4, the GLUT library sources are distributed in a separate
tarball. This was done at the request of Linux distro vendors who prefer
to use freeglut.
Driver Status
---------------------- ----------------------
DRI drivers varies with the driver
XMesa (Xlib) implements OpenGL 1.5
OSMesa (off-screen) implements OpenGL 1.5
Windows/Win32 implements OpenGL 1.5
Glide (3dfx Voodoo1/2) requires updates
SVGA requires updates
DJGPP requires updates
GGI requires updates
BeOS requires updates
Allegro requires updates
D3D requires updates
The drivers which require updates mostly need to be updated to work
with the new gl_renderbuffer / gl_framebuffer infrastructure introduced
in Mesa 6.3.
----------------------------------------------------------------------
$Id: RELNOTES-6.4,v 3.1 2005/10/24 23:33:27 brianp Exp $

74
docs/RELNOTES-6.5 Normal file
View File

@@ -0,0 +1,74 @@
Mesa 6.5 Release Notes
month, day, 2005
Introduction
------------
Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 6.5) designate new developmental releases.
Even numbered versions (such as 6.4) designate stable releases.
New Features
------------
GL_EXT_timer_query - used to get elapsed time information from the renderer.
Driver Interface Changes
------------------------
Stencil: The Driver.StencilOp/Func/Mask() functions have been replaced by
the two-sided versions: Driver.Stencil*Separate().
To Do
-----
Fix linux-glide target/driver.
Fix lambda calculation for frag progs.
Removed Extensions
------------------
The following extensions have been removed:
GL_HP_occlusion_test - this is superceded by GL_ARB_occlusion_query.
To Do (someday) items
---------------------
Switch to freeglut
Increase MAX_DRAWBUFFERS
Driver Status
---------------------- ----------------------
DRI drivers varies with the driver
XMesa (Xlib) implements OpenGL 1.5
OSMesa (off-screen) implements OpenGL 1.5
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
SVGA implements OpenGL 1.3
Wind River UGL implements OpenGL 1.3
Windows/Win32 implements OpenGL 1.5
DJGPP implements OpenGL 1.5
GGI implements OpenGL 1.3
BeOS implements OpenGL 1.5
Allegro needs updating
D3D needs updating
----------------------------------------------------------------------
$Id: RELNOTES-6.5,v 3.1 2005/09/14 14:34:54 brianp Exp $

View File

@@ -1308,24 +1308,120 @@ Mesa Version History
- glReadPixels from a clipped front color buffer didn't always work
- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
- Attempting queries/accesses of VBO 0 weren't detected as errors
- paletted textures failed if the palette had fewer that 256 entries
- paletted textures failed if the palette had fewer than 256 entries
Changes:
- fixed a bunch of compiler warnings found with gcc 3.4
- bug reports should to go bugzilla.freedesktop.org
6.3 Month day, 2004
6.3 July 20, 2005
New:
- GL_EXT_framebuffer_object extension
- GL_ARB_draw_buffers extension
- GL_ARB_pixel_buffer_object extension
- GL_OES_read_format extension (Ian Romanick)
- DirectFB driver (Claudio Ciccani)
- x86_64 vertex transformation code (Mikko T.)
- Updated GL/glext.h to version 29
Changes:
- added -stereo option for glxgears demo (Jacek Rosik)
- updated the PBuffer demo code in xdemos/ directory
- glDeleteTextures/Programs/Buffers() now makes the object ID
available for immediate re-use
- assorted 64-bit clean-ups fixes (x86_64 and Win64)
- lots of internal changes for GL_EXT_framebuffer_object
Bug fixes:
- some functions didn't support PBO functionality
- glGetTexImage didn't convert color index images to RGBA as required
- fragment program texcoords were sometimes wrong for points and lines
- fixed problem with negative dot product in arbfplight, fplight demos
- fixed bug in perspective correction of antialiased, textured lines
- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
- fixed a couple per-pixel fog bugs (Soju Matsumoto)
- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
- fixed float parsing bug in ARB frag/vert programs (bug 2520)
- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
- glXChooseFBConfig() crashed if attribList pointer was NULL
- program state.light[n].spot.direction.w was wrong value (bug 3083)
- fragment program fog option required glEnable(GL_FOG) - wrong.
- glColorTable() could produce a Mesa implementation error (bug 3135)
- RasterPos could get corrupted by color index rendering path
- Removed bad XTranslateCoordinates call when rendering to Pixmaps
- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
- fixed a few Darwin compilation problems
6.3.1
This was an intermediate release for X.org which wasn't otherwise released.
6.3.2 August 19, 2005
New:
- The distribution now includes the DRI drivers and GLX code
Changes:
- Made the DRI "new" driver interface standard, remove old code
Bug fixes:
- GL_ARB_vertex/fragment_shader were mistakenly listed in the
extensions string
- negative relative addressing in vertex programs was broken
- update/fix SPARC assembly code for vertex transformation
- fixed memory leak when freeing GLX drawables/renderbuffers
- fixed display list memory leak
- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
- wglGetProcAddress() didn't handle wgl-functions
- fixed glxext.h cross-compile issue (Colin Harrison)
- assorted DRI driver fixes
6.4 October 24, 2005
New:
- Added a fast XOR line drawing function in Xlib driver
- Added support for GL_ARB_texture_mirrored_repeat to savage
driver (supported only on Savage4 hardware).
Changes:
- Mesa now packaged in three parts: Library, Demos and GLUT
Bug fixes:
- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
- Some files were present multiple times in the 6.3.2 tarballs
- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
- glxgears_fbconfig demo didn't work (bug 4237)
- fixed bug when bilinear sampling 2d textures with borders
- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
- fixed a few problems with proxy color tables (bug 4270)
- fixed precision problem in Z clearing (bug 4395)
- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
- fixed potential segfault caused by reading pixels outside
of renderbuffer bounds
- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
- fixed memory corruption bug involving software alpha buffers
- glReadPixels clipped by window bounds was sometimes broken
- glDraw/CopyPixels of stencil data ignored the stencil write mask
- glReadPixels from a texture bound to a framebuffer object didn't work
- glIsRender/FramebufferEXT weren't totally correct
- fixed a number of point size attenuation/fade bugs
- fixed glFogCoord bug 4729
- GLX encoding for transpose matrix functions was broken
- fixed broken fragment program KIL and SWZ instructions
- fragment programs that wrote result.depth.z didn't work
6.5 month, day, 2005
New:
- GL_EXT_packed_depth_stencil extension
- GL_EXT_timer_query extension
- reflect demo improved to support multiple windows
- singlebuffer demo (shows no/little-flicker single-buffered rendering)
- r200: enable GL_ARB_texture_env_crossbar, separate the texture
sampling unit bits from the texture env combine enable bits
- r200: add support for GL_ATI_fragment_shader
- added fast XOR-mode line drawing optimization
- radeon: add support for all 3 tmus, GL_ARB_texture_cube_map
and GL_EXT_fog_coord
- MESA_GLX_ALPHA_BITS env var for xlib driver
Changes:
- removed GL_HP_occlusion_test (use GL_ARB_occlusion_query instead)
- removed GL_SGIX/SGIS_pixel_texture extensions
Bug fixes:

View File

@@ -1,15 +1,27 @@
<HTML>
<title>Banner</title>
<body text="#ffffff" bgcolor="#aa4444">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Banner</title>
</head>
<body bgcolor="#000000" text="#ffffff">
<center>
<p>
<font size="5">The Mesa 3D Graphics Library</font>
</p>
<table style="width: 95%; text-align: left;" border="0" cellpadding="2"
cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;">
<p><img src="gears.png"> </p>
</td>
<td style="text-align: center;"><font face="sans-serif" size="5">The
Mesa 3D Graphics Library</font></td>
<td style="vertical-align: top; text-align: right;">
<p><img src="gears.png"> </p>
</td>
</tr>
</tbody>
</table>
<p><font face="sans-serif" size="5"><br>
</font></p>
</center>
</body>
</html>
</html>

View File

@@ -4,20 +4,18 @@
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
<body bgcolor="#119955">
<!--Override a few values from the style sheet: -->
<style>
<!--
body {
background-color: #119955;
color: white;
background-color: #cccccc;
color: black;
}
a:link {
color: #fff;
color: #000;
}
a:visited {
color: #ccc;
color: #000;
}
-->
</style>
@@ -39,7 +37,6 @@ a:visited {
<b>Download / Install</b>
<ul>
<li><a href="http://www.sourceforge.net/projects/mesa3d" target="_parent">Stable Release (6.2.1)</a>
<li><a href="download.html" target="MainFrame">Downloading/Unpacking</a>
<li><a href="install.html" target="MainFrame">Compilation/Installation</a>
<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
@@ -82,7 +79,8 @@ a:visited {
<b>Links</b>
<ul>
<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
<li><a href="http://dri.sourceforge.net" target="_parent">DRI website</a>
<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
<li><a href="games.html" target="MainFrame">Games and Entertainment</a>
<li><a href="libraries.html" target="MainFrame">Libraries and Toolkits</a>
<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
@@ -91,9 +89,13 @@ a:visited {
<li><a href="demos.html" target="MainFrame">Demos / other</a>
</ul>
<b>Hosted by:</b>
<br>
<blockquote>
<A HREF="http://sourceforge.net"
target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
</blockquote>
</body>
</html>
</html>

View File

@@ -67,9 +67,11 @@ Here are the basic instructions for Unix systems:
Mesa developers working with the Mesa CVS repository need to first
have an account on <a href="http://www.freedesktop.org" target="_parent">
freedesktop.org</a>.
You can request an account from either
<a href="mailto:dstone@trinity.unimelb.edu.au">Daniel Stone</a> or
<a href="mailto:eta@lclark.edu">Eric Anholt</a>.
To get an account, please ask Brian or the other Mesa developers for
permission.
Then, if there are no objections, follow this
<a href="http://www.freedesktop.org/wiki/AccountRequests" target="_parent">
procedure</a>.
</p>
<p>

View File

@@ -6,101 +6,129 @@
<BODY>
<H1>Downloading / Unpacking</H1>
<H1>Downloading</H1>
<p>
Mesa can be downloaded from the
<a href="http://www.sourceforge.net/projects/mesa3d" target="_parent">
SourceForge download area</A>.
Last development release: <b>6.3.2</b>
</p>
<p>
Since version 2.3, Mesa is distributed in two pieces: main library code
and demos. If you're upgrading from a previous version of Mesa or you're not
interested in the demos you can just download the core Mesa archive file.
Last stable release: <b>6.2.1</b>
</p>
<p>
Mesa is available in at least three archive formats:
Primary download site:
<a href="http://sourceforge.net/project/showfiles.php?group_id=3"
target="_parent">SourceForge</a>
</p>
<p>
Mesa is distributed in several parts:
</p>
<ul>
<li><b>MesaLib-x.y.z</b> - the main Mesa library source code, drivers
and documentation.
</li>
<li><b>MesaDemos-x.y.z</b> - OpenGL demonstration and test programs.
Most of the programs require GLUT (either the
<a href="http://www.opengl.org/resources/libraries/glut.html"
target="_parent">original GLUT by Mark Kilgard</a> or
<a href="http://freeglut.sourceforge.net" target="_parent">freeglut</a> or
<a href="http://freeglut.sourceforge.net" target="_parent">OpenGLUT</a>).
</li>
<li><b>MesaGLUT-x.y.z</b> - Mark Kilgard's GLUT, easily compiled and used
with Mesa. Plus, other implementation of GLUT for DOS, OS/2, BeOS, etc.
</li>
</ul>
<p>
If you're not interested in running the demos, you'll only need the first
package.
</p>
<p>
The packages are available in .tar.gz, .tar.bz2 and .zip formats.
Other organizations might offer additional package formats.
</p>
<H1>Unpacking</H1>
<p>
All the packages should be in the same directory prior to unpacking.
</p>
<ul>
<li>To unpack .tar.gz files:
<pre>
1. GNU zip/tar
Download MesaLib-X.Y.tar.gz and optionally MesaDemos-X.Y.tar.gz
Unpack with:
gzcat MesaLib-X.Y.tar.gz | tar xf -
gzcat MesaDemos-X.Y.tar.gz | tar xf -
or
gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
or
tar zxf MesaLib-X.Y.tar.gz
tar zxf MesaDemos-X.Y.tar.gz
If you don't have gzcat try zcat instead.
2. Unix compressed/tar
Download MesaLib-X.Y.tar.Z and optionally MesaDemos-X.Y.tar.Z
Unpack with:
zcat MesaLib-X.Y.tar.Z | tar xf -
zcat MesaDemos-X.Y.tar.Z | tar xf -
3. ZIP format
Download MesaLib-X.Y.zip and optionally MesaDemos-X.Y.zip
Unpack with:
unzip MesaLib-X.Y.zip
unzip MesaDemos-X.Y.zip
tar zxf MesaLib-X.Y.tar.gz
tar zxf MesaDemos-X.Y.tar.gz
tar zxf MesaGLUT-X.Y.tar.gz
</pre>
or
<pre>
gzcat MesaLib-X.Y.tar.gz | tar xf -
gzcat MesaDemos-X.Y.tar.gz | tar xf -
gzcat MesaGLUT-X.Y.tar.gz | tar xf -
</pre>
or
<pre>
gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaDemos-X.Y.tar
gunzip MesaGLUT-X.Y.tar.gz ; tar xf MesaGLUT-X.Y.tar
</pre>
<li>To unpack .tar.bz2 files:
<pre>
bunzip2 -c MesaLib-X.Y.tar.gz | tar xf -
bunzip2 -c MesaDemos-X.Y.tar.gz | tar xf -
bunzip2 -c MesaGLUT-X.Y.tar.gz | tar xf -
</pre>
<li>To unpack .zip files:
<pre>
unzip MesaLib-X.Y.zip
unzip MesaDemos-X.Y.zip
unzip MesaGLUT-X.Y.zip
</pre>
</ul>
<h1>Contents</h1>
<p>
After unpacking you'll have these directories (and more):
After unpacking you'll have these directories:
</p>
<pre>
Makefile.X11 - top-level Makefile for X11-based systems
Make-config - system configurations used by the Makefile.X11
Makefile - top-level Makefile for most systems
configs/ - makefile parameter files for various systems
include/ - GL header (include) files
bin/ - shell scripts for making shared libraries, etc
lib/ - final client libraries, created during compilation
docs/ - documentation
src/ - source code for libraries
src/mesa - sources for the main Mesa library and device drivers
src/glu - libGLU source code
src/glw - Xt/Motif/OpenGL widget code
</pre>
If you downloaded and unpacked the MesaDemos.X.Y package:
and if you downloaded and unpacked the MesaDemos.X.Y archive:
src/glut - GLUT source code
progs/ - OpenGL programs
<pre>
progs/demos - original Mesa demos
progs/xdemos - GLX OpenGL/Mesa demos
progs/redbook - examples from the OpenGL Programming Guide
progs/samples - examples from SGI
progs/images/ - image files
</pre>
If you downloaded and unpacked the MesaGLUT.X.Y package:
<pre>
src/glut - GLUT library source code
</pre>
<p>
Proceed to <a href="install.html">compilation and installation
Proceed to the <a href="install.html">compilation and installation
instructions</a>.
</p>
<H1>GLUT</H1>
<p>
Mesa 2.5 and later includes Mark Kilgard's GLUT library (GL Utility Toolkit).
GLUT is built automatically on systems which support it.
</p>
<p>
The GLUT tests, demos, examples, etc are not included, just the main library.
To obtain the latest complete release of GLUT please visit the
<a href="http://www.opengl.org/resources/libraries/glut.html"
target ="_parent">GLUT page</a> on www.opengl.org.
</p>
</BODY>
</HTML>

View File

@@ -16,7 +16,9 @@ Mesa supports the following environment variables:
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
<li>MESA_DEBUG - if set, error messages are printed to stderr
<li>MESA_DEBUG - if set, error messages are printed to stderr.
If the value of MESA_DEBUG is "FP" floating point arithmetic errors will
generate exceptions.
<li>MESA_NO_DITHER - if set, disables dithering, overriding glEnable(GL_DITHER)
</ul>
@@ -35,6 +37,7 @@ software driver:
"window" to render into a window, or "disable" to disable the Glide driver.
<li>MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel.
<li>MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer.
<li>MESA_GLX_ALPHA_BITS - specifies default number of bits for alpha channel.
</ul>

View File

@@ -9,7 +9,7 @@
<center>
<h1>Mesa Frequently Asked Questions</h1>
Last updated: 17 November 2004
Last updated: 21 October 2004
</center>
<br>
@@ -39,14 +39,14 @@ See the </a><a href="http://www.opengl.org/">OpenGL website</a> for more
information.
</p>
<p>
Mesa 5.x supports the OpenGL 1.4 specification.
Mesa 6.x supports the OpenGL 1.5 specification.
</p>
<h2>1.2 Does Mesa support/use graphics hardware?</h2>
<p>
Yes. Specifically, Mesa serves as the OpenGL core for the open-source
XFree86/DRI OpenGL drivers. See the <a href="http://dri.sf.net/">DRI
Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI
drivers for XFree86/X.org. See the <a href="http://dri.sf.net/">DRI
website</a> for more information.
</p>
<p>
@@ -62,7 +62,8 @@ operating systems today.
Still, Mesa serves at least these purposes:
</p>
<ul>
<li>Mesa is used as the core of the open-source XFree86/DRI hardware drivers.
<li>Mesa is used as the core of the open-source XFree86/X.org DRI
hardware drivers.
</li>
<li>Mesa is quite portable and allows OpenGL to be used on systems
that have no other OpenGL solution.
@@ -86,8 +87,8 @@ Still, Mesa serves at least these purposes:
<h2>1.4 What's the difference between"Stand-Alone" Mesa and the DRI drivers?</h2>
<p>
<em>Stand-alone Mesa</em> is the original incarnation of Mesa.
On systems running the X Window System, it does all its rendering through
the Xlib API.
On systems running the X Window System it does all its rendering through
the Xlib API:
<ul>
<li>The GLX API is supported, but it's really just an emulation of the
real thing.
@@ -116,21 +117,10 @@ within the DRI (Direct Rendering Infrastructure):
<h2>1.5 How do I upgrade my DRI installation to use a new Mesa release?</h2>
<p>
You don't! A copy of the Mesa source code lives inside the XFree86/DRI source
tree and gets compiled into the individual DRI driver modules.
If you try to install Mesa over an XFree86/DRI installation, you'll lose
hardware rendering (because stand-alone Mesa's libGL.so is different than
the XFree86 libGL.so).
</p>
<p>
The DRI developers will incorporate the latest release of Mesa into the
DRI drivers when the time is right.
</p>
<p>
To upgrade, either look for a new release of <a href="http://www.xfree86.org"
target="_parent">XFree86</a> or visit the
<a href="http://dri.sf.net" target="_parent">DRI website</a> to see
if there's newer drivers.
This wasn't easy in the past.
Now, the DRI drivers are included in the Mesa tree and can be compiled
separately from the X server.
Just follow the Mesa <a href="install.html">compilation instructions</a>.
</p>
@@ -201,7 +191,7 @@ Mesa no longer supports GNU autoconf/automake. Why?
</ul>
<p>
Now, Mesa again uses a conventional Makefile system (as it did originally).
Now Mesa again uses a conventional Makefile system (as it did originally).
Basically, each Makefile in the tree includes one of the configuration
files from the config/ directory.
The config files specify all the variables for a variety of popular systems.
@@ -219,9 +209,9 @@ Mesa's not the solution.
<h2><a name="part2">2.4 Where is the GLUT library?</a></h2>
<p>
<a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaDemos-x.y.z.tar.gz file.
If you don't already have GLUT installed, you should grab the MesaDemos
package and unpack it before compiling Mesa.
<a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaGLUT-x.y.z.tar.gz file.
If you don't already have GLUT installed, you should grab the MesaGLUT
package and compile it with the rest of Mesa.
</a></p>
@@ -250,7 +240,7 @@ Mesa version number.
version number.
</li></ul>
<p>
After installing XFree86 and the DRI drivers, some of these files
After installing XFree86/X.org and the DRI drivers, some of these files
may be symlinks into the /usr/X11R6/ tree.
</p>
<p>

BIN
docs/gears.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -24,7 +24,7 @@ We're no longer developing the original Mesa GLU library.
</p>
<p>
The new SI GLU library code is included in the Mesa package.
The SI GLU library code is included in the Mesa distribution.
You don't have to download it separately.
</p>

View File

@@ -1,20 +1,29 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<title>Mesa Home Page</title></head>
<head>
<title>Mesa Home Page</title>
</head>
<frameset rows="80,*" border="0" frameborder="yes">
<frameset rows="50,100% " border="1" framespacing="1" frameborder="yes">
<frame src="banner.html" name="BannerFrame" scrolling="no" marginwidth="1" marginheight="1" resize="">
<frameset cols="28%,72% " border="1" framespacing="1" frameborder="yes">
<frame src="contents.html" name="ContentsFrame" marginwidth="2" marginheight="1" resize="">
<frame src="news.html" name="MainFrame" marginwidth="3" marginheight="1" resize="">
</frameset>
</frameset>
<frame src="banner.html" name="BannerFrame"
scrolling="no" marginwidth="1" marginheight="1">
<frameset cols="28%,72% " border="1" frameborder="yes">
<frame src="contents.html" name="ContentsFrame"
marginwidth="2" marginheight="1" noresize="noresize">
<frame src="news.html" name="MainFrame"
marginwidth="3" marginheight="1" noresize="noresize">
</frameset>
<noframes>
<body>
</body>
<p>Sorry, this site requires frame support</p>
</noframes>
</html>
</frameset>
</html>

View File

@@ -21,53 +21,77 @@
<a name="unix-x11">
<H2>1. Unix/X11 Compilation and Installation</H1>
<p>
Mesa uses a rather conventional Makefile system.
A GNU autoconf/automake system used to be included, but was discarded
in Mesa 5.1 because:
</p>
<ul>
<li>It seldom worked on IRIX, Solaris, AIX, etc.
<li>It was very compilicated
<li>Nobody maintained it
<li>libtool was just too weird
</ul>
<p>
If someone strongly feels that Mesa should have a autoconf/automake
system and wants to contribute one and maintain it, we'll consider
adding it again.
</p>
<p>
In Mesa 6.1 we modified the conventional Makefile system.
Instead of specifying all the various system configurations in the
Make-config file, there's a directory named <code>configs/</code> which
has an individual file for each configuration.
One of the configs gets copied to <code>configs/current</code>, which
is then included by all Makefiles.
</p>
<h3>1.1 Compilation</h3>
<p>
Note: if you've obtained Mesa through CVS, do this first:
Mesa may be compiled in several different ways:
</p>
<pre>
cd Mesa
chmod a+x bin/mklib
</pre>
<ul>
<li><b><em>Stand-alone/Xlib mode</em></b> - Mesa is compiled as
a software renderer using Xlib to do all rendering.
libGL.so is a self-contained rendering library.
<p>
Just type <b>make</b> in the top-level directory.
To compile stand-alone Mesa type <b>make</b> in the top-level directory.
You'll see a list of supported system configurations.
Choose one from the list (such as linux-x86), and type:
</p>
<pre>
make linux-x86
</pre>
<p>This will produce libGL.so and several other libraries</p>
</li>
<li><b><em>DRI/accelerated</em></b> - The DRI hardware drivers (for ATI,
Intel, Matrox, etc) are built.
libGL.so implements the GLX extension and dynamically loads the DRI drivers.
<p>
If you want to rebuild for a different configuration run
To build the DRI drivers you'll first need to have the DRM (Direct
Rendering Manager) kernel drivers and header files.
They're available from the <a href="http://dri.sf.net/" target="_parent">DRI</a> project.
</p>
<p>
You can get them from CVS by doing:
<pre>
cvs -d:pserver:anonymous@pds.freedesktop.org:/cvs/dri login
(hit enter when prompted for a password)
cvs -z3 -d:pserver:anonymous@pdx.freedesktop.org:/cvs/dri co drm
</pre>
<p>
Make note of the directory in which the drm files are placed.
</p>
<p>
See the <a href="http://dri.freedesktop.org/wiki/Building" target="_parent">
DRI Building Instructions</a> for the steps to build the DRM modules.
</p>
<p>
Next, in the <code>Mesa-x.y.z/configs/default</code> file, set the
<code>DRM_SOURCE_PATH</code> variable to indicate where the DRM files
are located.
</p>
<p>
Now build Mesa and the DRI drivers by running
</p>
<pre>
make linux-dri
</pre>
<p>
There are also <code>linux-dri-x86</code>, <code>linux-dri-x86-64</code>,
and <code>linux-ppc</code> configurations, optimized for those architectures.
</p>
<p>
Finally, you'll need a DRI-enabled X server from
<a href="http://freedesktop.org/wiki/Software_2fXserver" target="_parent">
X.org</a> or <a href="http://www.xfree86.org" target="_parent">XFree86</a>.
Visit those projects' home pages for more information.
</p>
</li>
</ul>
<p>
Later, if you want to rebuild for a different configuration run
<code>make realclean</code> before rebuilding.
</p>
@@ -75,7 +99,8 @@ If you want to rebuild for a different configuration run
<h3>1.2 The libraries</h3>
<p>
When compilation has finished, look in the top-level <b>lib/</b> directory.
When compilation has finished, look in the top-level <code>lib/</code>
directory.
You'll see a set of library files similar to this:
</p>
<pre>
@@ -108,6 +133,23 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSM
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
</p>
<p>
If you built the DRI hardware drivers, you'll also see the DRI drivers:
</p>
<pre>
-rwxr-xr-x 1 brian users 11320803 Jul 21 12:11 mach64_dri.so
-rwxr-xr-x 1 brian users 11418014 Jul 21 12:12 mga_dri.so
-rwxr-xr-x 1 brian users 11064426 Jul 21 12:12 r128_dri.so
-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
-rwxr-xr-x 1 brian users 11232304 Jul 21 12:13 s3v_dri.so
-rwxr-xr-x 1 brian users 11062970 Jul 21 12:13 savage_dri.so
-rwxr-xr-x 1 brian users 11214212 Jul 21 12:13 sis_dri.so
-rwxr-xr-x 1 brian users 11368736 Jul 21 12:13 tdfx_dri.so
-rwxr-xr-x 1 brian users 10598868 Jul 21 12:13 trident_dri.so
-rwxr-xr-x 1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
</pre>
<h3>1.3 Running the demos</h3>

View File

@@ -82,7 +82,7 @@ my work hours at the Space Science and Engineering Center at the University
of Wisconsin in Madison. My supervisor, Bill Hibbard, lets me do this because
Mesa is now being using for the <a href="http://www.ssec.wisc.edu/%7Ebillh/vis.html" target="_parent">Vis5D</a> project.
</p><p>
October 1996: Mesa 2.0 is released. It implementes the OpenGL 1.1 specification.
October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1 specification.
</p>
<p>
@@ -134,9 +134,9 @@ GL_ARB_fragment_program extensions.
<p>
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for XFree86
within the
<A href="http://dri.sourceforge.net/" target="_parent">DRI project</A>.
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for
the XFree86 X.org X servers within the
<A href="http://dri.freedesktop.org/" target="_parent">DRI project</A>.
I continue to enhance Mesa with new extensions and features.
</p>
@@ -146,7 +146,8 @@ I continue to enhance Mesa with new extensions and features.
<p>
This is a summary of the major versions of Mesa. Note that Mesa's major
version number tracks OpenGL's minor version number.
version number tracks OpenGL's minor version number (+1).
Work is underway to implement the OpenGL 2.0 specification.
</p>
@@ -162,10 +163,11 @@ extensions incorporated as standard features:
</ul>
<p>
Also note that several OpenGL tokens were renamed in OpenGL 1.5
for the sake of consistency. The old names will still be valid.
for the sake of consistency.
The old tokens are still available.
</p>
<pre>
New Name Old Name
New Token Old Token
------------------------------------------------------------
GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
GL_FOG_COORD GL_FOG_COORDINATE

View File

@@ -13,17 +13,18 @@ The Mesa distribution consists of several components. Different copyrights
and licenses apply to different components. For example, GLUT is copyrighted
by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
device drivers are copyrighted by their authors. See below for a list of
Mesa's components and the copyright/license for each.
Mesa's main components and the license for each.
</p>
<p>
The core Mesa library is licensed according to the terms of the XFree86
copyright (an MIT-style license). This allows integration with the
XFree86/DRI project. Unless otherwise stated, the Mesa source code and
documentation is licensed as follows:
The core Mesa library is licensed according to the terms of the MIT license.
This allows integration with the XFree86, Xorg and DRI projects.
</p>
<p>
The default Mesa license is as follows:
</p>
<pre>
Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
Copyright (C) 1999-2005 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"),
@@ -47,70 +48,38 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
<H1>Attention, Contributors</H1>
<p>
When contributing to the Mesa project you must agree to relinquish your
work to the holder of the copyright for the particular component you're
contributing to. That is, you can't put your own copyright on the code,
unless it's a modular piece that can be omitted from Mesa (like a new
device driver). If for example, you contribute a bug fix to Mesa's
texture mapping code, your code will become a part of the body of work
which is copyrighted by Brian Paul and licensed by the above terms.
When contributing to the Mesa project you must agree to the licensing terms
of the component to which you're contributing.
The following section lists the primary components of the Mesa distribution
and their respective licenses.
</p>
<H1>Mesa Component Licenses</H1>
<pre>
Mesa Component Licenses:
Component Files Primary Author License
Component Location Primary Author License
----------------------------------------------------------------------------
core Mesa code src/*.[ch] Brian Paul Mesa
include/GL/gl.h
Main Mesa code src/mesa/ Brian Paul Mesa (MIT)
GLX driver src/X/* Brian Paul Mesa
include/GL/glx.h
include/GL/xmesa.h
Device drivers src/mesa/drivers/* See drivers See drivers
OS/Mesa driver src/OSmesa/* Brian Paul Mesa
include/GL/osmesa.h
Ext headers include/GL/glext.h SGI SGI Free B
include/GL/glxext.h
3Dfx driver src/FX/* David Bucciarelli Mesa
include/GL/fxmesa.h
GLUT src/glut/ Mark Kilgard Mark's copyright
BeOS R4 driver src/BeOS/* Brian Paul Mesa
Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL
MGL driver src/MGL/* SciTech, Inc SciTech copyright
include/GL/mglmesa.h
SGI GLU library src/glu/sgi/ SGI SGI Free B
Windows driver src/Windows/* Li Wei copyright by Li Wei
include/GL/wmesa.h
demo programs progs/demos/ various see source files
SVGA driver src/SVGA/* Brian Paul GNU-LGPL
include/GL/svgamesa.h
X demos progs/xdemos/ Brian Paul see source files
DOS driver src/DOS/* Charlie Wallace GNU-LGPL
include/GL/dosmesa.h
SGI demos progs/samples/ SGI SGI copyright
GGI driver src/GGI/* Uwe Maurer GNU-LGPL
include/GL/ggimesa.h
S3 driver src/S3/* S3, Inc. S3 copyright
GLUT src-glut/* Mark Kilgard Mark's copyright
include/GL/*glut*.h
GLU library src-glu/* Brian Paul GNU-LGPL
SI GLU library si-glu/* SGI SGI Free B
include/GL/glu.h
Ext registry include/GL/glext.h SGI SGI Free B
include/GL/glxext.h
demo programs demos/* various see source files
X demos xdemos/* Brian Paul see source files
SGI demos samples/* SGI SGI copyright
RedBook demos book/* SGI SGI copyright
RedBook demos progs/redbook/ SGI SGI copyright
</pre>
</body>

View File

@@ -30,7 +30,8 @@ SourceForge lists page.</a>
with the mailing lists please contact the SourceForge administrators for help.</p>
<p>Archives of the old Mesa mailing list which was hosted by unicamp.br
are available <a href="http://groups.yahoo.com/group/mesa/messages/">here</a>.</p>
are available <a href="http://groups.yahoo.com/group/mesa/messages/"
target="_parent">here</a>.</p>
<p>
Here are some other OpenGL-related forums you might find useful:
@@ -46,7 +47,8 @@ Usenet newsgroups:
</p>
<p>
<a href="http://www.opengl.org/">OpenGL discussion forums</A> at www.opengl.org
<a href="http://www.opengl.org/" target="_parent">OpenGL discussion forums</A>
at www.opengl.org
</p>
</HTML>

View File

@@ -1,20 +1,18 @@
/* Mesa CSS */
body {
background-color: #55bbff;
background-color: #ffffff;
font: 14px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
color: black;
link: #111188;
}
h1 {
background-color: #55bbff;
font: 24px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
font-weight: bold;
color: black;
}
h2 {
background-color: #55bbff;
font: 18px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif, bold;
font-weight: bold;
color: black;

View File

@@ -32,7 +32,7 @@
- VRML viewer
</li><li><a href="http://aig.cs.man.ac.uk/systems/Maverik/" target="_parent">Maverik</a>
- VR graphics and interaction system
</li><li><a href="http://www.swissquake.ch/chumb.alum-soft" target="_parent">MD2 Viewer</a>
</li><li><a href="http://www.swissquake.ch/chumbalum-soft/md2v" target="_parent">MD2 Viewer</a>
- View .MD2 files
</li><li><a href="http://www.megacads.dlr.de/" target="_parent">MegaCads</a>
- Multiblock-Elliptic-Grid-Generation-And-CAD-System
@@ -62,8 +62,6 @@
</li><li><a href="http://mesa3d.sourceforge.net/notfound.html">VRweb</a> - VRML browser
</li><li><a href="http://www.csv.ica.uni-stuttgart.de/vrml/dune/" target="_parent">white_dune</a>
- graphical VRML97 Editor and animation tool
</li><li><a href="http://www.wings3d.org/" target="_parent">Wings 3D</a> - static 3D modeller
with VRML export. Uses SDL library.
</li></ul>

View File

@@ -2,13 +2,155 @@
<TITLE>Mesa News</TITLE>
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
<BODY>
<body bgcolor="#eeeeee">
<H1>News</H1>
<h2>October 24, 2005</h2>
<p>
Mesa 6.4 has been released. This is a stable, bug-fix release.
</p>
<pre>
New:
- Added a fast XOR line drawing function in Xlib driver
- Added support for GL_ARB_texture_mirrored_repeat to savage
driver (supported only on Savage4 hardware).
Changes:
- Mesa now packaged in three parts: Library, Demos and GLUT
Bug fixes:
- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
- Some files were present multiple times in the 6.3.2 tarballs
- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
- glxgears_fbconfig demo didn't work (bug 4237)
- fixed bug when bilinear sampling 2d textures with borders
- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
- fixed a few problems with proxy color tables (bug 4270)
- fixed precision problem in Z clearing (bug 4395)
- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
- fixed potential segfault caused by reading pixels outside
of renderbuffer bounds
- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
- fixed memory corruption bug involving software alpha buffers
- glReadPixels clipped by window bounds was sometimes broken
- glDraw/CopyPixels of stencil data ignored the stencil write mask
- glReadPixels from a texture bound to a framebuffer object didn't work
- glIsRender/FramebufferEXT weren't totally correct
- fixed a number of point size attenuation/fade bugs
- fixed glFogCoord bug 4729
- GLX encoding for transpose matrix functions was broken
- fixed broken fragment program KIL and SWZ instructions
</pre>
<p>
The MD5 checksums are:
</p>
<pre>
1cce0c1eb4fd15e9dfe837a1ce0c9812 MesaLib-6.4.tar.gz
85a84e47a3f718f752f306b9e0954ef6 MesaLib-6.4.tar.bz2
b976fea4f3ee06354c53f91b6e3f2ffc MesaLib-6.4.zip
d8734f2c69bcf7ef9f5ae454a85743ba MesaDemos-6.4.tar.gz
1a8c4d4fc699233f5fdb902b8753099e MesaDemos-6.4.tar.bz2
607ab7c7a7de0cc5febbdde2bfa03098 MesaDemos-6.4.zip
3260156f66174322a092be0767962d34 MesaGLUT-6.4.tar.gz
0465d053f83775f44a12dec4050dfd78 MesaGLUT-6.4.tar.bz2
02abfcdcdf72ba938ae00f6e3b70fbe0 MesaGLUT-6.4.zip
</pre>
<h2>August 19, 2005</h2>
<p>
Mesa 6.3.2 has been released.
Note: there was no public release of version 6.3.1.
</p>
<pre>
New:
- The distribution now includes the DRI drivers and GLX code
Changes:
- Made the DRI "new" driver interface standard, remove old code
Bug fixes:
- GL_ARB_vertex/fragment_shader were mistakenly listed in the
extensions string
- negative relative addressing in vertex programs was broken
- update/fix SPARC assembly code for vertex transformation
- fixed memory leak when freeing GLX drawables/renderbuffers
- fixed display list memory leak
- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
- wglGetProcAddress() didn't handle wgl-functions
- fixed glxext.h cross-compile issue (Colin Harrison)
- assorted DRI driver fixes
</pre>
<p>
The MD5 checksums are:
</p>
<pre>
98192e45ed8d69113688f89f90869346 MesaLib-6.3.2.tar.gz
0df27701df0924d17ddf41185efa8ce1 MesaLib-6.3.2.tar.bz2
ccb2423aab77fc7e81ce628734586140 MesaLib-6.3.2.zip
9d0fca0a7d051c34a0b485423fb3e85d MesaDemos-6.3.2.tar.gz
96708868450c188205e42229b5d813c4 MesaDemos-6.3.2.tar.bz2
c5102501e609aa8996d832fafacb8ab9 MesaDemos-6.3.2.zip
</pre>
<h2>July 20, 2005</h2>
<p>
Mesa 6.3 has been released.
This is a development release with new features, changes and bug fixes.
</p>
<pre>
New:
- GL_EXT_framebuffer_object extension
- GL_ARB_draw_buffers extension
- GL_ARB_pixel_buffer_object extension
- GL_OES_read_format extension (Ian Romanick)
- DirectFB driver (Claudio Ciccani)
- x86_64 vertex transformation code (Mikko T.)
Changes:
- added -stereo option for glxgears demo (Jacek Rosik)
- updated the PBuffer demo code in xdemos/ directory
- glDeleteTextures/Programs/Buffers() now makes the object ID
available for immediate re-use
- assorted 64-bit clean-ups fixes (x86_64 and Win64)
- lots of internal changes for GL_EXT_framebuffer_object
Bug fixes:
- some functions didn't support PBO functionality
- glGetTexImage didn't convert color index images to RGBA as required
- fragment program texcoords were sometimes wrong for points and lines
- fixed problem with negative dot product in arbfplight, fplight demos
- fixed bug in perspective correction of antialiased, textured lines
- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
- fixed a couple per-pixel fog bugs (Soju Matsumoto)
- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
- fixed float parsing bug in ARB frag/vert programs (bug 2520)
- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
- glXChooseFBConfig() crashed if attribList pointer was NULL
- program state.light[n].spot.direction.w was wrong value (bug 3083)
- fragment program fog option required glEnable(GL_FOG) - wrong.
- glColorTable() could produce a Mesa implementation error (bug 3135)
- RasterPos could get corrupted by color index rendering path
- Removed bad XTranslateCoordinates call when rendering to Pixmaps
- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
- fixed a few Darwin compilation problems
</pre>
<p>
The MD5 checksums are:
</p>
<pre>
0236f552d37514776945d5a013e5bb7b MesaLib-6.3.tar.gz
60e1a8f78c4a8c7750a1e95753190986 MesaLib-6.3.tar.bz2
ca7c950fbace68c70caa822322db7223 MesaLib-6.3.zip
25ea801645b376c014051804fe4974b2 MesaDemos-6.3.tar.gz
9248e74872ea88c57ec25c900c295057 MesaDemos-6.3.tar.bz2
8537dfa734ef258dcc7272097558d434 MesaDemos-6.3.zip
</pre>
<h2>December 9, 2004</h2>
<p>
Mesa 6.2.1 has been released.
@@ -25,7 +167,7 @@ This is a stable release which just fixes bugs since the 6.2 release.
- glReadPixels from a clipped front color buffer didn't always work
- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
- Attempting queries/accesses of VBO 0 weren't detected as errors
- paletted textures failed if the palette had fewer that 256 entries
- paletted textures failed if the palette had fewer than 256 entries
Changes:
- fixed a bunch of compiler warnings found with gcc 3.4
- bug reports should to go bugzilla.freedesktop.org
@@ -960,6 +1102,6 @@ source code</a>.</p>
<hr>
$Id: news.html,v 3.17 2005/01/20 03:55:10 brianp Exp $
$Id: news.html,v 3.25 2005/10/24 23:33:27 brianp Exp $
</body>
</html>
</html>

View File

@@ -13,6 +13,8 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<UL>
<LI><A HREF="RELNOTES-6.4">RELNOTES-6.4</A>
<LI><A HREF="RELNOTES-6.3.2">RELNOTES-6.3.2</A>
<LI><A HREF="RELNOTES-6.3">RELNOTES-6.3</A>
<LI><A HREF="RELNOTES-6.2.1">RELNOTES-6.2.1</A>
<LI><A HREF="RELNOTES-6.2">RELNOTES-6.2</A>

View File

@@ -14,98 +14,43 @@ supported on those systems. All you need is an ANSI C compiler and the
X development environment to use Mesa.
</p>
<p>Others have contributed drivers
for the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows
<p>
The DRI hardware drivers for the X.org server and XFree86 provide
hardware accelerated rendering for chips from ATI, Intel, Matrox, 3dfx
and others on Linux and FreeBSD.
</p>
<p>
Drivers for other assorted platforms include:
the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows
9x/NT, and Direct3D.
</p>
<p>
The following files describe the details for various platforms.
Be warned, some of these files (and drivers) may be very out of date.
Details about particular drivers follows.
Be warned that some drivers may be out of date and no longer function.
</p>
<UL>
<LI><A HREF="README.X11">README.X11</A> - X Window System / Unix / Linux
<LI><A HREF="README.WIN32">README.WIN32</A> - Microsoft Windows
<LI><A HREF="README.VMS">README.VMS</A> - DEC VMS
<LI><A HREF="README.GGI">README.GGI</A> - GGI
<LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
<LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
<LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
<LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
<LI><A HREF="README.DJ">README.DJ</A> - DJGPP
<LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
<LI><A HREF="README.MINGW32">README.MINGW32</A> - Mingw32
<LI><A HREF="README.NeXT">README.NeXT</A> - NeXT
<LI><A HREF="README.OpenStep">README.OpenStep</A> - OpenStep
<LI><A HREF="README.OS2">README.OS2</A> - OS/2
<LI><A HREF="README.WINDML">README.WINDML</A> - WindML
<LI>Xlib driver for the X Window System <A HREF="README.X11">(README.X11)</A>
<li><a href="http://dri.freedesktop.org/" target="_parent">
DRI hardware drivers</a> for the X window system
<LI>Microsoft Windows <A HREF="README.WIN32">(README.WIN32)</A>
<LI>DEC VMS <A HREF="README.VMS">(README.VMS)</A>
<LI>3dfx/Glide <A HREF="README.3DFX">(README.3DFX)</A>
<LI>GGI <A HREF="README.GGI">(README.GGI)</A>
<LI>Amiga Amiwin <A HREF="README.AMIWIN">(README.AMIWIN)</A>
<LI>BeOS <A HREF="README.BEOS">(README.BEOS)</A>
<LI>Direct3D driver <A HREF="README.D3D">(README.D3D)</A>
<LI>DJGPP <A HREF="README.DJ">(README.DJ)</A>
<LI>LynxOS <A HREF="README.LYNXOS">(README.LYNXOS)</A>
<LI>Mingw32 <A HREF="README.MINGW32">(README.MINGW32)</A>
<LI>NeXT <A HREF="README.NeXT">(README.NeXT)</A>
<LI>OpenStep <A HREF="README.OpenStep">(README.OpenStep)</A>
<LI>OS/2 <A HREF="README.OS2">(README.OS2)</A>
<LI>WindML <A HREF="README.WINDML">(README.WINDML)</A>
<LI><a href="http://utah-glx.sourceforge.net/" target="_parent">Utah GLX drivers</a>
</UL>
<p>
The standard Mesa distribution only supports software-based rendering, with
the exception of the 3Dfx Glide driver.
Information about other hardware support follows.
</p>
<ul>
<li>DRI-based hardware support for 3dfx, Intel, Matrox, ATI with XFree86
<blockquote>
<p>The <a href="http://dri.sourceforge.net/" target="_parent">DRI architecture</a>,
originally developed by Precision Insight, Inc. uses Mesa and
provides hardware acceleration for a number of popular chipsets.<br>
<br>
The DRI is part of XFree86 4.0 and later.
<br><br>
If you download and install XFree86 4.x you do not need to
install Mesa separately. All the important parts of Mesa
will be installed with the rest of XFree86.
</blockquote>
<li>3dfx Voodoo1, Voodoo2, Voodoo Rush, Voodoo Banshee, Voodoo3
<blockquote>
<p>All cards based on these chipsets should work with Linux and
Windows 95 via 3dfx's Glide library.
The Mesa/Glide driver is included with the Mesa distribution.
You'll need to install the Glide header files and runtime library.
</p>
<p>
David Bucciarelli wrote the original 3dfx driver for Mesa.<br>
Daryll Strauss ported Glide to Linux.
</p>
</blockquote>
<li>Matrox G200/G400, nVidia RIVA, ATI Rage Pro, Intel i810 on Linux
<blockquote>
<p>The <a href="http://utah-glx.sourceforge.net/" target="_parent">
Utah GLX project</a>
(no longer active) developed drivers for these chipsets and others.
</blockquote>
<li>Amiga Warp3D
<blockquote>
<p>Amiga systems can support 3D hardware with the Warp3D API.
See <a href="http://www.haage-partner.com/3dworld" target="_parent">here</a>.
</blockquote>
<li>Also see
<blockquote>
<p><a href="http://www.linux3d.org/" target="_parent">www.linux3d.org</a> for
other 3D hardware info for Linux.
</blockquote>
</ul>
<p>
<b><em>Note:</em></b>
If you have NVIDIA hardware in your computer,
you should download and install NVIDIA's OpenGL library. You may
however, want to download Mesa in order to use its GLU and GLUT
libraries, or assorted demo programs.</p>
</body>
</html>
</html>

View File

@@ -13,6 +13,7 @@
The following individuals and groups are to be acknowledged for their
contributions to Mesa over the years.
This list is far from complete and somewhat dated, unfortunately.
<ul>
@@ -32,14 +33,21 @@ substantial piece of work.
Tungsten Graphics, Inc. have supported the ongoing development of Mesa.
<br>
<br>
<li>The <A HREF="http://sourceforge.net/projects/mesa3d"
target="_parent">Mesa</A>
project is hosted by<A HREF="http://sourceforge.net"
target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
<li>The
<A HREF="http://sourceforge.net/projects/mesa3d" target="_parent">Mesa</A>
website is hosted by
<A HREF="http://sourceforge.net" target="_parent">
<IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
<br>
<br>
<li>The Mesa CVS repository is hosted by
<a href="http://freedesktop.org/" target="_parent">freedesktop.org</a>.
<br>
<br>
<li><a href="http://www.altsoftware.com/"
target="_parent">alt.software</a> contributed the Direct3D driver.

View File

@@ -2,7 +2,7 @@
* Mesa 3-D graphics library
* Version: 6.3
*
* Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2005 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"),
@@ -104,7 +104,7 @@
#define APIENTRY GLAPIENTRY
#endif
/* "P" suffix for when function returns a pointer */
/* "P" suffix to be used for a pointer to a function */
#ifndef APIENTRYP
#define APIENTRYP APIENTRY *
#endif
@@ -853,7 +853,7 @@ GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode );
GLAPI GLenum GLAPIENTRY glGetError( void );
GLAPI const GLubyte GLAPIENTRYP glGetString( GLenum name );
GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name );
GLAPI void GLAPIENTRY glFinish( void );
@@ -2213,13 +2213,9 @@ GLAPI void GLAPIENTRY glTracePointerRangeMESA( const GLvoid* first, const GLvoid
typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data);
GLAPI void GLAPIENTRY
glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback,
GLvoid *data);
GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data);
GLAPI void GLAPIENTRY
glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name,
GLfloat *v);
GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v);
#endif /* GL_MESA_program_debug */
@@ -2235,121 +2231,44 @@ typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLen
#endif /* GL_ATI_blend_equation_separate */
/* XXX this is temporary here! */
#ifndef GL_EXT_framebuffer_object
#define GL_EXT_framebuffer_object
GLAPI GLboolean GLAPIENTRY
glIsRenderbufferEXT(GLuint renderbuffer);
#ifndef GL_EXT_timer_query
#define GL_EXT_timer_query 1
GLAPI void GLAPIENTRY
glBindRenderbufferEXT(GLenum target, GLuint renderbuffer);
/* Define 64-bit types */
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
typedef long long int GLint64EXT;
typedef unsigned long long int GLuint64EXT;
#elif defined(_WIN32)
typedef __int64 GLint64EXT;
typedef unsigned __int64 GLuint64EXT;
#else
/* this might actually be a 32-bit type */
typedef long int GLint64EXT;
typedef unsigned long int GLuint64EXT;
#endif
GLAPI void GLAPIENTRY
glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers);
#define GL_TIME_ELAPSED_EXT 0x88BF
GLAPI void GLAPIENTRY
glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers);
GLAPI void GLAPIENTRY glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params);
GLAPI void GLAPIENTRY glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params);
GLAPI void GLAPIENTRY
glRenderbufferStorageEXT(GLenum target, GLenum internalformat,
GLsizei width, GLsizei height);
typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params);
typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params);
GLAPI void GLAPIENTRY
glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params);
GLAPI GLboolean GLAPIENTRY
glIsFramebufferEXT(GLuint framebuffer);
GLAPI void GLAPIENTRY
glBindFramebufferEXT(GLenum target, GLuint framebuffer);
GLAPI void GLAPIENTRY
glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers);
GLAPI void GLAPIENTRY
glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers);
GLAPI GLenum GLAPIENTRY
glCheckFramebufferStatusEXT(GLenum target);
GLAPI void GLAPIENTRY
glFramebufferTexture1DEXT(GLenum target, GLenum attachment,
GLenum textarget, GLuint texture, GLint level);
GLAPI void GLAPIENTRY
glFramebufferTexture2DEXT(GLenum target, GLenum attachment,
GLenum textarget, GLuint texture, GLint level);
GLAPI void GLAPIENTRY
glFramebufferTexture3DEXT(GLenum target, GLenum attachment,
GLenum textarget, GLuint texture,
GLint level, GLint zoffset);
GLAPI void GLAPIENTRY
glFramebufferRenderbufferEXT(GLenum target, GLenum attachment,
GLenum renderbuffertarget,
GLuint renderbuffer);
GLAPI void GLAPIENTRY
glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
GLenum pname, GLint *params);
GLAPI void GLAPIENTRY
glGenerateMipmapEXT(GLenum target);
#endif /* GL_EXT_timer_query */
#define GL_FRAMEBUFFER_EXT 0x8D40
#define GL_RENDERBUFFER_EXT 0x8D41
#define GL_STENCIL_INDEX_EXT 0x8D45
#define GL_STENCIL_INDEX1_EXT 0x8D46
#define GL_STENCIL_INDEX4_EXT 0x8D47
#define GL_STENCIL_INDEX8_EXT 0x8D48
#define GL_STENCIL_INDEX16_EXT 0x8D49
#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
#define GL_FRAMEBUFFER_STATUS_ERROR_EXT 0x8CDE
#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
#endif /* GL_EXT_framebuffer_object */
#ifndef GL_EXT_packed_depth_stencil
#define GL_EXT_packed_depth_stencil 1
#define GL_DEPTH_STENCIL_EXT 0x84F9
#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
#define GL_DEPTH24_STENCIL8_EXT 0x88F0
#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
#endif /* GL_EXT_packed_depth_stencil */
/**

View File

@@ -62,11 +62,13 @@
#define glBindBufferARB MANGLE(BindBufferARB)
#define glBindBuffer MANGLE(BindBuffer)
#define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI)
#define glBindFramebufferEXT MANGLE(BindFramebufferEXT)
#define glBindLightParameterEXT MANGLE(BindLightParameterEXT)
#define glBindMaterialParameterEXT MANGLE(BindMaterialParameterEXT)
#define glBindParameterEXT MANGLE(BindParameterEXT)
#define glBindProgramARB MANGLE(BindProgramARB)
#define glBindProgramNV MANGLE(BindProgramNV)
#define glBindRenderbufferEXT MANGLE(BindRenderbufferEXT)
#define glBindTexGenParameterEXT MANGLE(BindTexGenParameterEXT)
#define glBindTextureEXT MANGLE(BindTextureEXT)
#define glBindTexture MANGLE(BindTexture)
@@ -102,6 +104,7 @@
#define glBufferSubData MANGLE(BufferSubData)
#define glCallList MANGLE(CallList)
#define glCallLists MANGLE(CallLists)
#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT)
#define glClampColorARB MANGLE(ClampColorARB)
#define glClearAccum MANGLE(ClearAccum)
#define glClearColor MANGLE(ClearColor)
@@ -244,6 +247,7 @@
#define glDeleteFencesAPPLE MANGLE(DeleteFencesAPPLE)
#define glDeleteFencesNV MANGLE(DeleteFencesNV)
#define glDeleteFragmentShaderATI MANGLE(DeleteFragmentShaderATI)
#define glDeleteFramebuffersEXT MANGLE(DeleteFramebuffersEXT)
#define glDeleteLists MANGLE(DeleteLists)
#define glDeleteObjectARB MANGLE(DeleteObjectARB)
#define glDeleteOcclusionQueriesNV MANGLE(DeleteOcclusionQueriesNV)
@@ -252,6 +256,7 @@
#define glDeleteProgramsNV MANGLE(DeleteProgramsNV)
#define glDeleteQueriesARB MANGLE(DeleteQueriesARB)
#define glDeleteQueries MANGLE(DeleteQueries)
#define glDeleteRenderbuffersEXT MANGLE(DeleteRenderbuffersEXT)
#define glDeleteShader MANGLE(DeleteShader)
#define glDeleteTexturesEXT MANGLE(DeleteTexturesEXT)
#define glDeleteTextures MANGLE(DeleteTextures)
@@ -365,6 +370,10 @@
#define glFragmentMaterialfvSGIX MANGLE(FragmentMaterialfvSGIX)
#define glFragmentMaterialiSGIX MANGLE(FragmentMaterialiSGIX)
#define glFragmentMaterialivSGIX MANGLE(FragmentMaterialivSGIX)
#define glFramebufferRenderbufferEXT MANGLE(FramebufferRenderbufferEXT)
#define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT)
#define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT)
#define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT)
#define glFrameZoomSGIX MANGLE(FrameZoomSGIX)
#define glFreeObjectBufferATI MANGLE(FreeObjectBufferATI)
#define glFrontFace MANGLE(FrontFace)
@@ -372,15 +381,18 @@
#define glGenAsyncMarkersSGIX MANGLE(GenAsyncMarkersSGIX)
#define glGenBuffersARB MANGLE(GenBuffersARB)
#define glGenBuffers MANGLE(GenBuffers)
#define glGenerateMipmapEXT MANGLE(GenerateMipmapEXT)
#define glGenFencesAPPLE MANGLE(GenFencesAPPLE)
#define glGenFencesNV MANGLE(GenFencesNV)
#define glGenFragmentShadersATI MANGLE(GenFragmentShadersATI)
#define glGenFramebuffersEXT MANGLE(GenFramebuffersEXT)
#define glGenLists MANGLE(GenLists)
#define glGenOcclusionQueriesNV MANGLE(GenOcclusionQueriesNV)
#define glGenProgramsARB MANGLE(GenProgramsARB)
#define glGenProgramsNV MANGLE(GenProgramsNV)
#define glGenQueriesARB MANGLE(GenQueriesARB)
#define glGenQueries MANGLE(GenQueries)
#define glGenRenderbuffersEXT MANGLE(GenRenderbuffersEXT)
#define glGenSymbolsEXT MANGLE(GenSymbolsEXT)
#define glGenTexturesEXT MANGLE(GenTexturesEXT)
#define glGenTextures MANGLE(GenTextures)
@@ -438,6 +450,7 @@
#define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX)
#define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX)
#define glGetFragmentMaterialivSGIX MANGLE(GetFragmentMaterialivSGIX)
#define glGetFramebufferAttachmentParameterivEXT MANGLE(GetFramebufferAttachmentParameterivEXT)
#define glGetHandleARB MANGLE(GetHandleARB)
#define glGetHistogramEXT MANGLE(GetHistogramEXT)
#define glGetHistogram MANGLE(GetHistogram)
@@ -502,14 +515,18 @@
#define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV)
#define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV)
#define glGetProgramParameterfvNV MANGLE(GetProgramParameterfvNV)
#define glGetProgramRegisterfvMESA MANGLE(GetProgramRegisterfvMESA)
#define glGetProgramStringARB MANGLE(GetProgramStringARB)
#define glGetProgramStringNV MANGLE(GetProgramStringNV)
#define glGetQueryivARB MANGLE(GetQueryivARB)
#define glGetQueryiv MANGLE(GetQueryiv)
#define glGetQueryObjecti64vEXT MANGLE(GetQueryObjecti64vEXT)
#define glGetQueryObjectivARB MANGLE(GetQueryObjectivARB)
#define glGetQueryObjectiv MANGLE(GetQueryObjectiv)
#define glGetQueryObjectui64vEXT MANGLE(GetQueryObjectui64vEXT)
#define glGetQueryObjectuivARB MANGLE(GetQueryObjectuivARB)
#define glGetQueryObjectuiv MANGLE(GetQueryObjectuiv)
#define glGetRenderbufferParameterivEXT MANGLE(GetRenderbufferParameterivEXT)
#define glGetSeparableFilterEXT MANGLE(GetSeparableFilterEXT)
#define glGetSeparableFilter MANGLE(GetSeparableFilter)
#define glGetShaderInfoLog MANGLE(GetShaderInfoLog)
@@ -601,6 +618,7 @@
#define glIsEnabled MANGLE(IsEnabled)
#define glIsFenceAPPLE MANGLE(IsFenceAPPLE)
#define glIsFenceNV MANGLE(IsFenceNV)
#define glIsFramebufferEXT MANGLE(IsFramebufferEXT)
#define glIsList MANGLE(IsList)
#define glIsObjectBufferATI MANGLE(IsObjectBufferATI)
#define glIsOcclusionQueryNV MANGLE(IsOcclusionQueryNV)
@@ -609,6 +627,7 @@
#define glIsProgramNV MANGLE(IsProgramNV)
#define glIsQueryARB MANGLE(IsQueryARB)
#define glIsQuery MANGLE(IsQuery)
#define glIsRenderbufferEXT MANGLE(IsRenderbufferEXT)
#define glIsShader MANGLE(IsShader)
#define glIsTextureEXT MANGLE(IsTextureEXT)
#define glIsTexture MANGLE(IsTexture)
@@ -836,6 +855,7 @@
#define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV)
#define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT)
#define glPrioritizeTextures MANGLE(PrioritizeTextures)
#define glProgramCallbackMESA MANGLE(ProgramCallbackMESA)
#define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB)
#define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB)
#define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB)
@@ -895,6 +915,7 @@
#define glRects MANGLE(Rects)
#define glRectsv MANGLE(Rectsv)
#define glReferencePlaneSGIX MANGLE(ReferencePlaneSGIX)
#define glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT)
#define glRenderMode MANGLE(RenderMode)
#define glReplacementCodePointerSUN MANGLE(ReplacementCodePointerSUN)
#define glReplacementCodeubSUN MANGLE(ReplacementCodeubSUN)
@@ -1003,6 +1024,7 @@
#define glStencilOpSeparateATI MANGLE(StencilOpSeparateATI)
#define glStencilOpSeparate MANGLE(StencilOpSeparate)
#define glStopInstrumentsSGIX MANGLE(StopInstrumentsSGIX)
#define glStringMarkerGREMEDY MANGLE(StringMarkerGREMEDY)
#define glSwizzleEXT MANGLE(SwizzleEXT)
#define glTagSampleBufferSGIX MANGLE(TagSampleBufferSGIX)
#define glTangent3bEXT MANGLE(Tangent3bEXT)

View File

@@ -52,9 +52,9 @@ extern "C" {
/*************************************************************/
/* Header file version number, required by OpenGL ABI for Linux */
/* glext.h last updated 2005/01/20 */
/* glext.h last updated 2005/06/20 */
/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
#define GL_GLEXT_VERSION 26
#define GL_GLEXT_VERSION 29
#ifndef GL_VERSION_1_2
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
@@ -2980,6 +2980,64 @@ extern "C" {
/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
#endif
#ifndef GL_EXT_framebuffer_object
#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
#define GL_FRAMEBUFFER_EXT 0x8D40
#define GL_RENDERBUFFER_EXT 0x8D41
#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
#define GL_STENCIL_INDEX1_EXT 0x8D46
#define GL_STENCIL_INDEX4_EXT 0x8D47
#define GL_STENCIL_INDEX8_EXT 0x8D48
#define GL_STENCIL_INDEX16_EXT 0x8D49
#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
#endif
#ifndef GL_GREMEDY_string_marker
#endif
/*************************************************************/
@@ -6381,6 +6439,54 @@ typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLen
#define GL_NV_vertex_program3 1
#endif
#ifndef GL_EXT_framebuffer_object
#define GL_EXT_framebuffer_object 1
#ifdef GL_GLEXT_PROTOTYPES
GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint);
GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint);
GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *);
GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *);
GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei);
GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *);
GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint);
GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint);
GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *);
GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *);
GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum);
GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint);
GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *);
GLAPI void APIENTRY glGenerateMipmapEXT (GLenum);
#endif /* GL_GLEXT_PROTOTYPES */
typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
#endif
#ifndef GL_GREMEDY_string_marker
#define GL_GREMEDY_string_marker 1
#ifdef GL_GLEXT_PROTOTYPES
GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *);
#endif /* GL_GLEXT_PROTOTYPES */
typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string);
#endif
#ifdef __cplusplus
}

View File

@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
* Version: 5.1
* Version: 6.5
*
* Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2005 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"),
@@ -62,7 +62,10 @@ extern const char *
glFBDevGetString( int str );
extern const void *
typedef void (*GLFBDevProc)();
extern GLFBDevProc
glFBDevGetProcAddress( const char *procName );

View File

@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
* Version: 6.3
* Version: 6.5
*
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
*
@@ -302,138 +302,6 @@ extern void (*glXGetProcAddress(const GLubyte *procname))( void );
#else
/*
* 28. GLX_EXT_visual_info extension
*/
#ifndef GLX_EXT_visual_info
#define GLX_EXT_visual_info 1
#define GLX_X_VISUAL_TYPE_EXT 0x22
#define GLX_TRANSPARENT_TYPE_EXT 0x23
#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
#define GLX_TRUE_COLOR_EXT 0x8002
#define GLX_DIRECT_COLOR_EXT 0x8003
#define GLX_PSEUDO_COLOR_EXT 0x8004
#define GLX_STATIC_COLOR_EXT 0x8005
#define GLX_GRAY_SCALE_EXT 0x8006
#define GLX_STATIC_GRAY_EXT 0x8007
#define GLX_NONE_EXT 0x8000
#define GLX_TRANSPARENT_RGB_EXT 0x8008
#define GLX_TRANSPARENT_INDEX_EXT 0x8009
#endif /* 28. GLX_EXT_visual_info extension */
/*
* 41. GLX_SGI_video_sync
*/
#ifndef GLX_SGI_video_sync
#define GLX_SGI_video_sync 1
extern int glXGetVideoSyncSGI(unsigned int *count);
extern int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count);
#endif /* GLX_SGI_video_sync */
/*
* 42. GLX_EXT_visual_rating
*/
#ifndef GLX_EXT_visual_rating
#define GLX_EXT_visual_rating 1
#define GLX_VISUAL_CAVEAT_EXT 0x20
/*#define GLX_NONE_EXT 0x8000*/
#define GLX_SLOW_VISUAL_EXT 0x8001
#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
#endif /* GLX_EXT_visual_rating */
/*
* 47. GLX_EXT_import_context
*/
#ifndef GLX_EXT_import_context
#define GLX_EXT_import_context 1
#define GLX_SHARE_CONTEXT_EXT 0x800A
#define GLX_VISUAL_ID_EXT 0x800B
#define GLX_SCREEN_EXT 0x800C
extern void glXFreeContextEXT(Display *dpy, GLXContext context);
extern GLXContextID glXGetContextIDEXT(const GLXContext context);
extern Display *glXGetCurrentDisplayEXT(void);
extern GLXContext glXImportContextEXT(Display *dpy, GLXContextID contextID);
extern int glXQueryContextInfoEXT(Display *dpy, GLXContext context,
int attribute,int *value);
#endif /* GLX_EXT_import_context */
/*
* 215. GLX_MESA_copy_sub_buffer
*/
#ifndef GLX_MESA_copy_sub_buffer
#define GLX_MESA_copy_sub_buffer 1
extern void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
int x, int y, int width, int height );
#endif
/*
* 216. GLX_MESA_pixmap_colormap
*/
#ifndef GLX_MESA_pixmap_colormap
#define GLX_MESA_pixmap_colormap 1
extern GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual,
Pixmap pixmap, Colormap cmap );
#endif /* GLX_MESA_pixmap_colormap */
/*
* 217. GLX_MESA_release_buffers
*/
#ifndef GLX_MESA_release_buffers
#define GLX_MESA_release_buffers 1
extern Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
#endif /* GLX_MESA_release_buffers */
/*
* 218. GLX_MESA_set_3dfx_mode
*/
#ifndef GLX_MESA_set_3dfx_mode
#define GLX_MESA_set_3dfx_mode 1
#define GLX_3DFX_WINDOW_MODE_MESA 0x1
#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
extern Bool glXSet3DfxModeMESA( int mode );
#endif /* GLX_MESA_set_3dfx_mode */
/*
* ARB 2. GLX_ARB_get_proc_address
@@ -441,7 +309,8 @@ extern Bool glXSet3DfxModeMESA( int mode );
#ifndef GLX_ARB_get_proc_address
#define GLX_ARB_get_proc_address 1
extern void (*glXGetProcAddressARB(const GLubyte *procName))();
typedef void (*__GLXextFuncPtr)(void);
extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
#endif /* GLX_ARB_get_proc_address */
@@ -469,19 +338,6 @@ 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 */
/*
* ???. GLX_MESA_allocate_memory
*/
@@ -497,8 +353,10 @@ typedef GLuint (* PFNGLXGETMEMORYOFFSETMESAPROC) (Display *dpy, int scrn, const
#endif /* GLX_MESA_allocate_memory */
/*
* ARB ?. GLX_ARB_render_texture
* XXX This was never finalized!
*/
#ifndef GLX_ARB_render_texture
#define GLX_ARB_render_texture 1

View File

@@ -331,13 +331,24 @@ typedef struct {
} GLXBufferClobberEventSGIX;
#endif
#if defined(__UNIXOS2__) || defined(__SOL64__)
#if defined(__sun__)
#include <inttypes.h>
#if defined(__STDC__)
#if defined(__arch64__)
typedef long int int64_t;
#else
typedef long long int int64_t;
#endif /* __arch64__ */
#endif /* __STDC__ */
#elif defined(__UNIXOS2__) || defined(__SOL64__)
typedef long int int32_t;
typedef long long int int64_t;
#elif defined( __VMS )
#include <inttypes.h>
#elif defined(__SCO__) || defined(__USLC__)
#include <stdint.h>
#elif defined(WIN32) && defined(__GNUC__)
#include <stdint.h>
#endif
#ifndef GLX_VERSION_1_3

View File

@@ -38,14 +38,7 @@
#ifndef DRI_INTERFACE_H
#define DRI_INTERFACE_H
#ifndef DRI_NEW_INTERFACE_ONLY
# include <X11/X.h>
# include <GL/glx.h>
# include "GL/glxint.h"
#endif
#include <GL/internal/glcore.h>
#include <xf86drm.h>
#include <drm.h>
/**
@@ -62,6 +55,7 @@ typedef struct __DRIdrawableRec __DRIdrawable;
typedef struct __DRIdriverRec __DRIdriver;
typedef struct __DRIframebufferRec __DRIframebuffer;
typedef struct __DRIversionRec __DRIversion;
typedef struct __DRIinterfaceMethodsRec __DRIinterfaceMethods;
typedef unsigned long __DRIid;
typedef void __DRInativeDisplay;
/*@}*/
@@ -71,42 +65,6 @@ typedef void __DRInativeDisplay;
* \name Functions provided by the driver loader.
*/
/*@{*/
extern __DRIscreen *__glXFindDRIScreen(__DRInativeDisplay *dpy, int scrn);
/**
* Type of a pointer to \c __glXGetInternalVersion, as returned by
* \c glXGetProcAddress.
*
* \sa __glXGetInternalVersion, glXGetProcAddress
*/
typedef int (* PFNGLXGETINTERNALVERSIONPROC) ( void );
/**
* Type of a pointer to \c __glXWindowExists, as returned by
* \c glXGetProcAddress.
*
* \sa __glXWindowExists, glXGetProcAddress
*/
typedef GLboolean (* PFNGLXWINDOWEXISTSPROC) (__DRInativeDisplay *dpy, __DRIid draw);
/**
* Type of a pointer to \c __glXGetUST, as returned by \c glXGetProcAddress.
*
* \sa __glXGetUST, glXGetProcAddress
*/
typedef int (* PFNGLXGETUSTPROC) ( int64_t * ust );
/**
* Type of pointer to \c __glXCreateContextModes, as returned by
* \c glXGetProcAddress.
*
* \sa _gl_context_modes_create, glXGetProcAddress
*/
typedef __GLcontextModes * (* PFNGLXCREATECONTEXTMODES) ( unsigned count,
size_t minimum_bytes_per_struct );
/**
* Type of a pointer to \c glXGetScreenDriver, as returned by
* \c glXGetProcAddress. This function is used to get the name of the DRI
@@ -127,39 +85,11 @@ typedef const char * (* PFNGLXGETSCREENDRIVERPROC) (__DRInativeDisplay *dpy, int
typedef const char * (* PFNGLXGETDRIVERCONFIGPROC) (const char *driverName);
/**
* Type of a pointer to \c __glXScrEnableExtension, as returned by
* \c glXGetProcAddress. This function is used to enable a GLX extension
* on the specified screen.
*
* \sa __glXScrEnableExtension, glXGetProcAddress
* Type of a pointer to \c glxEnableExtension, as returned by
* \c __DRIinterfaceMethods::getProcAddress. This function is used to enable
* a GLX extension on the specified screen.
*/
typedef void (* PFNGLXSCRENABLEEXTENSIONPROC) ( void *psc, const char * name );
/**
* Type of a pointer to \c __glXGetDrawableInfo, as returned by
* \c glXGetProcAddress. This function is used to get information about the
* position, size, and clip rects of a drawable.
*
* \sa __glXGetDrawableInfo, glXGetProcAddress
*/
typedef GLboolean (* PFNGLXGETDRAWABLEINFOPROC) ( __DRInativeDisplay *dpy, int scrn,
__DRIid draw, unsigned int * index, unsigned int * stamp,
int * x, int * y, int * width, int * height,
int * numClipRects, drm_clip_rect_t ** pClipRects,
int * backX, int * backY,
int * numBackClipRects, drm_clip_rect_t ** pBackClipRects );
/* Test for the xf86dri.h header file */
#ifndef _XF86DRI_H_
extern GLboolean XF86DRIDestroyContext( __DRInativeDisplay *dpy, int screen,
__DRIid context_id );
extern GLboolean XF86DRICreateDrawable( __DRInativeDisplay *dpy, int screen,
__DRIid drawable, drm_drawable_t *hHWDrawable );
extern GLboolean XF86DRIDestroyDrawable( __DRInativeDisplay *dpy, int screen,
__DRIid drawable);
#endif
/*@}*/
@@ -173,16 +103,10 @@ typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn,
const __DRIversion * ddx_version, const __DRIversion * dri_version,
const __DRIversion * drm_version, const __DRIframebuffer * frame_buffer,
void * pSAREA, int fd, int internal_api_version,
const __DRIinterfaceMethods * interface,
__GLcontextModes ** driver_modes);
typedef CREATENEWSCREENFUNC* PFNCREATENEWSCREENFUNC;
extern CREATENEWSCREENFUNC __driCreateNewScreen;
#ifndef DRI_NEW_INTERFACE_ONLY
extern void *__driCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
int numConfigs, __GLXvisualConfig *config);
#endif /* DRI_NEW_INTERFACE_ONLY */
extern CREATENEWSCREENFUNC __driCreateNewScreen_20050727;
/**
@@ -209,6 +133,113 @@ struct __DRIversionRec {
int patch; /**< Patch-level. */
};
typedef void (*__DRIfuncPtr)(void);
struct __DRIinterfaceMethodsRec {
/**
* Get pointer to named function.
*/
__DRIfuncPtr (*getProcAddress)( const char * proc_name );
/**
* Create a list of \c __GLcontextModes structures.
*/
__GLcontextModes * (*createContextModes)(unsigned count,
size_t minimum_bytes_per_struct);
/**
* Destroy a list of \c __GLcontextModes structures.
*
* \todo
* Determine if the drivers actually need to call this.
*/
void (*destroyContextModes)( __GLcontextModes * modes );
/**
* Get the \c __DRIscreen for a given display and screen number.
*/
__DRIscreen *(*getScreen)(__DRInativeDisplay *dpy, int screenNum);
/**
* \name Client/server protocol functions.
*
* These functions implement the DRI client/server protocol for
* context and drawable operations. Platforms that do not implement
* the wire protocol (e.g., EGL) will implement glorified no-op functions.
*/
/*@{*/
/**
* Determine if the specified window ID still exists.
*
* \note
* Implementations may assume that the driver will only pass an ID into
* this function that actually corresponds to a window. On
* implementations where windows can only be destroyed by the DRI driver
* (e.g., EGL), this function is allowed to always return \c GL_TRUE.
*/
GLboolean (*windowExists)(__DRInativeDisplay *dpy, __DRIid draw);
/**
* Create the server-side portion of the GL context.
*/
GLboolean (* createContext)( __DRInativeDisplay *dpy, int screenNum,
int configID, void * contextID, drm_context_t * hw_context );
/**
* Destroy the server-side portion of the GL context.
*/
GLboolean (* destroyContext)( __DRInativeDisplay *dpy, int screenNum,
__DRIid context );
/**
* Create the server-side portion of the drawable.
*/
GLboolean (*createDrawable)( __DRInativeDisplay * ndpy, int screen,
__DRIid drawable, drm_drawable_t * hHWDrawable );
/**
* Destroy the server-side portion of the drawable.
*/
GLboolean (*destroyDrawable)( __DRInativeDisplay * ndpy, int screen,
__DRIid drawable );
/**
* This function is used to get information about the position, size, and
* clip rects of a drawable.
*/
GLboolean (* getDrawableInfo) ( __DRInativeDisplay *dpy, int scrn,
__DRIid draw, unsigned int * index, unsigned int * stamp,
int * x, int * y, int * width, int * height,
int * numClipRects, drm_clip_rect_t ** pClipRects,
int * backX, int * backY,
int * numBackClipRects, drm_clip_rect_t ** pBackClipRects );
/*@}*/
/**
* \name Timing related functions.
*/
/*@{*/
/**
* Get the 64-bit unadjusted system time (UST).
*/
int (*getUST)(int64_t * ust);
/**
* Get the media stream counter (MSC) rate.
*
* Matching the definition in GLX_OML_sync_control, this function returns
* the rate of the "media stream counter". In practical terms, this is
* the frame refresh rate of the display.
*/
GLboolean (*getMSCRate)(__DRInativeDisplay * dpy, __DRIid drawable,
int32_t * numerator, int32_t * denominator);
/*@}*/
};
/**
* Framebuffer information record. Used by libGL to communicate information
* about the framebuffer to the driver's \c __driCreateNewScreen function.
@@ -247,25 +278,6 @@ struct __DRIscreenRec {
*/
void (*destroyScreen)(__DRInativeDisplay *dpy, int scrn, void *screenPrivate);
/**
* Method to create the private DRI context data and initialize the
* context dependent methods.
*
* \sa __DRIscreenRec::createNewContext driCreateContext
* driCreateNewContext
*
* \deprecated
* This function has been replaced by \c __DRIscreenRec::createNewContext.
* New drivers will continue to export this method, but it will eventually
* (in the next XFree86 major relearse) go away.
*/
#ifndef DRI_NEW_INTERFACE_ONLY
void *(*createContext)(Display *dpy, XVisualInfo *vis, void *sharedPrivate,
__DRIcontext *pctx);
#else
void * createContext;
#endif /* DRI_NEW_INTERFACE_ONLY */
/**
* Method to create the private DRI drawable data and initialize the
* drawable dependent methods.
@@ -341,30 +353,6 @@ struct __DRIcontextRec {
*/
void (*destroyContext)(__DRInativeDisplay *dpy, int scrn, void *contextPrivate);
/**
* Method to bind a DRI drawable to a DRI graphics context.
*
* \deprecated Replaced by bindContext3.
*/
#ifndef DRI_NEW_INTERFACE_ONLY
Bool (*bindContext)(Display *dpy, int scrn, GLXDrawable draw,
GLXContext gc);
#else
void *bindContext;
#endif /* DRI_NEW_INTERFACE_ONLY */
/**
* Method to unbind a DRI drawable to a DRI graphics context.
*
* \deprecated Replaced by unbindContext3.
*/
#ifndef DRI_NEW_INTERFACE_ONLY
Bool (*unbindContext)(Display *dpy, int scrn, GLXDrawable draw,
GLXContext gc, int will_rebind);
#else
void *unbindContext;
#endif /* DRI_NEW_INTERFACE_ONLY */
/**
* Opaque pointer to private per context direct rendering data.
* \c NULL if direct rendering is not supported on the display or
@@ -372,32 +360,6 @@ struct __DRIcontextRec {
*/
void *private;
/**
* Method to bind a DRI drawable to a DRI graphics context.
*
* \since Internal API version 20030606.
* \deprecated Replaced by bindContext3.
*/
#ifndef DRI_NEW_INTERFACE_ONLY
Bool (*bindContext2)(Display *dpy, int scrn, GLXDrawable draw,
GLXDrawable read, GLXContext gc);
#else
void *bindContext2;
#endif /* DRI_NEW_INTERFACE_ONLY */
/**
* Method to unbind a DRI drawable from a DRI graphics context.
*
* \since Internal API version 20030606.
* \deprecated Replaced by unbindContext3.
*/
#ifndef DRI_NEW_INTERFACE_ONLY
Bool (*unbindContext2)(Display *dpy, int scrn, GLXDrawable draw,
GLXDrawable read, GLXContext gc);
#else
void *unbindContext2;
#endif /* DRI_NEW_INTERFACE_ONLY */
/**
* Pointer to the mode used to create this context.
*
@@ -408,17 +370,17 @@ struct __DRIcontextRec {
/**
* Method to bind a DRI drawable to a DRI graphics context.
*
* \since Internal API version 20040415.
* \since Internal API version 20050727.
*/
GLboolean (*bindContext3)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
GLboolean (*bindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
__DRIid read, __DRIcontext *ctx);
/**
* Method to unbind a DRI drawable from a DRI graphics context.
*
* \since Internal API version 20040415.
* \since Internal API version 20050727.
*/
GLboolean (*unbindContext3)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
GLboolean (*unbindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
__DRIid read, __DRIcontext *ctx);
};

View File

@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
* Version: 6.3
* Version: 6.5
*
* Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2005 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"),
@@ -61,7 +61,7 @@ extern "C" {
#define OSMESA_MAJOR_VERSION 6
#define OSMESA_MINOR_VERSION 3
#define OSMESA_MINOR_VERSION 5
#define OSMESA_PATCH_VERSION 0
@@ -267,6 +267,15 @@ GLAPI OSMESAproc GLAPIENTRY
OSMesaGetProcAddress( const char *funcName );
/**
* Enable/disable color clamping, off by default.
* New in Mesa 6.4.2
*/
GLAPI void GLAPIENTRY
OSMesaColorClamp(GLboolean enable);
#if defined(__BEOS__) || defined(__QUICKDRAW__)
#pragma export off
#endif

View File

@@ -78,7 +78,7 @@ typedef struct wmesa_context *WMesaContext;
* appropriate colormap.
*
* Input:
* hWnd - Window handle
* hDC - Windows device or memory context
* Pal - Palette to use
* rgb_flag - GL_TRUE = RGB mode,
* GL_FALSE = color index mode
@@ -91,7 +91,7 @@ typedef struct wmesa_context *WMesaContext;
*
* Return: a WMesa_context or NULL if error.
*/
extern WMesaContext WMesaCreateContext(HWND hWnd,HPALETTE* pPal,
extern WMesaContext WMesaCreateContext(HDC hDC,HPALETTE* pPal,
GLboolean rgb_flag,
GLboolean db_flag,
GLboolean alpha_flag);

View File

@@ -35,7 +35,11 @@
** compliant with the OpenGL(R) version 1.2.1 Specification.
*/
#if 0/*XXX TEMPORARY HACK*/
#include <GLES/gl.h>
#else
#include <GL/gl.h>
#endif
#include <GLES/egltypes.h>
/* XXX should go in eglext.h */
@@ -192,7 +196,7 @@ GLAPI EGLDisplay APIENTRY eglGetDisplay (NativeDisplayType display);
GLAPI EGLBoolean APIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
GLAPI EGLBoolean APIENTRY eglTerminate (EGLDisplay dpy);
GLAPI const char * APIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
GLAPI void (* APIENTRY eglGetProcAddress (const char *procname))();
GLAPI void (* APIENTRY eglGetProcAddress (const char *procname))(void);
GLAPI EGLBoolean APIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
GLAPI EGLBoolean APIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
@@ -225,6 +229,46 @@ GLAPI EGLBoolean APIENTRY eglWaitNative (EGLint engine);
GLAPI EGLBoolean APIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface draw);
GLAPI EGLBoolean APIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, NativePixmapType target);
/* EGL_MESA_screen extension >>> PRELIMINARY <<< */
#ifndef EGL_MESA_screen_surface
#define EGL_MESA_screen_surface 1
#define EGL_BAD_SCREEN_MESA 0x4000
#define EGL_BAD_MODE_MESA 0x4001
#define EGL_SCREEN_COUNT_MESA 0x4002
#define EGL_SCREEN_POSITION_MESA 0x4003
#define EGL_SCREEN_POSITION_GRANULARITY_MESA 0x4004
#define EGL_MODE_ID_MESA 0x4005
#define EGL_REFRESH_RATE_MESA 0x4006
#define EGL_OPTIMAL_MESA 0x4007
#define EGL_INTERLACED_MESA 0x4008
#define EGL_SCREEN_BIT_MESA 0x08
GLAPI EGLBoolean APIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
GLAPI EGLBoolean APIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
GLAPI EGLBoolean APIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
GLAPI EGLBoolean APIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
GLAPI EGLSurface APIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
GLAPI EGLBoolean APIENTRY eglShowScreenSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
GLAPI EGLBoolean APIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
GLAPI EGLBoolean APIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
GLAPI EGLBoolean APIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
GLAPI EGLBoolean APIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
GLAPI const char * APIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode);
#endif /* EGL_MESA_screen_surface */
#ifndef EGL_MESA_copy_context
#define EGL_MESA_copy_context 1
GLAPI EGLBoolean APIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
#endif /* EGL_MESA_copy_context */
#ifdef __cplusplus
}
#endif

View File

@@ -1,48 +1,45 @@
/*
* egltypes.h - EGL API compatibility
*
* The intention here is to support multiple EGL implementations for the
* various backends - GLX, AGL, WGL, Solo - so we define the EGL types as
* opaque handles. We also define the Native types as opaque handles for
* now, which should be fine for GLX and Solo but the others who knows.
* They can extend this later.
*
* We require that 'int' be 32 bits. Other than that this should be pretty
* portable.
*
* Derived from the OpenGL|ES 1.1 egl.h on the Khronos website:
* http://www.khronos.org/opengles/spec_headers/opengles1_1/egl.h
*
*/
** egltypes.h for Mesa
**
** ONLY egl.h SHOULD INCLUDE THIS FILE!
**
** See comments about egltypes.h in the standard egl.h file.
*/
#ifndef _EGLTYPES_H
#define _EGLTYPES_H
#include <sys/types.h>
/*
* Native types
*/
typedef void *NativeDisplayType;
typedef void *NativePixmapType;
typedef void *NativeWindowType;
/*
* Types and resources
*/
typedef GLboolean EGLBoolean;
typedef GLint EGLint;
typedef void *EGLDisplay;
typedef void *EGLConfig;
typedef void *EGLSurface;
typedef void *EGLContext;
** These opaque EGL types are implemented as unsigned 32-bit integers:
*/
typedef u_int32_t EGLDisplay;
typedef u_int32_t EGLConfig;
typedef u_int32_t EGLSurface;
typedef u_int32_t EGLContext;
/* EGL_MESA_screen_surface */
typedef u_int32_t EGLModeMESA;
typedef u_int32_t EGLScreenMESA;
/*
* EGL and native handle values
*/
#define EGL_DEFAULT_DISPLAY ((NativeDisplayType)0)
#define EGL_NO_CONTEXT ((EGLContext)0)
#define EGL_NO_DISPLAY ((EGLDisplay)0)
#define EGL_NO_SURFACE ((EGLSurface)0)
** Other basic EGL types:
*/
typedef u_int8_t EGLBoolean;
typedef int32_t EGLint;
#endif /* _EGLTYPES_H */
typedef void * NativeDisplayType;
typedef int NativePixmapType;
typedef int NativeWindowType;
/*
** EGL and native handle null values:
*/
#define EGL_DEFAULT_DISPLAY ((NativeDisplayType) 0)
#define EGL_NO_CONTEXT ((EGLContext) 0)
#define EGL_NO_DISPLAY ((EGLDisplay) 0)
#define EGL_NO_SURFACE ((EGLSurface) 0)
/* EGL_MESA_screen_surface */
#define EGL_NO_MODE_MESA ((EGLModeMESA) 0)

View File

@@ -25,6 +25,7 @@ PROGS = \
fplight \
gamma \
gears \
gearbox \
geartrain \
glinfo \
gloss \
@@ -36,15 +37,14 @@ PROGS = \
morph3d \
multiarb \
occlude \
osdemo \
paltex \
pixeltex \
pointblast \
ray \
readpix \
reflect \
renormal \
shadowtex \
singlebuffer \
spectex \
spriteblast \
stex3d \
@@ -110,21 +110,7 @@ shadowtex: shadowtex.o showbuffer.o
shadowtex.o: shadowtex.c showbuffer.h
$(CC) -c -I$(INCDIR) $(CFLAGS) shadowtex.c
# special case: need the -lOSMesa library:
osdemo: osdemo.c
$(CC) -I$(INCDIR) $(CFLAGS) osdemo.c $(OSMESA_LIBS) -o $@
# another special case: need the -lOSMesa16 library:
osdemo16: osdemo16.c
$(CC) -I$(INCDIR) $(CFLAGS) osdemo16.c $(OSMESA16_LIBS) -o $@
# another special case: need the -lOSMesa32 library:
osdemo32: osdemo32.c
$(CC) -I$(INCDIR) $(CFLAGS) osdemo32.c $(OSMESA32_LIBS) -o $@
clean:
-rm -f $(PROGS)
-rm -f *.o *~
-rm -f readtex.[ch]
-rm -f readtex.[ch] showbuffer.[ch]

View File

@@ -51,20 +51,16 @@ static void Redisplay( void )
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
if (PixelLight) {
#if defined(GL_ARB_fragment_program)
glProgramLocalParameter4fvARB_func(GL_FRAGMENT_PROGRAM_ARB,
LIGHTPOS, LightPos);
glEnable(GL_FRAGMENT_PROGRAM_ARB);
glEnable(GL_VERTEX_PROGRAM_ARB);
#endif
glDisable(GL_LIGHTING);
}
else {
glLightfv(GL_LIGHT0, GL_POSITION, LightPos);
#if defined(GL_ARB_fragment_program)
glDisable(GL_FRAGMENT_PROGRAM_ARB);
glDisable(GL_VERTEX_PROGRAM_ARB);
#endif
glEnable(GL_LIGHTING);
}
@@ -302,7 +298,6 @@ static void Init( void )
glDeleteProgramsARB_func = (PFNGLDELETEPROGRAMSARBPROC) glutGetProcAddress("glDeleteProgramsARB");
assert(glDeleteProgramsARB_func);
#if defined(GL_ARB_fragment_program)
/*
* Fragment program
*/
@@ -354,7 +349,6 @@ static void Init( void )
exit(0);
}
assert(glIsProgramARB_func(VertProg));
#endif
/*
* Misc init
@@ -371,11 +365,9 @@ static void Init( void )
{
/* Green-ish fog color */
static const GLfloat fogColor[4] = {0.5, 1.0, 0.5, 0};
glFogi(GL_FOG_MODE, GL_LINEAR);
glFogfv(GL_FOG_COLOR, fogColor);
glFogf(GL_FOG_START, 5.0);
glFogf(GL_FOG_END, 25.0);
glEnable(GL_FOG);
}
#endif

View File

@@ -1,6 +1,6 @@
# Makefile for GLUT-based demo programs for VMS
# contributed by Jouk Jansen joukj@crys.chem.uva.nl
# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl
# Last update : 20 May 2005
.first
define gl [--.include.gl]
@@ -10,7 +10,7 @@
##### MACROS #####
INCDIR = ([--.include],[-.util])
CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)
CFLAGS =/include=$(INCDIR)/prefix=all/name=(as_is,short)/float=ieee/ieee=denorm
.ifdef SHARE
GL_LIBS = $(XLIBS)
@@ -22,7 +22,7 @@ LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB)
PROGS = bounce.exe;,clearspd.exe;,drawpix.exe;,gamma.exe;,gears.exe;,\
glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,osdemo.exe;,\
glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,\
paltex.exe;,pointblast.exe;,reflect.exe;,spectex.exe;,stex3d.exe;,\
tessdemo.exe;,texcyl.exe;,texobj.exe;,trispd.exe;,winpos.exe;
@@ -53,7 +53,6 @@ glutfx.exe; : glutfx.obj $(LIB_DEP)
isosurf.exe; : isosurf.obj $(LIB_DEP) [-.util]readtex.obj
cxxlink $(MMS$TARGET_NAME),[-.util]readtex.obj,$(GL_LIBS)
morph3d.exe; : morph3d.obj $(LIB_DEP)
osdemo.exe; : osdemo.obj $(LIB_DEP)
paltex.exe; : paltex.obj $(LIB_DEP)
pointblast.exe; : pointblast.obj $(LIB_DEP)
reflect.exe; : reflect.obj [-.util]readtex.obj [-.util]showbuffer.obj\
@@ -79,7 +78,6 @@ glinfo.obj : glinfo.c
glutfx.obj : glutfx.c
isosurf.obj : isosurf.c
morph3d.obj : morph3d.c
osdemo.obj : osdemo.c
paltex.obj : paltex.c
pointblast.obj : pointblast.c
reflect.obj : reflect.c

View File

@@ -71,7 +71,9 @@ static void Display( void )
glDisable(GL_SCISSOR_TEST);
glDisable(GL_FOG);
if (!DrawFront)
if (DrawFront)
glFinish();
else
glutSwapBuffers();
}

View File

@@ -304,7 +304,7 @@ printhelp(void)
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Help");
glRasterPos2i(60, 390);
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Togle Help");
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Toggle Help");
glRasterPos2i(60, 360);
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Increase particle size");
@@ -317,9 +317,9 @@ printhelp(void)
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "R - Decrease emission radius");
glRasterPos2i(60, 240);
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Togle Fog");
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Toggle Fog");
glRasterPos2i(60, 210);
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "s - Togle shadows");
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "s - Toggle shadows");
glRasterPos2i(60, 180);
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Arrow Keys - Rotate");
glRasterPos2i(60, 150);
@@ -330,7 +330,7 @@ printhelp(void)
glRasterPos2i(60, 90);
if (joyavailable)
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
"j - Togle jostick control (Joystick control available)");
"j - Toggle jostick control (Joystick control available)");
else
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
"(No Joystick control available)");

486
progs/demos/gearbox.c Normal file
View File

@@ -0,0 +1,486 @@
/*
* Use glCopyTexSubImage2D to draw animated gears on the sides of a box.
*
* Brian Paul
* 27 January 2006
*/
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <GL/glut.h>
#ifndef M_PI
#define M_PI 3.14159265
#endif
static GLint WinWidth = 800, WinHeight = 500;
static GLint TexWidth, TexHeight;
static GLuint TexObj = 1;
static GLenum IntFormat = GL_RGBA;
static GLboolean WireFrame = GL_FALSE;
static GLint T0 = 0;
static GLint Frames = 0;
static GLint Win = 0;
static GLfloat ViewRotX = 20.0, ViewRotY = 30.0, ViewRotZ = 0.0;
static GLint Gear1, Gear2, Gear3;
static GLfloat GearRot = 0.0;
static GLfloat CubeRot = 0.0;
/**
Draw a gear wheel. You'll probably want to call this function when
building a display list since we do a lot of trig here.
Input: inner_radius - radius of hole at center
outer_radius - radius at center of teeth
width - width of gear
teeth - number of teeth
tooth_depth - depth of tooth
**/
static void
gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width,
GLint teeth, GLfloat tooth_depth)
{
GLint i;
GLfloat r0, r1, r2;
GLfloat angle, da;
GLfloat u, v, len;
r0 = inner_radius;
r1 = outer_radius - tooth_depth / 2.0;
r2 = outer_radius + tooth_depth / 2.0;
da = 2.0 * M_PI / teeth / 4.0;
glShadeModel(GL_FLAT);
glNormal3f(0.0, 0.0, 1.0);
/* draw front face */
glBegin(GL_QUAD_STRIP);
for (i = 0; i <= teeth; i++) {
angle = i * 2.0 * M_PI / teeth;
glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
if (i < teeth) {
glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5);
}
}
glEnd();
/* draw front sides of teeth */
glBegin(GL_QUADS);
da = 2.0 * M_PI / teeth / 4.0;
for (i = 0; i < teeth; i++) {
angle = i * 2.0 * M_PI / teeth;
glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5);
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5);
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5);
}
glEnd();
glNormal3f(0.0, 0.0, -1.0);
/* draw back face */
glBegin(GL_QUAD_STRIP);
for (i = 0; i <= teeth; i++) {
angle = i * 2.0 * M_PI / teeth;
glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
if (i < teeth) {
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5);
glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
}
}
glEnd();
/* draw back sides of teeth */
glBegin(GL_QUADS);
da = 2.0 * M_PI / teeth / 4.0;
for (i = 0; i < teeth; i++) {
angle = i * 2.0 * M_PI / teeth;
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5);
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5);
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5);
glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
}
glEnd();
/* draw outward faces of teeth */
glBegin(GL_QUAD_STRIP);
for (i = 0; i < teeth; i++) {
angle = i * 2.0 * M_PI / teeth;
glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
u = r2 * cos(angle + da) - r1 * cos(angle);
v = r2 * sin(angle + da) - r1 * sin(angle);
len = sqrt(u * u + v * v);
u /= len;
v /= len;
glNormal3f(v, -u, 0.0);
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5);
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5);
glNormal3f(cos(angle), sin(angle), 0.0);
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5);
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5);
u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da);
v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da);
glNormal3f(v, -u, 0.0);
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5);
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5);
glNormal3f(cos(angle), sin(angle), 0.0);
}
glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5);
glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5);
glEnd();
glShadeModel(GL_SMOOTH);
/* draw inside radius cylinder */
glBegin(GL_QUAD_STRIP);
for (i = 0; i <= teeth; i++) {
angle = i * 2.0 * M_PI / teeth;
glNormal3f(-cos(angle), -sin(angle), 0.0);
glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
}
glEnd();
}
static void
cleanup(void)
{
glDeleteTextures(1, &TexObj);
glDeleteLists(Gear1, 1);
glDeleteLists(Gear2, 1);
glDeleteLists(Gear3, 1);
glutDestroyWindow(Win);
}
static void
DrawGears(void)
{
if (WireFrame) {
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
}
glPushMatrix();
glRotatef(20/*ViewRotX*/, 1.0, 0.0, 0.0);
glRotatef(ViewRotY, 0.0, 1.0, 0.0);
glRotatef(ViewRotZ, 0.0, 0.0, 1.0);
glPushMatrix();
glTranslatef(-3.0, -2.0, 0.0);
glRotatef(GearRot, 0.0, 0.0, 1.0);
glCallList(Gear1);
glPopMatrix();
glPushMatrix();
glTranslatef(3.1, -2.0, 0.0);
glRotatef(-2.0 * GearRot - 9.0, 0.0, 0.0, 1.0);
glCallList(Gear2);
glPopMatrix();
glPushMatrix();
glTranslatef(-3.1, 4.2, 0.0);
glRotatef(-2.0 * GearRot - 25.0, 0.0, 0.0, 1.0);
glCallList(Gear3);
glPopMatrix();
glPopMatrix();
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
}
static void
DrawCube(void)
{
static const GLfloat texcoords[4][2] = {
{ 0, 0 }, { 1, 0 }, { 1, 1 }, { 0, 1 }
};
static const GLfloat vertices[4][2] = {
{ -1, -1 }, { 1, -1 }, { 1, 1 }, { -1, 1 }
};
static const GLfloat xforms[6][4] = {
{ 0, 0, 1, 0 },
{ 90, 0, 1, 0 },
{ 180, 0, 1, 0 },
{ 270, 0, 1, 0 },
{ 90, 1, 0, 0 },
{ -90, 1, 0, 0 }
};
static const GLfloat mat[4] = { 1.0, 1.0, 0.5, 1.0 };
GLint i, j;
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, mat);
glEnable(GL_TEXTURE_2D);
glPushMatrix();
glRotatef(ViewRotX, 1.0, 0.0, 0.0);
glRotatef(15, 1, 0, 0);
glRotatef(CubeRot, 0, 1, 0);
glScalef(4, 4, 4);
for (i = 0; i < 6; i++) {
glPushMatrix();
glRotatef(xforms[i][0], xforms[i][1], xforms[i][2], xforms[i][3]);
glTranslatef(0, 0, 1.1);
glBegin(GL_POLYGON);
glNormal3f(0, 0, 1);
for (j = 0; j < 4; j++) {
glTexCoord2fv(texcoords[j]);
glVertex2fv(vertices[j]);
}
glEnd();
glPopMatrix();
}
glPopMatrix();
glDisable(GL_TEXTURE_2D);
}
static void
draw(void)
{
float ar;
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, -40.0);
glDisable(GL_SCISSOR_TEST);
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_SCISSOR_TEST);
/* draw gears */
glViewport(0, 0, TexWidth, TexHeight);
glScissor(0, 0, TexWidth, TexHeight);
glClearColor(0.5, 0.5, 0.8, 0.0);
glClearColor(1, 1, 1, 0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 60.0);
glMatrixMode(GL_MODELVIEW);
DrawGears();
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, TexWidth, TexHeight);
/* draw textured cube */
glViewport(TexWidth, 0, WinWidth - TexWidth, WinHeight);
glScissor(TexWidth, 0, WinWidth - TexWidth, WinHeight);
glClearColor(0.5, 0.5, 0.8, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
ar = (float) (WinWidth - TexWidth) / WinHeight;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-ar, ar, -1.0, 1.0, 5.0, 60.0);
glMatrixMode(GL_MODELVIEW);
DrawCube();
/* finish up */
glutSwapBuffers();
Frames++;
{
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;
}
}
}
static void
idle(void)
{
static double t0 = -1.;
double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
if (t0 < 0.0)
t0 = t;
dt = t - t0;
t0 = t;
GearRot += 70.0 * dt; /* 70 degrees per second */
GearRot = fmod(GearRot, 360.0); /* prevents eventual overflow */
CubeRot += 15.0 * dt;
glutPostRedisplay();
}
/* change view angle, exit upon ESC */
static void
key(unsigned char k, int x, int y)
{
(void) x;
(void) y;
switch (k) {
case 'w':
WireFrame = !WireFrame;
break;
case 'z':
ViewRotZ += 5.0;
break;
case 'Z':
ViewRotZ -= 5.0;
break;
case 27: /* Escape */
cleanup();
exit(0);
break;
default:
return;
}
glutPostRedisplay();
}
/* change view angle */
static void
special(int k, int x, int y)
{
(void) x;
(void) y;
switch (k) {
case GLUT_KEY_UP:
ViewRotX += 5.0;
break;
case GLUT_KEY_DOWN:
ViewRotX -= 5.0;
break;
case GLUT_KEY_LEFT:
ViewRotY += 5.0;
break;
case GLUT_KEY_RIGHT:
ViewRotY -= 5.0;
break;
default:
return;
}
glutPostRedisplay();
}
/* new window size or exposure */
static void
reshape(int width, int height)
{
WinWidth = width;
WinHeight = height;
}
static void
init(int argc, char *argv[])
{
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 blue[4] = {0.2, 0.2, 1.0, 1.0};
GLint i;
glLightfv(GL_LIGHT0, GL_POSITION, pos);
#if 0
glEnable(GL_CULL_FACE);
#endif
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
/* make the gears */
Gear1 = glGenLists(1);
glNewList(Gear1, GL_COMPILE);
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
gear(1.0, 4.0, 1.0, 20, 0.7);
glEndList();
Gear2 = glGenLists(1);
glNewList(Gear2, GL_COMPILE);
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
gear(0.5, 2.0, 2.0, 10, 0.7);
glEndList();
Gear3 = glGenLists(1);
glNewList(Gear3, GL_COMPILE);
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
gear(1.3, 2.0, 0.5, 10, 0.7);
glEndList();
glEnable(GL_NORMALIZE);
/* xxx make size dynamic */
TexWidth = 256;
TexHeight = 256;
glBindTexture(GL_TEXTURE_2D, TexObj);
glTexImage2D(GL_TEXTURE_2D, 0, IntFormat, TexWidth, TexHeight, 0,
GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
for ( i=1; i<argc; i++ ) {
if (strcmp(argv[i], "-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));
}
}
}
static void
visible(int vis)
{
if (vis == GLUT_VISIBLE)
glutIdleFunc(idle);
else
glutIdleFunc(NULL);
}
int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSize(WinWidth, WinHeight);
Win = glutCreateWindow("gearbox");
init(argc, argv);
glutDisplayFunc(draw);
glutReshapeFunc(reshape);
glutKeyboardFunc(key);
glutSpecialFunc(special);
glutVisibilityFunc(visible);
glutMainLoop();
return 0; /* ANSI C requires main to return int. */
}

View File

@@ -26,6 +26,7 @@
static GLint T0 = 0;
static GLint Frames = 0;
static GLint autoexit = 0;
static GLint win = 0;
/**
@@ -163,6 +164,15 @@ static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0;
static GLint gear1, gear2, gear3;
static GLfloat angle = 0.0;
static void
cleanup(void)
{
glDeleteLists(gear1, 1);
glDeleteLists(gear2, 1);
glDeleteLists(gear3, 1);
glutDestroyWindow(win);
}
static void
draw(void)
{
@@ -198,16 +208,18 @@ draw(void)
Frames++;
{
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;
if ((t >= 999.0 * autoexit) && (autoexit))
exit(0);
}
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;
if ((t >= 999.0 * autoexit) && (autoexit)) {
cleanup();
exit(0);
}
}
}
}
@@ -222,7 +234,9 @@ idle(void)
dt = t - t0;
t0 = t;
angle += 70.0 * dt; /* 90 degrees per second */
angle += 70.0 * dt; /* 70 degrees per second */
angle = fmod(angle, 360.0); /* prevents eventual overflow */
glutPostRedisplay();
}
@@ -239,6 +253,7 @@ key(unsigned char k, int x, int y)
view_rotz -= 5.0;
break;
case 27: /* Escape */
cleanup();
exit(0);
break;
default:
@@ -352,7 +367,7 @@ int main(int argc, char *argv[])
glutInitWindowPosition(0, 0);
glutInitWindowSize(300, 300);
glutCreateWindow("Gears");
win = glutCreateWindow("Gears");
init(argc, argv);
glutDisplayFunc(draw);

View File

@@ -176,6 +176,7 @@ So the angle is:
static int mono=0;
static int smooth=1;
static int anim=1;
static GLint WindH, WindW;
static GLfloat step=0;
static GLfloat seno;
@@ -660,13 +661,6 @@ static void draw_ico( void )
}
static void draw ( void ) {
static double t0 = -1.;
double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
if (t0 < 0.0)
t0 = t;
dt = t - t0;
t0 = t;
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glPushMatrix();
@@ -688,11 +682,19 @@ static void draw ( void ) {
glutSwapBuffers();
step += dt;
}
static void idle_( void )
{
static double t0 = -1.;
double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
if (t0 < 0.0)
t0 = t;
dt = t - t0;
t0 = t;
step += dt;
glutPostRedisplay();
}
@@ -718,11 +720,19 @@ static void key( unsigned char k, int x, int y )
case '4': object=4; break;
case '5': object=5; break;
case ' ': mono^=1; break;
case 13: smooth^=1; break;
case 's': smooth^=1; break;
case 'a':
anim^=1;
if (anim)
glutIdleFunc( idle_ );
else
glutIdleFunc(NULL);
break;
case 27:
exit(0);
}
pinit();
glutPostRedisplay();
}
static void pinit(void)

View File

@@ -1,210 +0,0 @@
/*
* GL_SGIS_pixel_texture demo
*
* Brian Paul
* 6 Apr 2000
*
* Copyright (C) 2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* 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.
*/
/*
* How this works:
* 1. We load the image into a 2D texture.
* 2. We generate a sequence of RGB images in which the R component
* is really the S texture coordinate and the G component is really
* the T texture coordinate.
* By warping the mapping from R to S and G to T we can get non-linear
* distortions.
* 3. Draw the warped image (a 2-D warping function) with pixel texgen
* enabled.
* 4. Loop over the warped images to animate.
*
* The pixel texgen extension can also be used to do color-space
* conversions. For example, we could convert YCR to RGB with a
* 3D texture map which takes YCR as the S,T,R texture coordinate and
* returns RGB texel values.
*
* You can use this extension in (at least) two ways:
* 1. glDrawPixels w/ color space conversion/warping
* 2. glDrawPixels to spatially warp another image in texture memory
*
* We're basically using glDrawPixels to draw a texture coordinate image.
*/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <GL/glut.h>
#include <GL/glext.h>
#include "readtex.h"
#define TEXTURE_FILE "../images/girl.rgb"
static int ImgWidth = 300, ImgHeight = 300;
#define FRAMES 20
static GLubyte *ImgData[FRAMES];
static GLint Frame = 0;
static GLboolean TextureFlag = GL_TRUE;
static void Display( void )
{
glClear( GL_COLOR_BUFFER_BIT );
if (TextureFlag) {
glEnable(GL_PIXEL_TEXTURE_SGIS);
glEnable(GL_TEXTURE_2D);
}
else {
glDisable(GL_PIXEL_TEXTURE_SGIS);
glDisable(GL_TEXTURE_2D);
}
glColor3f(1, 1, 1);
glRasterPos2f(10, 10);
glDrawPixels(ImgWidth, ImgHeight, GL_RGB, GL_UNSIGNED_BYTE, ImgData[Frame]);
glutSwapBuffers();
}
static void Reshape( int width, int height )
{
glViewport( 0, 0, width, height );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho(0, width, 0, height, -1, 1);
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
}
static void Key( unsigned char key, int x, int y )
{
(void) x;
(void) y;
switch (key) {
case ' ':
TextureFlag = !TextureFlag;
break;
case 27:
exit(0);
break;
}
glutPostRedisplay();
}
static void Idle(void)
{
Frame++;
if (Frame >= FRAMES)
Frame = 0;
glutPostRedisplay();
}
static GLubyte warp(GLfloat s, int frame)
{
static const GLfloat pi = 3.14159265;
static int halfFrame = FRAMES / 2;
GLfloat y, weight, v;
if (frame >= halfFrame)
frame = halfFrame - (frame - halfFrame);
y = sin(s * pi);
weight = (float) frame / (FRAMES-1);
v = y * (0.8 * weight + 0.2);
return (GLint) (v * 255.0F);
}
static void InitImage(void)
{
int i, j, frame;
for (frame = 0; frame < FRAMES; frame++) {
ImgData[frame] = (GLubyte *) malloc(ImgWidth * ImgHeight * 3);
for (i = 0; i < ImgHeight; i++) {
for (j = 0; j < ImgWidth; j++) {
GLubyte *pixel = ImgData[frame] + (i * ImgWidth + j) * 3;
pixel[0] = warp((float) j / (ImgWidth - 0), frame);
pixel[1] = warp((float) i / (ImgHeight - 0), frame);
pixel[2] = 0.0;
}
}
}
}
static void Init( int argc, char *argv[] )
{
const char *exten = (const char *) glGetString(GL_EXTENSIONS);
if (!strstr(exten, "GL_SGIS_pixel_texture")) {
printf("Sorry, GL_SGIS_pixel_texture not supported by this renderer.\n");
exit(1);
}
/* linear filtering looks nicer, but it's slower, since it's in software */
#if 1
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
#else
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
#endif
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
if (!LoadRGBMipmaps(TEXTURE_FILE, GL_RGB)) {
printf("Error: couldn't load texture image\n");
exit(1);
}
glClearColor(0.3, 0.3, 0.4, 1.0);
InitImage();
printf("Hit SPACE to toggle pixel texgen\n");
}
int main( int argc, char *argv[] )
{
glutInit( &argc, argv );
glutInitWindowSize( 330, 330 );
glutInitWindowPosition( 0, 0 );
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
glutCreateWindow(argv[0] );
Init( argc, argv );
glutKeyboardFunc( Key );
glutReshapeFunc( Reshape );
glutDisplayFunc( Display );
glutIdleFunc( Idle );
glutMainLoop();
return 0;
}

View File

@@ -146,10 +146,10 @@ static void printhelp(void)
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Help");
glRasterPos2i(60,390);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Togle Help");
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Toggle Help");
glRasterPos2i(60,360);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Togle Fog");
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Toggle Fog");
glRasterPos2i(60,330);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Arrow Keys - Rotate");
glRasterPos2i(60,300);

View File

@@ -269,13 +269,13 @@ printhelp(void)
printstring(GLUT_BITMAP_HELVETICA_18, "Help");
glRasterPos2i(60, 390);
printstring(GLUT_BITMAP_HELVETICA_12, "h - Togle Help");
printstring(GLUT_BITMAP_HELVETICA_12, "h - Toggle Help");
glRasterPos2i(60, 370);
printstring(GLUT_BITMAP_HELVETICA_12, "f - Togle Fog");
printstring(GLUT_BITMAP_HELVETICA_12, "f - Toggle Fog");
glRasterPos2i(60, 350);
printstring(GLUT_BITMAP_HELVETICA_12, "b - Togle Back face culling");
printstring(GLUT_BITMAP_HELVETICA_12, "b - Toggle Back face culling");
glRasterPos2i(60, 330);
printstring(GLUT_BITMAP_HELVETICA_12, "p - Togle Wire frame");
printstring(GLUT_BITMAP_HELVETICA_12, "p - Toggle Wire frame");
glRasterPos2i(60, 310);
printstring(GLUT_BITMAP_HELVETICA_12, "Arrow Keys - Rotate");
glRasterPos2i(60, 290);
@@ -286,7 +286,7 @@ printhelp(void)
glRasterPos2i(60, 250);
if (joyavailable)
printstring(GLUT_BITMAP_HELVETICA_12,
"j - Togle jostick control (Joystick control available)");
"j - Toggle jostick control (Joystick control available)");
else
printstring(GLUT_BITMAP_HELVETICA_12,
"(No Joystick control available)");
@@ -300,11 +300,11 @@ printhelp(void)
glRasterPos2i(60, 190);
printstring(GLUT_BITMAP_HELVETICA_12,
"1 - Togle the plane texture map window");
"1 - Toggle the plane texture map window");
glRasterPos2i(60, 170);
printstring(GLUT_BITMAP_HELVETICA_12,
"2 - Togle the sphere texture map window");
"2 - Toggle the sphere texture map window");
}
static GLboolean

View File

@@ -39,6 +39,10 @@ static GLenum ReadType = GL_UNSIGNED_BYTE;
#endif
#if 0
static GLenum ReadFormat = GL_RGB;
static GLenum ReadType = GL_UNSIGNED_BYTE;
#endif
#if 0
static GLenum ReadFormat = GL_RGB;
static GLenum ReadType = GL_UNSIGNED_SHORT_5_6_5;
#endif
#if 0
@@ -96,6 +100,45 @@ SetupPixelTransfer(GLboolean invert)
}
/**
* Exercise Pixel Pack parameters by reading the image in four pieces.
*/
static void
ComplexReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid *pixels)
{
const GLsizei width0 = width / 2;
const GLsizei width1 = width - width0;
const GLsizei height0 = height / 2;
const GLsizei height1 = height - height0;
glPixelStorei(GL_PACK_ROW_LENGTH, width);
/* lower-left quadrant */
glReadPixels(x, y, width0, height0, format, type, pixels);
/* lower-right quadrant */
glPixelStorei(GL_PACK_SKIP_PIXELS, width0);
glReadPixels(x + width0, y, width1, height0, format, type, pixels);
/* upper-left quadrant */
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
glPixelStorei(GL_PACK_SKIP_ROWS, height0);
glReadPixels(x, y + height0, width0, height1, format, type, pixels);
/* upper-right quadrant */
glPixelStorei(GL_PACK_SKIP_PIXELS, width0);
glPixelStorei(GL_PACK_SKIP_ROWS, height0);
glReadPixels(x + width0, y + height0, width1, height1, format, type, pixels);
/* restore defaults */
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
glPixelStorei(GL_PACK_SKIP_ROWS, 0);
glPixelStorei(GL_PACK_ROW_LENGTH, ImgWidth);
}
static void
Display( void )
{
@@ -111,8 +154,13 @@ Display( void )
glRasterPos2i(APosX, APosY);
glEnable(GL_DITHER);
SetupPixelTransfer(GL_FALSE);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
/* might try alignment=4 here for testing */
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
/* do readpixels, drawpixels */
glRasterPos2i(BPosX, 5);
PrintString("Read/DrawPixels");
@@ -138,8 +186,15 @@ Display( void )
else {
/* clear the temporary image to white (helpful for debugging */
memset(TempImage, 255, ImgWidth * ImgHeight * 4);
#if 1
glReadPixels(APosX, APosY, ImgWidth, ImgHeight,
ReadFormat, ReadType, TempImage);
(void) ComplexReadPixels;
#else
/* you might use this when debugging */
ComplexReadPixels(APosX, APosY, ImgWidth, ImgHeight,
ReadFormat, ReadType, TempImage);
#endif
}
glRasterPos2i(BPosX, BPosY);
glDisable(GL_DITHER);
@@ -253,14 +308,14 @@ Init( GLboolean ciMode )
printf("Loaded %d by %d image\n", ImgWidth, ImgHeight );
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelStorei(GL_UNPACK_ROW_LENGTH, ImgWidth);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glPixelStorei(GL_PACK_ROW_LENGTH, ImgWidth);
Reset();
TempImage = (GLubyte *) malloc(ImgWidth * ImgHeight * 4 * sizeof(GLubyte));
/* allocate an extra 1KB in case we're tinkering with pack alignment */
TempImage = (GLubyte *) malloc(ImgWidth * ImgHeight * 4 * sizeof(GLubyte)
+ 1000);
assert(TempImage);
}

View File

@@ -1,4 +1,3 @@
/*
* Demo of a reflective, texture-mapped surface with OpenGL.
* Brian Paul August 14, 1995 This file is in the public domain.
@@ -24,9 +23,11 @@
* Dirk Reiners (reiners@igd.fhg.de) made some modifications to this code.
* Mark Kilgard (April 1997)
* Brian Paul (April 2000 - added keyboard d/s options)
* Brian Paul (August 2005 - added multi window feature)
*/
#include <assert.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
@@ -36,40 +37,102 @@
#define DEG2RAD (3.14159/180.0)
#define TABLE_TEXTURE "../images/tile.rgb"
static GLint ImgWidth, ImgHeight;
static GLenum ImgFormat;
static GLubyte *Image = NULL;
#define MAX_OBJECTS 2
static GLint table_list;
static GLint objects_list[MAX_OBJECTS];
static GLfloat xrot, yrot;
static GLfloat spin;
static GLint Width = 400, Height = 300;
static GLenum ShowBuffer = GL_NONE;
static GLboolean Anim = GL_TRUE;
/* performance info */
static GLint T0 = 0;
static GLint Frames = 0;
#define INIT_WIDTH 400
#define INIT_HEIGHT 300
static void make_table( void )
struct window {
int id; /* returned by glutCreateWindow() */
int width, height;
GLboolean anim;
GLfloat xrot, yrot;
GLfloat spin;
GLenum showBuffer;
GLenum drawBuffer;
GLuint table_list;
GLuint objects_list[MAX_OBJECTS];
double t0;
struct window *next;
};
static struct window *FirstWindow = NULL;
static void
CreateWindow(void);
static struct window *
CurrentWindow(void)
{
int id = glutGetWindow();
struct window *w;
for (w = FirstWindow; w; w = w->next) {
if (w->id == id)
return w;
}
return NULL;
}
static GLboolean
AnyAnimating(void)
{
struct window *w;
for (w = FirstWindow; w; w = w->next) {
if (w->anim)
return 1;
}
return 0;
}
static void
KillWindow(struct window *w)
{
struct window *win, *prev = NULL;
for (win = FirstWindow; win; win = win->next) {
if (win == w) {
if (prev) {
prev->next = win->next;
}
else {
FirstWindow = win->next;
}
glutDestroyWindow(win->id);
win->next = NULL;
free(win);
return;
}
prev = win;
}
}
static void
KillAllWindows(void)
{
while (FirstWindow)
KillWindow(FirstWindow);
}
static GLuint
MakeTable(void)
{
static GLfloat table_mat[] = { 1.0, 1.0, 1.0, 0.6 };
static GLfloat gray[] = { 0.4, 0.4, 0.4, 1.0 };
GLuint table_list;
table_list = glGenLists(1);
glNewList( table_list, GL_COMPILE );
/* load table's texture */
glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, table_mat );
/* glMaterialfv( GL_FRONT, GL_EMISSION, gray );*/
/*glMaterialfv( GL_FRONT, GL_EMISSION, gray );*/
glMaterialfv( GL_FRONT, GL_DIFFUSE, table_mat );
glMaterialfv( GL_FRONT, GL_AMBIENT, gray );
@@ -88,10 +151,12 @@ static void make_table( void )
glDisable( GL_TEXTURE_2D );
glEndList();
return table_list;
}
static void make_objects( void )
static void
MakeObjects(GLuint *objects_list)
{
GLUquadricObj *q;
@@ -116,32 +181,36 @@ static void make_objects( void )
glMaterialfv( GL_FRONT, GL_EMISSION, black );
gluCylinder( q, 1.5, 0.0, 2.5, 15, 1 );
glEndList();
gluDeleteQuadric(q);
}
static void init( void )
static void
InitWindow(struct window *w)
{
make_table();
make_objects();
GLint imgWidth, imgHeight;
GLenum imgFormat;
GLubyte *image = NULL;
Image = LoadRGBImage( TABLE_TEXTURE, &ImgWidth, &ImgHeight, &ImgFormat );
if (!Image) {
w->table_list = MakeTable();
MakeObjects(w->objects_list);
image = LoadRGBImage( TABLE_TEXTURE, &imgWidth, &imgHeight, &imgFormat );
if (!image) {
printf("Couldn't read %s\n", TABLE_TEXTURE);
exit(0);
}
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, ImgWidth, ImgHeight,
ImgFormat, GL_UNSIGNED_BYTE, Image);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, imgWidth, imgHeight,
imgFormat, GL_UNSIGNED_BYTE, image);
free(image);
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
xrot = 30.0;
yrot = 50.0;
spin = 0.0;
glShadeModel( GL_FLAT );
glEnable( GL_LIGHT0 );
@@ -153,14 +222,15 @@ static void init( void )
}
static void reshape(int w, int h)
static void
Reshape(int width, int height)
{
struct window *w = CurrentWindow();
GLfloat yAspect = 2.5;
GLfloat xAspect = yAspect * (float) w / (float) h;
Width = w;
Height = h;
glViewport(0, 0, w, h);
GLfloat xAspect = yAspect * (float) width / (float) height;
w->width = width;
w->height = height;
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum( -xAspect, xAspect, -yAspect, yAspect, 10.0, 30.0 );
@@ -169,8 +239,8 @@ static void reshape(int w, int h)
}
static void draw_objects( GLfloat eyex, GLfloat eyey, GLfloat eyez )
static void
DrawObjects(struct window *w, GLfloat eyex, GLfloat eyey, GLfloat eyez)
{
(void) eyex;
(void) eyey;
@@ -178,62 +248,65 @@ static void draw_objects( GLfloat eyex, GLfloat eyey, GLfloat eyez )
#ifndef USE_ZBUFFER
if (eyex<0.5) {
#endif
glPushMatrix();
glTranslatef( 1.0, 1.5, 0.0 );
glRotatef( spin, 1.0, 0.5, 0.0 );
glRotatef( 0.5*spin, 0.0, 0.5, 1.0 );
glCallList( objects_list[0] );
glPopMatrix();
glPushMatrix();
glTranslatef( -1.0, 0.85+3.0*fabs( cos(0.01*spin) ), 0.0 );
glRotatef( 0.5*spin, 0.0, 0.5, 1.0 );
glRotatef( spin, 1.0, 0.5, 0.0 );
glScalef( 0.5, 0.5, 0.5 );
glCallList( objects_list[1] );
glPopMatrix();
glPushMatrix();
glTranslatef( 1.0, 1.5, 0.0 );
glRotatef( w->spin, 1.0, 0.5, 0.0 );
glRotatef( 0.5*w->spin, 0.0, 0.5, 1.0 );
glCallList( w->objects_list[0] );
glPopMatrix();
glPushMatrix();
glTranslatef( -1.0, 0.85+3.0*fabs( cos(0.01*w->spin) ), 0.0 );
glRotatef( 0.5*w->spin, 0.0, 0.5, 1.0 );
glRotatef( w->spin, 1.0, 0.5, 0.0 );
glScalef( 0.5, 0.5, 0.5 );
glCallList( w->objects_list[1] );
glPopMatrix();
#ifndef USE_ZBUFFER
}
else {
glPushMatrix();
glTranslatef( -1.0, 0.85+3.0*fabs( cos(0.01*spin) ), 0.0 );
glRotatef( 0.5*spin, 0.0, 0.5, 1.0 );
glRotatef( spin, 1.0, 0.5, 0.0 );
glScalef( 0.5, 0.5, 0.5 );
glCallList( objects_list[1] );
glPopMatrix();
glPushMatrix();
glTranslatef( -1.0, 0.85+3.0*fabs( cos(0.01*w->spin) ), 0.0 );
glRotatef( 0.5*w->spin, 0.0, 0.5, 1.0 );
glRotatef( w->spin, 1.0, 0.5, 0.0 );
glScalef( 0.5, 0.5, 0.5 );
glCallList( w->objects_list[1] );
glPopMatrix();
glPushMatrix();
glTranslatef( 1.0, 1.5, 0.0 );
glRotatef( spin, 1.0, 0.5, 0.0 );
glRotatef( 0.5*spin, 0.0, 0.5, 1.0 );
glCallList( objects_list[0] );
glPopMatrix();
glPushMatrix();
glTranslatef( 1.0, 1.5, 0.0 );
glRotatef( w->spin, 1.0, 0.5, 0.0 );
glRotatef( 0.5*w->spin, 0.0, 0.5, 1.0 );
glCallList( w->objects_list[0] );
glPopMatrix();
}
#endif
}
static void draw_table( void )
static void
DrawTable(struct window *w)
{
glCallList( table_list );
glCallList(w->table_list);
}
static void draw_scene( void )
static void
DrawWindow(void)
{
struct window *w = CurrentWindow();
static GLfloat light_pos[] = { 0.0, 20.0, 0.0, 1.0 };
GLfloat dist = 20.0;
GLfloat eyex, eyey, eyez;
glDrawBuffer(w->drawBuffer);
glReadBuffer(w->drawBuffer);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
eyex = dist * cos(yrot*DEG2RAD) * cos(xrot*DEG2RAD);
eyez = dist * sin(yrot*DEG2RAD) * cos(xrot*DEG2RAD);
eyey = dist * sin(xrot*DEG2RAD);
eyex = dist * cos(w->yrot * DEG2RAD) * cos(w->xrot * DEG2RAD);
eyez = dist * sin(w->yrot * DEG2RAD) * cos(w->xrot * DEG2RAD);
eyey = dist * sin(w->xrot * DEG2RAD);
/* view from top */
glPushMatrix();
@@ -247,7 +320,7 @@ static void draw_scene( void )
glStencilFunc( GL_ALWAYS, 1, 0xffffffff );
glStencilOp( GL_REPLACE, GL_REPLACE, GL_REPLACE );
glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
draw_table();
DrawTable(w);
glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
glEnable( GL_DEPTH_TEST );
@@ -264,7 +337,7 @@ static void draw_scene( void )
/* Reposition light in reflected space. */
glLightfv(GL_LIGHT0, GL_POSITION, light_pos);
draw_objects(eyex, eyey, eyez);
DrawObjects(w, eyex, eyey, eyez);
glPopMatrix();
/* Restore light's original unreflected position. */
@@ -277,128 +350,224 @@ static void draw_scene( void )
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
glEnable( GL_TEXTURE_2D );
draw_table();
DrawTable(w);
glDisable( GL_TEXTURE_2D );
glDisable( GL_BLEND );
/* view from top */
glPushMatrix();
draw_objects(eyex, eyey, eyez);
DrawObjects(w, eyex, eyey, eyez);
glPopMatrix();
glPopMatrix();
if (ShowBuffer == GL_DEPTH) {
ShowDepthBuffer(Width, Height, 1.0, 0.0);
if (w->showBuffer == GL_DEPTH) {
ShowDepthBuffer(w->width, w->height, 1.0, 0.0);
}
else if (ShowBuffer == GL_STENCIL) {
ShowStencilBuffer(Width, Height, 255.0, 0.0);
else if (w->showBuffer == GL_STENCIL) {
ShowStencilBuffer(w->width, w->height, 255.0, 0.0);
}
else if (ShowBuffer == GL_ALPHA) {
ShowAlphaBuffer(Width, Height);
else if (w->showBuffer == GL_ALPHA) {
ShowAlphaBuffer(w->width, w->height);
}
glutSwapBuffers();
if (w->drawBuffer == GL_BACK)
glutSwapBuffers();
else
glFinish();
/* calc/show frame rate */
{
static GLint t0 = 0;
static GLint frames = 0;
GLint t = glutGet(GLUT_ELAPSED_TIME);
Frames++;
if (t - T0 >= 5000) {
GLfloat seconds = (t - T0) / 1000.0;
GLfloat fps = Frames / seconds;
printf("%d frames in %g seconds = %g FPS\n", Frames, seconds, fps);
T0 = t;
Frames = 0;
frames++;
if (t - t0 >= 5000) {
GLfloat seconds = (t - t0) / 1000.0;
GLfloat fps = frames / seconds;
printf("%d frames in %g seconds = %g FPS\n", frames, seconds, fps);
t0 = t;
frames = 0;
}
}
}
static void idle( void )
static void
Idle(void)
{
static double t0 = -1.;
double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
if (t0 < 0.0)
t0 = t;
dt = t - t0;
t0 = t;
spin += 60.0 * dt;
yrot += 90.0 * dt;
glutPostRedisplay();
double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
struct window *w;
for (w = FirstWindow; w; w = w->next) {
if (w->anim) {
double dt;
if (w->t0 < 0.0)
w->t0 = t;
dt = t - w->t0;
w->t0 = t;
w->spin += 60.0 * dt;
w->yrot += 90.0 * dt;
assert(w->id);
glutSetWindow(w->id);
glutPostRedisplay();
}
}
}
static void Key( unsigned char key, int x, int y )
static void
UpdateIdleFunc(void)
{
if (AnyAnimating())
glutIdleFunc(Idle);
else
glutIdleFunc(NULL);
}
static void
Key(unsigned char key, int x, int y)
{
struct window *w = CurrentWindow();
(void) x;
(void) y;
if (key == 'd') {
ShowBuffer = GL_DEPTH;
}
else if (key == 's') {
ShowBuffer = GL_STENCIL;
}
else if (key == 'a') {
ShowBuffer = GL_ALPHA;
}
else if (key == ' ') {
Anim = !Anim;
if (Anim)
glutIdleFunc(idle);
switch (key) {
case 'd':
w->showBuffer = GL_DEPTH;
glutPostRedisplay();
break;
case 's':
w->showBuffer = GL_STENCIL;
glutPostRedisplay();
break;
case 'a':
w->showBuffer = GL_ALPHA;
glutPostRedisplay();
break;
case 'c':
w->showBuffer = GL_NONE;
glutPostRedisplay();
break;
case 'f':
if (w->drawBuffer == GL_FRONT)
w->drawBuffer = GL_BACK;
else
glutIdleFunc(NULL);
}
else if (key==27) {
w->drawBuffer = GL_FRONT;
glutPostRedisplay();
break;
case ' ':
w->anim = !w->anim;
w->t0 = -1;
UpdateIdleFunc();
glutPostRedisplay();
break;
case 'n':
CreateWindow();
UpdateIdleFunc();
break;
case 'k':
KillWindow(w);
if (FirstWindow == NULL)
exit(0);
break;
case 27:
KillAllWindows();
exit(0);
break;
default:
;
}
else {
ShowBuffer = GL_NONE;
}
glutPostRedisplay();
}
static void SpecialKey( int key, int x, int y )
static void
SpecialKey(int key, int x, int y)
{
struct window *w = CurrentWindow();
(void) x;
(void) y;
switch (key) {
case GLUT_KEY_UP:
xrot += 3.0;
if ( xrot > 85 )
xrot = 85;
w->xrot += 3.0;
if (w->xrot > 85)
w->xrot = 85;
break;
case GLUT_KEY_DOWN:
xrot -= 3.0;
if ( xrot < 5 )
xrot = 5;
w->xrot -= 3.0;
if (w->xrot < 5)
w->xrot = 5;
break;
case GLUT_KEY_LEFT:
yrot += 3.0;
w->yrot += 3.0;
break;
case GLUT_KEY_RIGHT:
yrot -= 3.0;
w->yrot -= 3.0;
break;
}
glutPostRedisplay();
}
int main( int argc, char *argv[] )
static void
CreateWindow(void)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL);
glutInitWindowPosition( 0, 0 );
glutInitWindowSize( Width, Height );
glutCreateWindow(argv[0]);
glutReshapeFunc(reshape);
glutDisplayFunc(draw_scene);
char title[1000];
struct window *w = (struct window *) calloc(1, sizeof(struct window));
glutInitWindowSize(INIT_WIDTH, INIT_HEIGHT);
w->id = glutCreateWindow("foo");
sprintf(title, "reflect window %d", w->id);
glutSetWindowTitle(title);
assert(w->id);
w->width = INIT_WIDTH;
w->height = INIT_HEIGHT;
w->anim = GL_TRUE;
w->xrot = 30.0;
w->yrot = 50.0;
w->spin = 0.0;
w->showBuffer = GL_NONE;
w->drawBuffer = GL_BACK;
InitWindow(w);
glutReshapeFunc(Reshape);
glutDisplayFunc(DrawWindow);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
glutIdleFunc(idle);
init();
/* insert at head of list */
w->next = FirstWindow;
FirstWindow = w;
}
static void
Usage(void)
{
printf("Keys:\n");
printf(" a - show alpha buffer\n");
printf(" d - show depth buffer\n");
printf(" s - show stencil buffer\n");
printf(" c - show color buffer\n");
printf(" f - toggle rendering to front/back color buffer\n");
printf(" n - create new window\n");
printf(" k - kill window\n");
printf(" SPACE - toggle animation\n");
printf(" ARROWS - rotate scene\n");
}
int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH |
GLUT_STENCIL | GLUT_ALPHA);
CreateWindow();
glutIdleFunc(Idle);
Usage();
glutMainLoop();
return 0;
}

269
progs/demos/singlebuffer.c Normal file
View File

@@ -0,0 +1,269 @@
/*
* Demo of (nearly) flicker-free drawing with a single color buffer.
*
* Basically, draw the scene into the Z buffer first, then draw the
* scene into the color buffer. Finally, "clear" the background by
* setting the fragments we didn't hit earlier.
*
* This won't work if you need blending. The technique works best
* when the scene is relatively simple and can be rendered quickly
* (i.e. with hardware), and when the objects don't move too much from
* one frame to the next.
*
* Brian Paul
* 25 August 2005
*
* See Mesa license for terms.
*/
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
#define FLICKER 0
#define NO_FLICKER 1
static GLint Mode = NO_FLICKER;
static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
static GLboolean Anim = GL_TRUE;
static GLfloat ClearColor[4] = {0.2, 0.2, 0.9, 0.0};
static GLfloat NearClip = 5.0, FarClip = 25.0, ViewDist = 7.0;
static double PrevTime = -1;
struct box {
float tx, ty, tz;
float rx, ry, rz, ra;
float sx, sy, sz;
float color[4];
};
#define NUM_BOXES 25
struct box Boxes[NUM_BOXES];
/* Return random float in [0,1] */
static float
Random(void)
{
int i = rand();
return (float) (i % 1000) / 1000.0;
}
static void
MakeBoxes(void)
{
int i;
for (i = 0; i < NUM_BOXES; i++) {
Boxes[i].tx = -1.0 + 2.0 * Random();
Boxes[i].ty = -1.0 + 2.0 * Random();
Boxes[i].tz = -1.0 + 2.0 * Random();
Boxes[i].sx = 0.1 + Random() * 0.4;
Boxes[i].sy = 0.1 + Random() * 0.4;
Boxes[i].sz = 0.1 + Random() * 0.4;
Boxes[i].rx = Random();
Boxes[i].ry = Random();
Boxes[i].rz = Random();
Boxes[i].ra = Random() * 360.0;
Boxes[i].color[0] = Random();
Boxes[i].color[1] = Random();
Boxes[i].color[2] = Random();
Boxes[i].color[3] = 1.0;
}
}
static void
DrawBoxes(void)
{
int i;
for (i = 0; i < NUM_BOXES; i++) {
glPushMatrix();
glTranslatef(Boxes[i].tx, Boxes[i].ty, Boxes[i].tz);
glRotatef(Boxes[i].ra, Boxes[i].rx, Boxes[i].ry, Boxes[i].rz);
glScalef(Boxes[i].sx, Boxes[i].sy, Boxes[i].sz);
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, Boxes[i].color);
glutSolidCube(1.0);
glPopMatrix();
}
}
static void
Idle(void)
{
double dt, t = glutGet(GLUT_ELAPSED_TIME) * 0.001;
if (PrevTime < 0.0)
PrevTime = t;
dt = t - PrevTime;
PrevTime = t;
Xrot += 16.0 * dt;
Yrot += 12.0 * dt;
Zrot += 8.0 * dt;
glutPostRedisplay();
}
static void
Draw(void)
{
if (Mode == FLICKER) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}
else {
/* don't clear color buffer */
glClear(GL_DEPTH_BUFFER_BIT);
/* update Z buffer only */
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
}
glPushMatrix();
glRotatef(Xrot, 1, 0, 0);
glRotatef(Yrot, 0, 1, 0);
glRotatef(Zrot, 0, 0, 1);
DrawBoxes();
if (Mode == NO_FLICKER) {
/* update color buffer now */
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
glDepthFunc(GL_EQUAL);
DrawBoxes();
glDepthFunc(GL_LESS);
}
glPopMatrix();
if (Mode == NO_FLICKER) {
/* "clear" the untouched pixels now.
* Note: if you comment-out this code you'll see something interesting.
*/
GLfloat x = FarClip / NearClip;
GLfloat z = -(FarClip - ViewDist - 1.0);
glDisable(GL_LIGHTING);
glColor4fv(ClearColor);
glBegin(GL_POLYGON);
glVertex3f(-x, -x, z);
glVertex3f( x, -x, z);
glVertex3f( x, x, z);
glVertex3f(-x, x, z);
glEnd();
glEnable(GL_LIGHTING);
}
/* This is where you'd normally do SwapBuffers */
glFinish();
}
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, NearClip, FarClip);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, -ViewDist);
}
static void
Key(unsigned char key, int x, int y)
{
(void) x;
(void) y;
switch (key) {
case 'a':
Anim = !Anim;
if (Anim)
glutIdleFunc(Idle);
else
glutIdleFunc(NULL);
PrevTime = -1;
break;
case 'm':
Mode = !Mode;
break;
case 'b':
MakeBoxes();
break;
case 27:
exit(0);
break;
}
glutPostRedisplay();
}
static void
SpecialKey(int key, int x, int y)
{
const GLfloat 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();
}
static void
Init(void)
{
glClearColor(ClearColor[0], ClearColor[1], ClearColor[2], ClearColor[3]);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_CULL_FACE);
glEnable(GL_NORMALIZE);
MakeBoxes();
}
static void
Usage(void)
{
printf("Keys:\n");
printf(" m - toggle drawing mode (flicker vs. no flicker)\n");
printf(" a - toggle animation\n");
printf(" b - generate new boxes\n");
printf(" ARROWS - rotate scene\n");
printf(" ESC - exit\n");
}
int
main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(800, 800);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH);
glutCreateWindow(argv[0]);
glutReshapeFunc(Reshape);
glutKeyboardFunc(Key);
glutSpecialFunc(SpecialKey);
glutDisplayFunc(Draw);
if (Anim)
glutIdleFunc(Idle);
Init();
Usage();
glutMainLoop();
return 0;
}

View File

@@ -33,6 +33,7 @@ static GLint Mode = 4;
static GLfloat Black[4] = {0.0, 0.0, 0.0, 1.0};
static GLfloat White[4] = {1.0, 1.0, 1.0, 1.0};
static GLboolean smooth = 1;
static void
Idle(void)
@@ -143,9 +144,16 @@ static void Key( unsigned char key, int x, int y )
(void) x;
(void) y;
switch (key) {
case 27:
exit(0);
break;
case 27:
exit(0);
break;
case 's':
smooth = !smooth;
if (smooth)
glShadeModel(GL_SMOOTH);
else
glShadeModel(GL_FLAT);
break;
}
glutPostRedisplay();
}
@@ -175,6 +183,8 @@ static void Init( void )
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, Black);
glShadeModel(GL_SMOOTH);
glMaterialfv(GL_FRONT, GL_DIFFUSE, White);
glMaterialfv(GL_FRONT, GL_SPECULAR, White);
glMaterialf(GL_FRONT, GL_SHININESS, 20.0);

View File

@@ -250,13 +250,13 @@ static void printhelp(void)
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Help");
glRasterPos2i(60,390);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Togle Help");
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Toggle Help");
glRasterPos2i(60,360);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"t - Togle Textures");
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"t - Toggle Textures");
glRasterPos2i(60,330);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Togle Fog");
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Toggle Fog");
glRasterPos2i(60,300);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"b - Togle Back face culling");
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"b - Toggle Back face culling");
glRasterPos2i(60,270);
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Arrow Keys - Rotate");
glRasterPos2i(60,240);
@@ -266,7 +266,7 @@ static void printhelp(void)
glRasterPos2i(60,180);
if(joyavailable)
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"j - Togle jostick control (Joystick control available)");
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"j - Toggle jostick control (Joystick control available)");
else
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"(No Joystick control available)");
}

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