Commit Graph

63 Commits

Author SHA1 Message Date
Ian Romanick
56f0c00f12 mesa: Remove target parameter from dd_function_table::UnmapBuffer
No driver used that parameter, and most drivers ended up with a bunch
of unused-parameter warnings because it was there.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
2011-08-23 14:52:08 -07:00
José Fonseca
7fbe020bbc mesa: Use appropriate call convention in VertexAttribI*v.
We were using typecasts because the functions pointers are polymorphic
in the second argument type, which.

Surprisingly the wrong calling convention didn't cause crashes on Windows,
but it was causing certain registers to be trashed in MSVC optimized
builds, when processing callists in the ClearView RC Flight Simulator.
2011-03-25 16:22:30 +00:00
Vinson Lee
db61b9ce39 mesa: Directly include mfeatures.h in files that perform feature tests. 2011-01-07 00:13:00 -08:00
Vinson Lee
0117da40cd mesa: Include mtypes.h in files that use gl_context struct.
Directly include mtypes.h if a file uses a gl_context struct. This
allows future removal of headers that are not strictly necessary but
indirectly include mtypes.h for a file.
2011-01-05 23:11:54 -08:00
Brian Paul
55dc971ded mesa: clean-up array element code
Remove unnecessary GLAPIENTRY keywords, update comments, re-indent.
2010-10-28 21:17:42 -06:00
Brian Paul
d916d81582 mesa: glArrayElement support for integer-valued arrays 2010-10-28 21:17:42 -06:00
Kristian Høgsberg
f9995b3075 Drop GLcontext typedef and use struct gl_context instead 2010-10-13 09:43:25 -04:00
Chia-I Wu
2cf44390d1 mesa: Move src/mesa/glapi/dispatch.h to mesa.
glapi/dispatch.h is a core Mesa header file.  Move the header file to
main/ to make this clear.  It also becomes clear after this change that
IN_DRI_DRIVER is only used in core Mesa to enable the remap table.
2010-02-25 21:32:58 +08:00
Chia-I Wu
6e99e6ddbf glapi: Always build libglapi.a.
This is made possible by making glapioffsets.h and glapidispatch.h
internal headers of glapi.  They should only be included indirectly
through dispatch.h by mesa.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
2009-10-23 09:10:04 -06:00
Chia-I Wu
80630d1fed mesa/main: New feature FEATURE_arrayelt.
This allows the removal of AEcontext.
2009-09-30 08:31:55 -06:00
Brian Paul
434ec3ada8 mesa: use _mesa_is_bufferobj() 2009-08-12 17:28:45 -06:00
Brian Paul
2a3d118a8e mesa: use Elements() for loop limit 2009-05-22 14:27:42 -06:00
Brian Paul
bf4dfd6563 mesa: minor code clean-up 2009-05-22 14:24:21 -06:00
Keith Whitwell
c07e274f44 mesa: add explict float casts 2008-09-21 10:31:15 -07:00
Brian
c223c6b663 Be more consistant with paths in #includes. Eventually, eliminate a bunch of -I flags. 2007-07-04 13:15:20 -06:00
Keith Whitwell
96c0a6de25 Prune incoming state to the atoms of interest. Hopefully this will
prevent driver-initiated statechanges in the middle of
DrawElements/DrawArrays from disturbing this code.
2006-11-22 15:27:58 +00:00
Keith Whitwell
b72fbcbe63 Another fix 2006-11-22 13:53:21 +00:00
Keith Whitwell
b1c102d37b More fixes, glean seems to run now. 2006-11-21 13:22:34 +00:00
Keith Whitwell
64920ed10a Fix more typos. 2006-11-21 10:50:01 +00:00
Keith Whitwell
479aca6bf1 Fix typos that meant vbos were never unmapped 2006-11-20 15:15:24 +00:00
Keith Whitwell
b979479721 Make sure vbo's are mapped before accessing their contents in
api_arrayelt.c.  Reported by Haihao Xiang.
2006-11-16 02:33:38 +00:00
Ian Romanick
ee34e6ef71 Add support for GL_APPLE_vertex_array_object. Several test programs
and demos are also added.

Adding basic support to drivers should be as easy as just enabling the
extension, though thorough test would also be required.
2006-06-12 16:26:29 +00:00
Brian Paul
095c6699f4 No longer alias generic vertex attribs with conventional attribs for GL_ARB_vertex_program. 2006-04-25 00:21:32 +00:00
Adam Jackson
823c581f7c Revert my change from 1.37 as being bogus (see ensuing list discussion for
rationale).
2006-03-30 19:23:38 +00:00
Brian Paul
eec33cc310 Init FogCoordFuncs[0..5] too, remove some unneeded #includes 2006-03-17 04:13:29 +00:00
Brian Paul
0f1d98c422 remove another test for IN_DRI_DRIVER 2006-03-17 04:10:03 +00:00
Adam Jackson
37e86254c1 Avoid a crash when the user has enabled glVertex{,Attrib}Pointer but hasn't
filled in a valid pointer for that attribute or vertex array.
2006-01-19 18:00:38 +00:00
Brian Paul
024b5896f0 use ADD_POINTERS macro instead of (uintptr_t) cast 2005-11-25 17:07:10 +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
Brian Paul
364ae78e69 remove fprintf() 2005-07-19 18:18:49 +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
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
Keith Whitwell
a0c8524924 mesa-main-0-NULL.patch from Jeff Muizelaar 2005-02-11 09:34:05 +00:00
Brian Paul
b5b8d22c4e Change the dispatch offsets for the VertexAttrib*NV functions so they don't
alias with the corresponding ARB functions.
GL_ARB_vertex_shader (and OpenGL 2.0's) VertexAttrib functions don't alias
with conventional vertex attributes, as GL_NV_vertex_program does.
So, the ARB and NV version of VertexAttrib need to be distinct.
2004-11-27 20:07:08 +00:00
Adam Jackson
94987beb2c Bug #1682: Mesa core code that gets linked into DRI drivers should never call
through the GL API directly, but should instead use the GL_CALL macro.
2004-10-24 02:05:40 +00:00
Ian Romanick
c1d455f582 Convert all calls using _glapi_Dispatch to use the new GL_CALL macro. 2004-05-27 00:03:53 +00:00
Brian Paul
f2f3350774 GL_DOUBLE doesn't follow GL_FLOAT, fix indexing (Keith Harrison) 2004-04-23 17:58:06 +00:00
Brian Paul
79b372b92a fix some warnings 2004-03-26 23:54:53 +00:00
Brian Paul
9d1ff8c1bb fix incorrect texcoord attribute index 2004-02-24 14:59:26 +00:00
Brian Paul
2615e81620 added some GLAPIENTRY keywords, minor clean-ups 2004-02-24 14:47:01 +00:00
Brian Paul
1e3d868ffb Yet another revision of _ae_update_state(). Issue both conventional AND
generic vertex attribute commands, ignoring ctx->VertexProgram.Enabled
since this function may be used during display list compilation.
2004-02-24 02:49:43 +00:00
Brian Paul
0d4393a38a Fix the problem found with UT after I had added support for glVertexAttrib.
The problem came from using the _glapi_Dispatch->VertexAttrib*fvNV pointers
since they can change from one glArrayElement call to the next.
2004-02-11 22:53:38 +00:00
Roland Scheidegger
faaf78aeb0 revert to version 1.18 for now to fix segfaults in some applications 2004-02-11 01:06:03 +00:00
Brian Paul
53ad036972 Restore some of the previous code for handling conventional vertex attributes
more efficiently.
Remove switches/conditionals from vertex attribute wrappers.
glMultiTexCoord is implemented in terms of glVertexAttrib.
2004-02-09 00:24:48 +00:00
Brian Paul
0aa8a1062a Updated to handle generic vertex attributes accessed vi glArrayElement().
In fact, handle all conventional vertex attributes in terms of generic
attributes (execept for edge flags and color indexes).
2004-02-08 02:03:41 +00:00
Karl Schultz
b72902e061 Add GLAPIENTRY function decorations for correct operation on Windows. 2004-01-28 22:24:12 +00:00
Karl Schultz
d6745697b6 Add missing GLAPIENTRY 2003-12-04 20:23:44 +00:00
Keith Whitwell
ae0eaf93e0 Merge vtx-0-2-branch 2003-11-24 15:23:18 +00:00
Brian Paul
57d882b684 GL_ARB_vertex_buffer_object working now, at least for non-indexed
vertex arrays.
2003-09-17 16:06:49 +00:00
Ian Romanick
9ac51f57ef Removed all RCS / CVS tags (Id, Header, Date, etc.) from everything. 2003-06-05 00:50:18 +00:00