Commit Graph

737 Commits

Author SHA1 Message Date
Kristian Høgsberg f56b569e9a DRI2: Drop sarea, implement swap buffers in the X server. 2008-08-29 12:13:14 -04:00
Brian Paul 0423a39239 version 20 of glxext.h 2008-08-11 15:21:40 -06:00
Brian Paul 1a1079e066 version 41 of glext.h 2008-08-11 15:21:40 -06:00
Brian Paul 7536f39622 version 41 of glext.h 2008-08-11 15:12:42 -06:00
Brian Paul d80d0bb4d6 version 20 of glxext.h 2008-08-11 15:12:42 -06:00
Jeremy Huddleston 01ac4540f0 Apple: Some changes to fix compilation problems on OSX 2008-08-08 02:19:52 -07:00
Jonathan White b908ce93d4 egl: define vsnprintf 2008-08-06 16:42:38 -06:00
Jonathan White 240962faf7 egl: added snprintf, strcasecmp defines 2008-08-05 19:20:43 -06:00
Jonathan White b51584184a egl: typedef uint8_t for Windows 2008-08-05 08:12:38 -06:00
Jonathan White 73c3c4d1cc egl: typedef u_int32_t for Windows 2008-08-04 16:30:58 -06:00
Jonathan White e4f3770690 mesa: WinCE fixes 2008-07-16 16:11:38 -06:00
Blair Sadewitz 99233e483d additional preprocessor checks for stdint.h, inttypes.h, etc
The patches to glext.h and glxext.h have been sent to Khronos/bugzilla.
2008-07-15 17:30:51 -06:00
Blair Sadewitz b7c54945fe additional preprocessor checks for stdint.h, inttypes.h, etc
The patches to glext.h and glxext.h have been sent to Khronos/bugzilla.
2008-07-15 17:21:56 -06:00
Jonathan White f4caddd66f egl: updated GL_APIENTRY for Windows 2008-07-07 17:57:02 -06:00
José Fonseca 810888f656 gles: Don't define GLAPIENTRY here. 2008-06-30 12:49:32 +09:00
José Fonseca 0f9a1e43bc egl: WinCE doesn't have sys/types.h 2008-06-28 20:40:44 +09:00
Jonathan White b028b0cc53 egl: Windows updates to the platform.h files 2008-06-27 07:13:58 -06:00
José Fonseca 0b3d1b1ea4 mesa: WGL is not part of the WinCE API.
Although it would be interesting having the GDI winsys running on WinCE
several Windows GDI API functions and data structures are missing from
WinCE headers, making this far from a trivial endeavor.
2008-06-24 13:00:03 +09:00
José Fonseca 543bba6ee3 mesa: Don't include sys/types.h on WinCE.
We probably shouldn't be including sys/types.h at all, but let's leave that
for another time.
2008-06-24 11:00:01 +09:00
Alan Hourihane 6f7ed99b30 revert the DRI2 commits 2008-06-12 00:11:54 +01:00
Alan Hourihane 5e9fe62c70 add missed files for DRI2 merge 2008-06-11 15:25:35 +01:00
Alan Hourihane 4566b006f1 Bring in DRI2 changes 2008-06-11 14:10:08 +01:00
Jonathan White adaf0385e8 egl: updated EGLAPI for Windows 2008-06-06 15:13:59 -06:00
Jonathan White fe1a2d1fff egl: assorted fixes for Windows
Note that int32_t is typedef'd both in p_compiler.h and eglplatform.h
2008-06-05 15:07:03 -06:00
Brian Paul 1b386f4416 egl: new GLES/glplatform.h header 2008-06-04 10:27:22 -06:00
Brian Paul 3783994048 egl: updated GLES/gl.h and GLES/glext.h headers from Khronos.org 2008-06-04 10:17:56 -06:00
Brian Paul 0ebc94d236 egl: added OpenGL ES 2.0 header files in new GLES2 directory 2008-06-04 10:04:31 -06:00
Brian Paul df8f9a1690 egl: created GLES/egl.h backward-compatibility header (see comments inside) 2008-06-04 10:03:39 -06:00
Brian Paul 493f3a0032 egl: moved egl.h into EGL/ directory 2008-06-04 10:01:16 -06:00
Brian Paul 3e702fa881 egl: moved eglext.h into EGL/ directory 2008-06-04 10:00:32 -06:00
Brian Paul 0d8676822d remove old/unused foomesa.h example header 2008-06-04 09:33:02 -06:00
Brian Paul 645c131264 Assorted Windows fixes (Karl Schultz) 2008-05-29 10:42:02 -06:00
Brian Paul c6426c97b9 obsolete with EGL 1.4 2008-05-27 13:45:01 -06:00
Brian Paul 2fe1a55ab2 added EGL_MESA_screen_surface, EGL_MESA_copy_context extensions 2008-05-27 13:43:56 -06:00
Brian Paul 57da567dc5 added typedefs for X/Mesa 2008-05-27 13:43:34 -06:00
Brian Paul 0841f0a85e remove stray ! character 2008-05-27 13:43:17 -06:00
Brian Paul 704a5c7efb new eglplatform.h from Khronos.org (replaces GLES/egltypes.h) 2008-05-27 13:43:01 -06:00
Brian Paul 6438f6fdf7 new eglext.h from Khronos 2008-05-27 13:42:38 -06:00
Brian Paul d0f5d8c5a3 EGL 1.4 header from Khronos 2008-05-27 13:42:12 -06:00
José Fonseca 77ce568ff7 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
George Sapountzis d4510e53d8 drop GLcore 2008-05-23 22:48:55 +03:00
George Sapountzis 280bf89bd4 Add DRI driver that uses the mesa swrast module. 2008-05-20 16:03:44 -04:00
Brian Paul deceeca18d mesa: update/add newer GL ES headers 2008-05-07 08:47:55 -06:00
George Sapountzis 32a2a095f4 glcore: build from mesa 2008-04-23 11:12:30 +03:00
Kristian Høgsberg e82dd8c6e1 DRI interface changes and DRI2 direct rendering support.
Add DRI2 direct rendering support to libGL and add DRI2 client side
protocol code.  Extend the GLX 1.3 create drawable functions in
glx_pbuffer.c to call into the DRI driver when possible.

Introduce __DRIconfig, opaque struct that represents a DRI driver
configuration.  Get's rid of the open coded __GLcontextModes in the
DRI driver interface and the context modes create and destroy
functions that the loader was requires to provide.  glcore.h is no
longer part of the DRI driver interface.  The DRI config is GL binding
agnostic, that is, not specific to GLX, EGL or other bindings.

The core API is now also an extension, and the driver exports a list
of extensions as the symbol __driDriverExtensions, which the loader
must dlsym() for.  The list of extension will always include the DRI
core extension, which allows creating and manipulating DRI screens,
drawables and contexts.  The DRI legacy extension, when available,
provides alternative entry points for creating the DRI objects that
work with the XF86DRI infrastructure.

Change DRI2 client code to not use drm drawables or contexts.  We
never used drm_drawable_t's and the only use for drm_context_t was as
a unique identifier when taking the lock.  We now just allocate a
unique lock ID out of the DRILock sarea block.  Once we get rid of the
lock entirely, we can drop this hack.

Change the interface between dri_util.c and the drivers, so that the
drivers now export the DriverAPI struct as driDriverAPI instead of the
InitScreen entry point.  This lets us avoid dlsym()'ing for the DRI2
init screen function to see if DRI2 is supported by the driver.
2008-03-31 16:51:26 -04:00
Brian 4e6c2c4f85 updated to version 40 2008-03-25 08:12:19 -06:00
Brian 7048545c44 fix wrong values for GL_READ/DRAW_FRAMEBUFFER_BINDING_EXT tokens 2008-03-24 19:56:30 -06:00
Kristian Høgsberg dcbe215c01 DRI2: Make setTexBuffer take a __DRIdrawable instead of a BO handle.
This fixes a problem where texturing from the same Pixmap more than
once per batchbuffer would hang the DRI driver.  We just use the region
associated with the front left renderbuffer of the __DRIdrawable for
texturing, which avoids creating different regions for the same BO.

This change also make GLX_EXT_texture_from_pixmap work for direct
rendering, since tracking the __DRIdrawable -> BO handle now uses
the standard DRI2 event buffer.  Of course, DRI2 direct rendering
doesn't exist yet.

Finally, this commit bumps the DRI interface version again, accounting
for the change in the DRI_TEX_BUFFER extension and the change in
commit 0bba0e5be7 to pass in the
event buffer head index on drawable creation.
2008-03-09 21:28:04 -04:00
Kristian Høgsberg 0bba0e5be7 DRI2: Add event buffer head as an argument to driCreateNewDrawable().
The DRI driver needs to know where in the buffer to start reading.
2008-03-09 21:16:30 -04:00
Kristian Høgsberg 3d608c7a2d [dri2] Add tail pointer to reemitDrawableInfo callback.
When the DRI doesn't parse the event buffer for a while, the X server
may overwrite data that the driver didn't get a chance to look at.  The
reemitDrawableInfo callback requests that the X server reemit all info
for the specified drawable.  To make use of this, the drive needs to know
the new tail pointer so it know where to start reading from.
2008-03-03 19:16:20 -05:00
Kristian Høgsberg 6cb3f5c4d8 Use __DRIextension mechanism providing loader functionality to the driver.
Instead of passing in a fixed struct, the loader now passes in a list
of __DRIextension structs, to advertise the functionality it can provide
to the driver.  Each extension is individually versioned and can be
extended or phased out as the interface develops.
2008-02-29 15:05:39 -05:00
Kristian Høgsberg 16242a8007 Reduce the versioning madness required to create a DRI2 screen.
Right now the DRI2 screen constructor takes 3 different versions:
DRI, DDX and DRM.  This is mostly useless, though:

  DRI: The DRI driver doesn't actually care about the DRI protocol,
  it only talks to the loader, which in turn speaks DRI protocol.  Thus,
  the DRI protocol version is of not interest to the DRI driver, but it
  needs to know what functionality the loader provides.  At this point
  that's reflected in the __DRIinterfaceMethods struct and the
  internal_version integer.

  DDX: The DDX version number is essentially used to track extensions
  to the SAREA.  With DRI2 the SAREA consists of a number of versioned,
  self-describing blocks, so the DDX version is no longer interesting.

  DRM: We have the fd, lets just ask the kernel ourselves.
2008-02-29 15:05:39 -05:00
José Fonseca 60159c1b09 Convert crlf->lf line endings.
Windows/DOS users should enable core.autocrlf from now on:

  git config --global core.autocrlf true
2008-02-28 16:34:32 +09:00
José Fonseca 2573f0e5d6 Convert crlf->lf line endings.
Windows/DOS users should enable core.autocrlf from now on.
2008-02-28 15:53:13 +09:00
Kristian Høgsberg 6e8d21d72f Remove GetMSC DriverAPI function.
The DriverAPI is internal to the DRI drivers and GetDrawableMSC
obsoletes GetMSC.  Also, since the DRI driver interface has not yet
been released, just drop the getMSC function from the DRI interface
instead using the ABI preserving version mechanism.

Finally, using void pointer privates in the DRI interface is not allowed,
always pass the actual types around (__DRIdrawable in this case) to
enhance type safety and readability of the code.
2008-02-25 19:02:06 -05:00
Kristian Høgsberg 6d48779c7e Add TTM buffer object based texture from pixmap implementation.
Currently only implemented for intel hw.
2008-02-14 22:12:51 -05:00
Kristian Høgsberg 7da5705b09 Add new DRI2 infrastructure. 2008-02-14 17:56:42 -05:00
Michel Dänzer db2ec4502e Fix GLX build of xserver master branch.
The internal CreatePixmap API has been extended.
2007-11-05 10:03:26 +01:00
Jesse Barnes 38fdb47d26 Refactor and fix core vblank support
Consolidate support for synchronizing to and retrieving vblank counters.  Also
fix the core vblank code to return monotonic MSC counters, which are required
by some GLX extensions.  Adding support for multiple pipes to a low level
driver is fairly easy, the Intel 965 driver provides simple example code (see
intel_buffers.c:intelWindowMoved()).

The new code bumps the media stream counter extension version to 2 and adds a
new getDrawableMSC callback.  This callback takes a drawablePrivate pointer,
which is used to calculate the MSC value seen by clients based on the actual
vblank counter(s) returned from the kernel.  The new drawable private fields
are as follows:
  - vblSeq - used for tracking vblank counts for buffer swapping
  - vblFlags - flags (e.g. current pipe), updated by low level driver
  - msc_base - MSC counter from the last time the current pipe changed
  - vblank_base - kernel DRM vblank counter from the last time the pipe changed

Using the above variables, the core vblank code (in vblank.c) can calculate a
monotonic MSC value.  The low level DRI drivers are responsible for updating
the current pipe (by setting VBLANK_FLAG_SECONDARY for example in vblFlags)
along with msc_base and vblank_base whenever the pipe associated with a given
drawable changes (again, see intelWindowMoved for an example of this).

Drivers should fill in the GetDrawableMSC DriverAPIRec field to point to
driDrawableGetMSC32 and add code for pipe switching as outlined above to fully
support the new scheme.
2007-10-29 12:06:00 -07:00
George Sapountzis fe20ac2a6b Add GL_CORE_WINDOWS define to glcore.h
This is for consistency with glproto. The GL_CORE defines should probably be
dropped.

----

Author: Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de>
Date:   Mon Jun 21 13:35:05 2004 +0000

    Bug 782: Merge native OpenGL for Windows from CYGWIN branch
2007-10-14 20:11:00 +03:00
Kristian Høgsberg ccff0cb263 Add a version field to __DRIextension. 2007-10-11 11:30:39 -04:00
Kristian Høgsberg f29f0ae838 Move new texOffset extension to the new extension mechanism. 2007-10-11 11:28:38 -04:00
Kristian Høgsberg ecdb45cb29 Convert a left-over private void * to __DRIcontext *. 2007-10-11 11:27:51 -04:00
Kristian Høgsberg 594006d8b2 Remove now unused getProcAddress from DRIinterfaceMethods. 2007-10-11 11:25:37 -04:00
Kristian Høgsberg f968f67e62 Add a DRI_ReadDrawable marker extension to signal read drawable capability. 2007-10-11 11:22:55 -04:00
Kristian Høgsberg 106a6f29bb Move media stream counter entry points to new extension. 2007-10-11 11:21:29 -04:00
Kristian Høgsberg a7a0a2beb5 Move GLX_MESA_swap_frame_usage DRI entry points to the new mechanism. 2007-10-11 11:11:12 -04:00
Kristian Høgsberg 78a6aa57a0 Move GLX_MESA_allocate_memory related functions to new extension mechanism. 2007-10-11 11:09:57 -04:00
Kristian Høgsberg efaf90b03e Move swap_interval to new extension mechanism. 2007-10-10 19:14:10 -04:00
Kristian Høgsberg ac3e838fa7 Move the copySubBuffer extension over to the new mechanism. 2007-10-10 18:57:57 -04:00
Kristian Høgsberg f616a263a2 Implement new screen extension API.
This new API lets the loader examine DRI level extensions provided by the
driver in a forward compatible manner.

Much of the churn in the DRI interface is adding support for new
extensions or removing old, unused extensions.  This new extension
mechanism lets the loader query the extensions provided by the driver
and implement the extensions it knows about.  Deprecating extensions
is done by not exporting that extension in the list, which doesn't
require keeping old function pointers around to preserve ABI.
2007-10-10 18:47:22 -04:00
Kristian Høgsberg 295dc2d225 Stop passing in unused fbconfigs to createNewScreen. 2007-10-10 18:46:51 -04:00
Kristian Høgsberg 5987a03f99 Convert all DRI entrypoints to take pointers to __DRI* types.
The entrypoints take a mix of __DRIscreen * and void * (screen private)
arguments (similarly for contexts and drawables).  This patch does away
with passing the private void pointer and always only passes the fully
typed __DRIscreen pointer and always as the first argument.

This makes the interface more consistent and increases type safety, and
catches a bug where we would pass a screen private to DRIdrawable::getSBC.
2007-10-10 18:00:18 -04:00
Kristian Høgsberg aac367f48a Remove screenConfigs from __DRIscreen.
The screenConfigs field of __DRIscreen points back to the containing
__GLXscreenConfigs struct.  This is a serious abstraction violation; it
assumes that the loader is libGL and that there *is* a __GLXscreenConfigs
type in the loader.

Using the containerOf macro, we can get from the __DRIscreen pointer to
the containing __GLXscreenConfigs struct, at a place in the stack
where the above is a valid assumption.  Besides, the __DRI* structs shouldn't
hold state other than the private pointer.
2007-10-10 18:00:13 -04:00
Kristian Høgsberg fa72013ada Drop mostly unused __DRIid typedef. 2007-10-10 17:09:48 -04:00
Kristian Høgsberg 8ed5c7ca05 Drop createContext and destroyContext from DRIinterfaceMethods.
As for createDrawable and destroyDrawable, these functions immediately
upon entry to driCreateNewContext and immediately before exit from
driDestroyContext.  Instead of passing function pointers back and forth
just obtain the drm_context_t prior to calling DRIscreen::createNewContext
and pass it as a parameter.

This change also lets us keep the DRI context XID in the libGL loader only.
2007-10-10 17:09:16 -04:00
Kristian Høgsberg 4ff95e78e1 Drop createDrawable and destroyDrawable fron DRIinterfaceMethods.
All the DRI driver did was call the createDrawable callback immediately
upon entry to DRIscreen::createNewDrawable to get the drm_drawable_t.
We can just call that before calling into the DRI driver and pass the
returned drm_drawable_t as an argument to the DRI entry point.

Likewise for destroyDrawable.

Also, DRIdrawablePrivate::draw isn't used anywhere, and since the
driver no longer needs the XID of the drawable we can now drop that.
2007-10-10 17:07:26 -04:00
Kristian Høgsberg aceccda56b Drop __DRInativeDisplay and pass in __DRIscreen pointers instead.
Many DRI entry points took a __DRInativeDisplay pointer and a screen
index as arguments.  The only use for the native display pointer was to
pass it back to the loader when looking up the __DRIscreen for the given
screen index.

Instead, let's just pass in the __DRIscreen pointer directly, which
let's drop the __DRInativeDisplay type and the getScreen function.

The assumption is now that the loader will be able to retrieve context
from the __DRIscreen pointer when necessary.
2007-10-10 15:32:15 -04:00
Kristian Høgsberg b42152061c Add macros to generate CreateNewScreen entrypoint. 2007-10-05 00:12:30 -04:00
Kristian Høgsberg 4a22ae8d44 Remove XIDs from DRI interface (see #5714). 2007-10-05 00:09:32 -04:00
Brian ae0dd620fe Add glut_fcb.c to the build and update to fix warnings (see bug 12405) 2007-09-12 13:40:15 -06:00
Adam Jackson 1f8616e622 Unbreak Linux builds with -fvisibility=hidden. 2007-08-23 18:38:02 -04:00
Zhang 35f35294cd more Mingw32 fixes 2007-07-27 11:19:35 -06:00
Zhang 76fb808910 Fix a number of MINGW32 issues 2007-07-21 11:28:06 -06:00
Brian 66d0784f13 regenerated 2007-06-29 07:53:11 -06:00
zhang 37aca21129 a variety of fixes for MingW 2007-06-28 08:12:52 -06:00
Dave Airlie 9f39692e21 add glxtokens.h to xmesa_xf86.h as discussed on mailing list 2007-05-26 15:58:56 +10:00
Michel Dänzer 043d219b6d Add interfaces for overriding texture images with driver specific 'offsets'.
To be used by AIGLX for GLX_EXT_texture_from_pixmap without several
additional data copies.
2007-05-22 14:08:10 +02:00
Michel Dänzer 24d965fab5 Fix xserver build after recent XMesa changes.
Only build tested.
2007-05-22 13:56:30 +02:00
Brian 74519c4231 Disable (at least for now) PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC typedef.
If an app (like progs/samples/blendxor.c) includes both gl.h and glext.h
this typedef will get hit in both headers, causing an error.
Possibly work around by bringing GL_NV_geometry_program4 items into gl.h.
2007-05-19 08:56:15 -06:00
Brian 7ace7cfba4 added texture_from_pixmap functions 2007-05-19 08:30:31 -06:00
Ian Romanick 78bd2912f8 Add enums and functions for GL_{MESA,EXT}_texture_array. 2007-05-16 14:45:52 -07:00
Matthias Hopf 7868ab6617 add missing semicolon 2007-04-24 07:48:35 -06:00
Brian d59e6f233b import glxext.h version 19 2007-04-22 15:32:10 -06:00
Brian 967c1056d5 patch for Digital/Tru64 (bug 10635) - forwarded to OpenGL ARB as well 2007-04-13 09:55:35 -06:00
George Sapountzis 9f8373d5ca xmesa: drop unused XMesaPutImageHelper.
It could only be called from XMesaCopySubBuffer but this function is not used
by XFree86.

It seems that XMesaPutImageHelper would handle sub-images but never got
finished. Proper sub-image helpers should be written if need be.
2007-04-13 18:13:08 +03:00
George Sapountzis 50aaabc248 xmesa: export xmesa functions used by xfree86.
This uses xmesa.h as the GLcore interface and avoids adding an explicit GLcore
inteface which would not be a proper interface anyway.

It puts the declarations of the three functions specific for XMesa/XFree86 in
xmesa.h, we can push them down to xmesa_xf86.h if hiding behind XFree86Server
ifdef's is not enough.
2007-04-13 18:12:37 +03:00
George Sapountzis 487f7a73cb Remove SI imports/exports remnants. 2007-04-05 19:01:51 +03:00
George Sapountzis 7439a36785 Clean and update XMesa/XFree86 interface.
Drop XMesaSetVisualDisplay(), XMesaReset(), no longer used.

Add XMesaCopyContext() and move the GlxSetRenderTables() call for XGL within
XMesaForceCurrent(). This is to make xserver/GL/mesa/X/xf86glx.c unaware of
Mesa internals.

Also, clean some ifdef's to make it clear that USE_XSHM and XFree86Server are
mutually exclusive.

Lastly,
- move gcstruct.h from glxheader.h up to xmesa_xf86.h since it calls *gc->ops
- drop GL/glxtokens.h from xm_api|dd.c, GLX tokens come from glcore.h and are
  used irrelevant of XFree86.
2007-03-30 19:19:00 +03:00
Brian 344c3f7379 updated version with new Khronos license/copyright 2007-02-26 09:19:32 -07:00
Brian 45b1f169b4 updated to version 18 2007-02-20 08:40:55 -07:00
Brian c226e44437 updated to version 39 2007-02-20 08:38:29 -07:00
George Sapountzis c9b33ecd7c Drop old (pre-AIGLX) GLcore interface.
The old GLcore interface was replaced in Xorg 7.1 with the addition of AIGLX,
it is only used by DDX's which are known not to work with the new DIX glx code.

---

Bug 9285: misc glcore, xmesa cleanups

ACKed by Ian Romanick.
2007-01-26 18:31:00 +02:00
Eric Anholt c2b185cff8 Add reporting of damage by DRI drivers when the extension support is available.
With this, tools like ximagesrc in gstreamer correctly see updates from GL
rendering.  Support requires that the Xdamage library be current (but will be
disabled if not present) plus a new X Server with support for the new
XDamagePost request.  libGL now has a new interface version, and also links
against libXdamage and libXfixes to support it, but backwards compatibility
is retained.

Currently, all drivers report damage at SwapBuffers time through common code --
front buffer rendering doesn't result in damage being reported.  Also, the
damage is against the root window, as our drivers don't yet render to backing
store when they should (composited environments).
2007-01-05 18:23:57 -08:00
Brian Paul 744c3a367b get rid of meaningless XFree86LOADER test (bug 9144) 2006-11-27 16:50:10 +00:00
Brian Paul f7436f4c8a regenerate from gl.h 2006-11-16 16:13:55 +00:00
Brian Paul bb69d3af36 remove obsolete GL_MESA_trace stuff 2006-11-16 16:13:43 +00:00
Brian Paul 9e4a06a482 added 1.3/1.4 function mangling 2006-11-03 18:29:39 +00:00
Brian Paul 5ab9dcd761 return void instead of GLvoid for glClearDebugLogMESA(), glGetDebugLogMESA() 2006-10-09 16:09:30 +00:00
Brian Paul a3a640171f added #ifdef tests for Windows for int64_t, uint64_t 2006-09-16 04:10:56 +00:00
Jouk Jansen e08557ad8a OpenVMS compile support update
(previous commit did send the wrong file to the CVS)

 Modified Files:
 	Mesa/include/GL/vms_x_fix.h
2006-09-04 06:26:08 +00:00
Jouk Jansen 8cf3c85fd7 OpenVMS compile support update
Modified Files:
 	Mesa/include/GL/vms_x_fix.h
2006-09-04 06:22:39 +00:00
Brian Paul 7986cfbee0 remove extension defines/protos that are now in glext.h 2006-08-30 23:50:31 +00:00
Brian Paul 3cd07d2c39 latest version from OpenGL ARB 2006-08-30 23:46:41 +00:00
Ian Romanick 8c41c757fe Add support for GL_EXT_gpu_program_parameters. Any driver that enables
either GL_ARB_vertex_program or GL_ARB_fragment_program should enable this
extension as well.
2006-08-15 16:47:34 +00:00
Brian Paul 37b5b01217 s/GLvoid/void/ to fix gcc 4.2 issue (bug 7875) 2006-08-15 14:28:03 +00:00
Ian Romanick 32a9e9be0c Fix white-space problem in the prototype for glBlitFramebufferEXT that
prevented gl_mangle.h from picking it up.
2006-08-12 00:05:54 +00:00
Ian Romanick 56f349515c Convert comment header for __GLcontextModesRec to Doxygen style. 2006-08-11 22:26:49 +00:00
Sean D'Epagnier 7196cddb3a Added initial multisampling support to glfbdev driver.
Fully implemented glutGameMode, and added vidresize stubs to make
Added support for glutReshapeDisplay to change video mode but not lose
current mesa context.
implementation glut 5 complient.
Fixed many minor bugs
Updated docs
2006-08-10 10:21:17 +00:00
Brian Paul 4b1e6a4b58 remove stray text from previous check-in 2006-08-07 14:09:13 +00:00
Brian Paul 6c071592ab added GL_EXT_texture_sRGB 2006-08-03 03:23:05 +00:00
Michal Krol 90d7b9c9eb Move GL_MESA_shader_debug from glext.h to gl.h. 2006-08-01 16:06:08 +00:00
Brian Paul bd0bfd1dc2 reorder a few token definitions 2006-06-20 14:52:22 +00:00
Brian Paul c8f8fbecd7 remove const qualifier from glGenVertexArraysAPPLE() parameter 2006-06-12 19:47:44 +00:00
Brian Paul efbf170cfb updated GLX_EXT_texture_from_pixmap tokens (Dave Reveman) 2006-05-05 18:19:54 +00:00
David Reveman bea7fe57c1 Update to final EXT_tfp tokens 2006-05-02 08:54:39 +00:00
Adam Jackson 0157624557 Update function signatures for EXT_tfp entrypoints. 2006-05-01 22:25:18 +00:00
David Reveman ba23f699f0 FBConfig support for EXT_tfp 2006-04-11 12:21:48 +00:00
David Reveman ea2b711061 Add attrib_list to glXBindTexImageEXT 2006-04-11 12:19:06 +00:00
Daniel Borca 3a3e63dc4f DMesa now uses OSMesa as a back-end. 2006-03-31 20:53:12 +00:00
Brian Paul 9305cba6a7 bump version/date 2006-03-31 17:31:22 +00:00
Brian Paul f2ad1b60c0 Dave Reveman's patch for GLX_MESA_copy_sub_buffer support 2006-03-31 15:48:04 +00:00
Brian Paul 8ea3353ec3 XMesaDrawLine macro, not currently used 2006-03-30 14:20:26 +00:00
Karl Schultz a8c9ecfab0 Fixes from Brian 2006-03-30 07:53:15 +00:00
Brian Paul 4cbd16ed3f fix some PFNGL* typedefs 2006-03-26 05:09:03 +00:00
Brian Paul 9c32af5bb2 Add prototypes for GLX_MESA_swap_frame_usage, GLX_MESA_swap_control, and
GLX_EXT_texture_from_pixmap to silence warnings while compiling glxcmds.c
XXX: Need to add the new tokens for GLX_EXT_texture_from_pixmap!!!
2006-03-09 16:27:35 +00:00
Brian Paul a231097609 GL_EXT_framebuffer_blit tokens/functions 2006-03-01 01:54:59 +00:00
Brian Paul 44a2e96729 include inttypes.h if __osf__ defined (Randall Hand) 2006-02-23 15:36:39 +00:00
Brian Paul 640ef7f890 EGL 1.2 tokens/functions/etc. 2006-02-05 16:39:19 +00:00
Brian Paul f3cf636e57 WGL_ARB_extensions_string extension 2006-01-25 17:33:13 +00:00
Brian Paul b6d7a0c5a5 regenerate to pick up glGetQueryObject[u]i64vEXT funcs 2005-12-14 14:23:37 +00:00
Brian Paul 215aa20f5c rename eglShowSurfaceMESA, add EGL_SCREEN_POSITION_GRANULARITY_MESA 2005-12-10 17:54:36 +00:00
Brian Paul 5abc246f8d bump version number 2005-12-08 14:51:36 +00:00
Brian Paul 5262c225ba remove stray _ from GL[u]int64_EXT 2005-12-08 14:10:59 +00:00
Karl Schultz 4c3443b460 handle 64-bit types for Windows. 2005-12-08 04:32:02 +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
Brian Paul 96f216565e assorted fixes for server-side direct rendering (bug 5199) 2005-11-29 23:01:43 +00:00
Brian Paul ba3da6154c Added OSMesaColorClamp(), bug 4917 2005-11-12 18:44:29 +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 1b5d3d647e added GL_EXT_packed_depth_stencil 2005-09-28 02:28:00 +00:00
Brian Paul 2eef2eca87 Silence some warnings. 2005-09-11 01:45:04 +00:00
Karl Schultz f66084b834 Add support for memory contexts (Thomas Kaltofen). Cleanup compilation warnings. 2005-09-05 14:48:39 +00:00
Brian Paul c799e9ec24 added GL_EXT_timer_query token 2005-09-02 13:43:26 +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
Ian Romanick 68679d2b9e Remove '#if 0' block that was accidentally left in. 2005-07-28 20:55:26 +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
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 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
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
Brian Paul 23606a5704 updated to version 29 2005-06-21 14:30:46 +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
Brian Paul d45cb9a836 regenerate for latest glext.h 2005-06-08 02:18:22 +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
Brian Paul 198d6d05b0 remove eglQueryDisplayMESA() 2005-05-17 13:22:13 +00:00
Brian Paul 72a313902b EGL_MESA_copy_context stuff 2005-05-16 02:21:57 +00:00
Jon Smirl 1c606a9aa1 Add empty placeholder for eglCopyContextMESA 2005-05-14 14:54:38 +00:00
Jon Smirl 8110df4f61 Fix compiler warning about missing parameter list 2005-05-14 14:11: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
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
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 fe6ee3f5e6 EGLScreenMESA updates 2005-05-04 20:00:15 +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
Adam Jackson 8ff72e9723 Add preliminary EGL headers. 2005-03-04 20:18:55 +00:00
Dave Airlie 9bfd9582d4 bring over structs from Xorg glx.h to make Mesa glx.h the one true glx.h 2005-02-26 03:55:44 +00:00
Dave Airlie 24dcc6b6bf Add GLX_MESA_allocate_memory from Xorg glx.h 2005-02-26 03:51:17 +00:00
Dave Airlie dee1c795c2 add more functionality to miniglx for glitz 2005-02-20 10:46:34 +00:00
Brian Paul f321f16e83 fix non-Win32 definition of GLUTAPIENTRY, remove some cruft 2005-02-16 19:52:35 +00:00
Dave Airlie 09298228c6 add EnableExtension so r200 enables all its extensions, add mesa memory
extension entry points
2005-02-15 08:40:24 +00:00
Adam Jackson d084982240 Bug #2477: Make GLU/GLw/glut build properly even with -fvisibility=hidden. 2005-02-08 05:46:53 +00:00
Brian Paul cf69e051ce added GL_EXT_framebuffer_object enums/funcs. Remove when glext.h is updated 2005-02-08 03:45:08 +00:00
Ian Romanick 5b0dd89370 remove a bunch of temporary #defines, now that glext.h was updated 2005-01-26 19:19:06 +00:00
Brian Paul 1060211918 fix glGetString funniness 2005-01-21 16:35:56 +00:00
Brian Paul 14dee36fa7 glext.h version 26 2005-01-20 15:07:42 +00:00
Brian Paul 5255044c00 added a few OpenGL 2.0 tokens (temporary) 2005-01-16 19:40:15 +00:00
Brian Paul d7b837ad4a temporary prototypes for OpenGL 2.0 2005-01-12 04:06:55 +00:00
Brian Paul 85edffd5ff added GLX_NV_float_buffer 2005-01-04 14:48:14 +00:00
Brian Paul 81ca616e7e DirectFB driver (Claudio Ciccani) 2005-01-03 15:35:00 +00:00
Brian Paul 538541e300 VMS update 2004-12-17 14:48:00 +00:00
Daniel Borca 8b563fd4c5 added DMesaProc type to prevent gcc 3.4.3 warnings 2004-12-15 07:55:38 +00:00
Alan Hourihane 38b317d508 uint*t -> u_int*t changes 2004-12-14 09:11:52 +00:00
Alan Hourihane 8635615501 Check for some header defines before redefining functions. Silences warnings. 2004-12-08 12:59:15 +00:00
Brian Paul bf4c23d00f no need to include stddef.h anymore 2004-11-29 17:31:03 +00:00
Brian Paul 4d880987d2 Have OSMesaGetProcAddress() return new OSMESAproc typedef. 2004-11-27 16:24:39 +00:00
Brian Paul 2dd5b9edaa typedef GLUTproc, return it from glutGetProcAddress() 2004-11-27 04:54:48 +00:00
Brian Paul b653aaede5 minor APIENTRY clean-ups 2004-11-25 23:20:07 +00:00
Brian Paul 83889ffd97 Remove need for defining _MSC_VER when building Mesa for windows with
a non MS C compiler (MinGW).  (Gregor Anich)
2004-11-08 15:08:48 +00:00
Adam Jackson bcd8735546 Import sarea.h from Xorg, needed for client GLX code. 2004-10-25 20:52:11 +00:00
Ian Romanick 33899b7c35 Add support for OES_read_format. As soon as glext.h is updated with the
enums for this extension, the changes to gl.h can be removed.
2004-10-16 01:16:54 +00:00
Daniel Borca 65a9ca3381 bump version numbers to their real values 2004-10-12 06:43:57 +00:00
Brian Paul 788ff5b5c7 remove unused413 stuff, glDrawBuffersARB uses that slot now 2004-10-02 22:47:48 +00:00
Brian Paul be91a0be58 version bump 2004-09-27 22:40:31 +00:00
Brian Paul 4f1e3709de change include of glx_mangle.h to match other headers 2004-09-27 22:40:22 +00:00
Brian Paul d86d1483ac Another attempt at fixing name mangling and gl__unused413(). 2004-09-09 18:13:35 +00:00
Brian Paul a6c423d956 Silence gcc 3.4 warnings on ReactOS. Mostly unused var warnings. (patch 1015696) 2004-08-25 15:59:48 +00:00
Philippe Houdoin ac07d89fd3 Stupid me. I don't know why I moved the GLView.h here at first, but now I know why
I shouldn't:
Official BeOS GLView.h defines a virtual ErrorCallback(GLenum) method, assuming
a unsigned long GLenum.
But under Mesa, GLenum is unsigned int.
To keep binary compatibility, BeOS apps including Mesa GL/gl.h MUST include *our*
GLView.h, or linker will report a missing ErrorCallback(unsigned int) symbol. Glup.
2004-08-16 08:39:36 +00:00
Brian Paul 6ade8a36b6 version 6 from oss.sgi.com 2004-07-28 13:23:11 +00:00
Brian Paul 196fb036d6 version 24 from oss.sgi.com 2004-07-28 13:22:46 +00:00
Jon Smirl c2bffec91a Mesa-solo builds with these changes. There are still more fixups needed to
get individual drivers working again. This converts miniglx to the new
dri interface. Thanks to Erdi Chen for the new interface code.
2004-06-26 17:16:42 +00:00
Brian Paul e4fbcd0fca updated to version 23 2004-06-23 14:48:04 +00:00
Brian Paul 6b869d4fe1 Alexander Gottwald's patch for cygwin 2004-06-22 17:16:02 +00:00
Ian Romanick e1a7f31c2b Remove the rest of the need for glxclient.h and remove it from the tree. 2004-06-06 02:20:20 +00:00
Jon Smirl ba3d643c49 kill __driRegisterExtensions(), none of the functions did anything 2004-06-03 01:56:07 +00:00
Ian Romanick 749e842953 Replace Bool with GLboolean. 2004-06-02 20:46:03 +00:00
Ian Romanick 318aa84099 XF86DRIDestroyContext, XF86DRICreateDrawable, and
XF86DRIDestroyDrawable are all called directly from DRI drivers using
the new interface.  Therefore, prototypes, using available datatypes,
must be available in dri_interface.h.  Since the prototypes are
available there, xf86dri.h is no longer needed for
DRI_NEW_INTERFACE_ONLY builds.
2004-06-02 17:37:09 +00:00
Ian Romanick 60b0e12830 Convert 'Display *' to '__DRInativeDisplay *'. Only portions of the
interface that are not *strictly* part of the old interface were
changed.  Replace GetDrawableInfo type (dri_util.h) with
PFNGLXGETDRAWABLEINFOPROC (dri_interface.h).  Wrap __driCreateScreen
(in drivers that use the new interface) with '#ifndef
DRI_NEW_INTERFACE_ONLY'.
2004-06-01 20:24:59 +00:00
Ian Romanick fabe2b9ba3 Replace all occurances of XF86DRIClipRect (and related typedefs) with
drm_clip_rect_t.
2004-06-01 16:38:56 +00:00
Brian Paul 27eb8fa35a remove duplicate GLX_DRAWABLE_TYPE token, sorted tokens by enum value 2004-05-21 15:51:13 +00:00
Keith Whitwell 74d563cdfb Allow *_dri.so to build in Mesa tree with the 'linux-dri' target. 2004-04-29 12:23:39 +00:00
Brian Paul 199972cef0 move #define for GL_DOUBLE, to put enums in right order 2004-04-23 18:00:00 +00:00
Ian Romanick ab37fddbfd Correct the comments about when the bindContext3 / unbindContext3
interface was added.
2004-04-15 01:24:57 +00:00
Brian Paul 5eb921382f added extern "C" for C++ (bug 930933) 2004-04-09 17:18:22 +00:00
Brian Paul fda7215db3 rename class to c_class if using C++ (bug 922294) 2004-03-24 15:59:44 +00:00
Brian Paul 192c988c73 new DRI interface header 2004-03-22 23:31:29 +00:00
Brian Paul ff6031c209 remove some unneeded macros 2004-03-04 16:20:38 +00:00
Brian Paul 0adce8f7c7 upgraded to version 22 2004-02-24 03:01:27 +00:00
Ian Romanick 304d3aa9cb Refactored several variables out of XMesaVisual in favor of identical
fields in __GLcontextModes (the base type).  Removed the need to keep
the XMesaVisualInfo pointer when building inside the X-server.
2004-02-19 00:57:04 +00:00
Daniel Borca 22633805fa fixed back fxMesaGetCurrentContext to match MakeCurrent 2004-02-10 07:46:07 +00:00
Daniel Borca d039b43e30 added NUL driver for DMesa 2004-02-07 10:54:36 +00:00
Brian Paul 1f3d9eedad added GLU_INCOMPATIBLE_GL_VERSION 2004-02-06 01:17:30 +00:00
Brian Paul c2f739169e update function mangling and add comment about it to gl.h 2004-02-05 15:23:12 +00:00
Ian Romanick 74cf25b081 Missed this commit as part of the addition of
GL_EXT_blend_equation_separate / GL_ATI_blend_equation_separate.
2004-01-27 21:40:35 +00:00
Daniel Borca 3d06dc7581 accomodated new driver_func initialization
added DMesaGetProcAddress
some other minor fixes
updated documentation
2004-01-23 15:57:52 +00:00
Brian Paul cdde03efe2 remove stuff that's now in glext.h 2004-01-13 02:04:57 +00:00
Brian Paul c661cccf37 updated to version 21 with OpenGL 1.5 support 2004-01-13 01:54:03 +00:00
Brian Paul cf75101bba regenerated to support new 1.5 functions, etc. 2004-01-09 20:34:04 +00:00
Daniel Borca e9e98405e7 DMesa: removed MGA2064W driver
DMesa: added capability to query visuals
fxMesa: WGL_3DFX_gamma_control
fxMesa: minor fixes to interface (fxQueryHardware vs fxMesaSelect...)
2003-12-19 11:26:46 +00:00
Alan Hourihane 3b81ccd826 fix for C++ 2003-12-12 22:35:02 +00:00
Brian Paul c3fb2558f0 replace gl/mesa_wgl.h with GL/mesa_wgl.h (Simon Goodall) 2003-12-11 23:55:55 +00:00
Keith Whitwell e0ee87422b Quash annoying compiler warning 2003-12-11 15:47:43 +00:00
Keith Whitwell a9fc4b1b1c Remove dead file glcore-new.h 2003-12-11 13:10:20 +00:00
Alan Hourihane 18343db1d8 reverse Keith's 'XFree86Server' glue. 2003-12-08 16:57:21 +00:00
Keith Whitwell 3abad78e26 Can't include <stddef.h> when building XFree86 server - define
ptrdiff_t to int instead
2003-12-08 15:00:24 +00:00
Brian Paul a763123b35 glFBDev driver from embedded-2 branch.
Probably won't be actively used/maintained, but bring it to the trunk so
it doesn't get lost.
2003-12-06 17:20:10 +00:00
Brian Paul fde2b9750e basic API work for FBConfigs & Pbuffers 2003-12-06 17:17:42 +00:00