Commit Graph

29 Commits

Author SHA1 Message Date
Brian Paul
96f216565e assorted fixes for server-side direct rendering (bug 5199) 2005-11-29 23:01:43 +00:00
Brian Paul
b4b040f7d8 just formatting clean-ups 2005-09-04 22:55:57 +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
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
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
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
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
Jon Smirl
fd4f7064e2 Fix up origin in dri/fb driver
Calculated fbBPP
2005-05-05 05:50:19 +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
Dave Airlie
8d12a6d537 fix some signed vs unsigned warnings 2005-02-14 09:27:38 +00:00
Adam Jackson
886280763c Bug #2428: #ifdef GLX_DIRECT_RENDERING in DRI drivers is pointless. 2005-01-31 23:40:05 +00:00
Keith Whitwell
8e5281fbe1 Simplify usage of drmHash functions and fix bug in
__driGarbageCollectDrawables which would get confused while walking
the hash values.
2005-01-12 21:04:03 +00:00
Alan Hourihane
38b317d508 uint*t -> u_int*t changes 2004-12-14 09:11:52 +00:00
Alan Hourihane
c69d60fbe4 Use union type to avoid strict aliasing problems. 2004-12-08 14:26:48 +00:00
Adam Jackson
3291de6d06 Bug #1713: Some rare libGL's have __glXFindDRIScreen defined but do not
export it via glXGetProcAddress.  These are not supported anymore, so print
an error message to that effect.
2004-10-27 17:50:09 +00:00
Eric Anholt
b292642de0 Fix dri_util.c build with new headers.
Submitted by:	John Lightsey <john@nixnuts.net>
2004-08-12 21:50:03 +00:00
Ian Romanick
8e77da1cd7 First phase of TLS work. At this point SPARC assembly dispatch is
broken, but it will be fixed "shortly."  This is pretty much the same
as the patch I sent to the dri-devel list on 22-Jun-2004.
2004-06-29 19:08:20 +00:00
Ian Romanick
7c46033130 Fix up some remaining include issues. Replace Xmalloc / Xfree with
_mesa_malloc / _mesa_free.  Replace Bool with GLboolean.
2004-06-07 21:23:12 +00:00
Jon Smirl
ffb36d57a5 Removed need for sarea.h, various touch ups to get rid of type mismatches. 2004-06-02 22:45:00 +00:00
Ian Romanick
1960182ece Require libGL API version 20040602, which actually exports
__glXGetDrawableInfo.  Make sure driCreateNewDrawable sets
pdraw->private to NULL for all failure paths.
2004-06-02 22:24:00 +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
c06b25594e Replace drmHandle, drmContext, drmDrawable, drmMagic and related types with
drm_handle_t, drm_context_t, drm_drawable_t, drm_magic_t.
2004-06-02 05:07:10 +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
ec032cb17b Fix a couple issues related to GetDrawableInfo. In the new DRI
interface, it must be available from libGL, and the the typedef in
dri_util.h was wrong.
2004-06-01 19:20:12 +00:00
Ian Romanick
0521ab46c1 Replace occurances of GLXDrawable and Drawable with __DRIid. 2004-06-01 17:06:09 +00:00
Ian Romanick
a249ad756f Fix a couple typos that prevent building with DRI_NEW_INTERFACE_ONLY. 2004-06-01 15:42:14 +00:00
Ian Romanick
8cdccc82d7 Define PFNGLXGETMSCRATEOMLPROC so that DRI will build without including
glxext.h.
2004-05-27 22:49:12 +00:00
Ian Romanick
b3981ab6e6 Move dri_util.[ch] and glcontextmodes.[ch] from dri_client to common. 2004-05-27 22:31:06 +00:00