summaryrefslogtreecommitdiffstats
path: root/src/mapi
Commit message (Collapse)AuthorAgeFilesLines
* mesa: clean-up _mesa_lookup_prim_by_nr()Brian Paul2011-01-201-16/+27
| | | | Remove the redundant public _mesa_prim_name[] array.
* glapi: Fix OpenGL and OpenGL ES interop.Chia-I Wu2011-01-205-23/+13201
| | | | | | | | | | | | | | | | | | | | | | | | When --enable-shared-glapi is specified, libGL will share libglapi with OpenGL ES instead of defining its own copy of glapi. This makes sure an app will get only one copy of glapi in its address space. The new option is disabled by default. When enabled, libGL and libglapi must be built from the same source tree and distributed together. This requirement comes from the fact that the dispatch offsets used by these libraries are re-assigned whenever GLAPI XMLs are changed. For GLX, indirect rendering for has_different_protocol() functions is tricky. A has_different_protocol() function is assigned only one dispatch offset, yet each entry point needs a different protocol opcode. It cannot be supported by the shared glapi. The fix to this is to make glXGetProcAddress handle such functions specially before calling _glapi_get_proc_address. Note that these files are automatically generated/re-generated src/glx/indirect.c src/glx/indirect.h src/mapi/glapi/glapi_mapi_tmp.h
* glapi: Fix OpenGL ES 1.1 and 2.0 interop.Chia-I Wu2011-01-203-100/+150
| | | | | | | | | | | Move _glapi_* symbols from libGLESv1_CM.so and libGLESv2.so to libglapi.so. This makes sure an app will get only one copy of glapi in its address space. Note that with this change, libGLES* and libglapi must be built from the same source tree and distributed together. This requirement comes from the fact that the dispatch offsets used by these libraries are re-assigned whenever GLAPI XMLs are changed.
* mapi: Add support for bridge mode.Chia-I Wu2011-01-208-33/+149
| | | | | | | | | | | In bridge mode, mapi no longer implements glapi.h. It becomes a user of glapi.h. Imagine an app that uses both libGL.so and libGLESv2.so. There will be two copies of glapi in the app's memory. It is possible that _glapi_get_dispatch does not return what _glapi_set_dispatch set, if they access different copies of the global variables. The solution to this situation to build either one of the libraries as a bridge to the other. Or build both libraries as bridges to another shared glapi library.
* mapi: u_current_table may be renamed.Chia-I Wu2011-01-204-5/+9
| | | | | | When MAPI_MODE_GLAPI is defined, u_current_table is renamed to _glapi_Dispatch or _glapi_tls_Dispatch. The ASM dispatchers should not use hardcoded name.
* mapi: Add a new glapi.h implementation.Chia-I Wu2011-01-203-3/+253
| | | | | | The new implementation is based on mapi. No new script is needed. As noted in sources.mk, the way to use it is to compile MAPI_GLAPI_SOURCES with MAPI_MODE_GLAPI defined.
* mapi: Fix glapi printers for gl_and_es_API.xml.Chia-I Wu2011-01-201-18/+503
| | | | | | | Fix GLAPIPrinter, ES1APIPrinter, and ES2APIPrinter to output files that are ready for compilation. Since gl_and_es_API.xml is based on gl_API.xml, the hidden and handcode attributes of entries have to be overridden for ES1APIPrinter and ES2APIPrinter.
* mapi: Allow prefix to be macro.Chia-I Wu2011-01-201-3/+7
| | | | | Treat prefix as macro when it is all uppercase. Generate PREFIX(name) instead of PREFIXname when it is a macro.
* mapi: Add the ability to parse GLAPI XML.Chia-I Wu2011-01-201-5/+76
| | | | | A prerequisite if we want to convert vgapi.csv to vgapi.xml, or to use mapi for glapi.
* glapi: Add gl_and_es_API.xml.Chia-I Wu2011-01-206-0/+1255
| | | | | | | gl_and_es_API.xml defines OpenGL ES 1.1 and 2.0 API as well as OpenGL API. It consists of gl_API.xml and the newly added es_EXT.xml, ARB_get_program_binary.xml, OES_single_precision.xml, and OES_fixed_point.xml.
* Add machine generated files to .gitignoretwied2011-01-192-0/+6
|
* glapi: regenerated filesBrian Paul2011-01-156-3229/+3429
|
* glapi: new entrypoint specs for GL_ARB_draw_buffers_blendBrian Paul2011-01-153-0/+41
|
* glapi: regenerated filesBrian Paul2011-01-158-3234/+3304
|
* glapi: GL_ARB_instanced_arrays supportBrian Paul2011-01-151-0/+1
|
* glapi: Regenerate for GL_ARB_ES2_compatibility.Eric Anholt2011-01-146-3146/+3386
|
* glapi: Add entrypoints and enums for GL_ARB_ES2_compatibility.Eric Anholt2011-01-143-0/+61
|
* scons: Ensure the OpenVG/EGL import libs are also prefixed with 'lib'.José Fonseca2011-01-131-0/+1
|
* scons: Build libOpenVG.dll & libEGL.dllJosé Fonseca2011-01-131-0/+3
| | | | | | But without creating liblibOpenVG or liblibEGL elsewhere. Thanks Chia-I Wu for pointing this out.
* scons: Fix build on systems without libOpenVG.soJosé Fonseca2011-01-121-4/+4
|
* scons: Updates for targets/egl-static.Chia-I Wu2011-01-121-1/+4
| | | | | | | | Update SConscripts to re-enable or add support for EGL on windows and x11 platforms respectively. targets/egl-gdi is replaced by targets/egl-static, where "-static" means pipe drivers and state trackers are linked to statically by egl_gallium, and egl_gallium is a built-in driver of libEGL. There is no more egl_gallium.dll on Windows.
* mapi: add missing newline in error messageBrian Paul2010-12-311-1/+1
|
* mapi: Move mapi_func typedef to entry.h.Chia-I Wu2010-12-244-4/+4
| | | | Make it clear that entry.h does not depend on stub.h.
* mapi: Define MAPI_TMP_DEFINES only when needed.Chia-I Wu2010-12-242-1/+1
| | | | | Since struct mapi_table is opaque, MAPI_TMP_DEFINES is not needed in table.h.
* mapi: Add and use entry_get_public.Chia-I Wu2010-12-247-16/+66
| | | | | | | | | | | Given a dispatch slot, entry_get_public returns the address of the corresponding public entry point. There may be more than one of them. But since they are all equivalent, it is fine to return any one of them. With entry_get_public, the address of any public entry point can be calculated at runtime when an assembly dispatcher is used. There is no need to have a mapping table in such case. This omits the unnecessary relocations from the binary.
* mapi: Make struct mapi_stub opaque.Chia-I Wu2010-12-244-15/+61
| | | | Add accessors for struct mapi_stub and make it opaque.
* mapi: Allow blocks to be disabled from the output.Chia-I Wu2010-12-241-47/+58
| | | | For example, a printer may ask not to output noop dispatch table.
* mapi: Fix hidden entries.Chia-I Wu2010-12-241-16/+55
| | | | | | | Hidden entries are just like normal entries except that they are not exported. Since it is not always possible to hide them, and two hidden aliases can share the same entry, the name of hidden aliases are mangled to '_dispatch_stub_<slot>'.
* mapi: Add "handcode" attribute to the script.Chia-I Wu2010-12-241-0/+22
| | | | | Entries with handcode attribute will be handled normally, except no entry point will be generated for them.
* mapi: Minor ABIPrinter refactoring.Chia-I Wu2010-12-241-21/+32
| | | | | | Split out function name generation from _c_decl to _c_function, and use it everywhere. Add an optional 'export' argument to _cdecl. It is prepended to the returned string.
* mapi: Store alias entry instead of alias name.Chia-I Wu2010-12-241-6/+8
| | | | An entry can hold more info than plain name.
* mapi: Remove unnecessary header.Vinson Lee2010-12-231-1/+0
|
* mapi: Clean up sources.mk.Chia-I Wu2010-12-186-27/+29
| | | | | | Rename MAPI_GLAPI_SOURCES to MAPI_UTIL_SOURCES. Rename macro MAPI_GLAPI_CURRENT to MAPI_MODE_UTIL. Update the comments to make it clear that mapi may be used in two ways and how.
* mapi: Clean up u_current interface.Chia-I Wu2010-12-189-56/+104
| | | | | Try not to use macros to make u_current.h appear to be glapi.h. Use u_current.h to implement glapi.h instead whenever possible.
* mapi: Add ABI-tag note.Chia-I Wu2010-12-182-0/+26
| | | | TLS requires kernel >= 2.4.20. Per glapi.
* mapi: Fix a warning in !THREADS build.Chia-I Wu2010-12-121-1/+1
| | | | It should be u_thread_self, not _glthread_GetID.
* mapi: Rewrite mapi_abi.py to get rid of preprocessor magic.Chia-I Wu2010-12-068-374/+326
| | | | | | | | The preprocessor magic in mapi was nothing but obfuscation. Rewrite mapi_abi.py to generate real C code. This commit removes the hack added in 43121f20866bb89e8dac92bd92ec85a943704b7e.
* mapi: Hack to avoid vgCreateFont being generated as vgCreateFontA.José Fonseca2010-12-021-0/+3
| | | | | Right fix is probably stop C-preprocessor abuse and stick 100% with scripted code generation.
* WIN32_THREADS -> WIN32José Fonseca2010-12-028-12/+11
| | | | | | | | | Fixes nasty bug where some parts of the code didn't define WIN32_THREADS and were using the integer mutex implementation, causing even confusion to the debuggers. And there is little interest of other thread implemenation on Win32 besides Win32 threads.
* st/vega: Update to latest headers.Chia-I Wu2010-12-011-12/+12
|
* drivers/x11: unifdef XFree86ServerAdam Jackson2010-11-291-12/+1
| | | | | | | This code was for the old GLcore build of the software rasteriser. The X server switched to a DRI driver for software indirect GLX long ago. Signed-off-by: Adam Jackson <[email protected]>
* mesa: hook up GL 3.x entrypointsBrian Paul2010-11-2112-4694/+5702
| | | | Fix up some details in the xml files and regenerate dispatch files.
* glapi: rename GL3.xml to GL3x.xml as it covers all GL 3.x versionsBrian Paul2010-11-211-0/+0
|
* mesa: upgrade to glext.h version 66Brian Paul2010-11-173-6/+6
| | | | | The type of the num/count parameter to glProgramParameters4[df]vNV() changed so some API dispatch code needed updates too.
* scons: Revamp how to specify targets to build.José Fonseca2010-11-012-71/+73
| | | | | | | | | | | | | | | | | | | | | | Use scons target and dependency system instead of ad-hoc options. Now is simply a matter of naming what to build. For example: scons libgl-xlib scons libgl-gdi scons graw-progs scons llvmpipe and so on. And there is also the possibility of scepcified subdirs, e.g. scons src/gallium/drivers If nothing is specified then everything will be build. There might be some rough corners over the next days. Please bare with me.
* Merge branch 'glapi-reorg'Chia-I Wu2010-10-2914-9177/+3249
|\ | | | | | | | | | | | | | | | | Conflicts: src/mapi/glapi/glapi_sparc.S src/mapi/glapi/glapi_x86.S src/mapi/glapi/glapidispatch.h src/mapi/glapi/glapioffsets.h src/mapi/glapi/glprocs.h
| * glapi: Merge glapioffsets.h into glapidispath.h.Chia-I Wu2010-10-274-1330/+22
| | | | | | | | | | | | | | | | | | Move defines in glapioffsets.h to glapidispatch.h. Rename _gloffset_FIRST_DYNAMIC to _gloffset_COUNT, which is equal to the number of entries in _glapi_table. Consistently use SET_by_offset, GET_by_offset, CALL_by_offset, and _gloffset_* to recursively define all SET/GET/CALL macros.
| * glapi: Do not use glapioffsets.h.Chia-I Wu2010-10-278-3117/+3105
| | | | | | | | | | | | | | glapioffsets.h exists for the same reason as glapidispatch.h does. It is of no use to glapi. This commit also drops the use of glapioffsets.h in glx as glx is considered an extension to glapi when it comes to defining public GL entries.
| * glapi: Move glapidispatch.h to core mesa.Chia-I Wu2010-10-273-4279/+6
| | | | | | | | It is a core mesa header, not a glapi header.
| * glapi: Do not use glapidispatch.h.Chia-I Wu2010-10-272-7/+5
| | | | | | | | | | | | | | | | | | glapidispatch.h exists so that core mesa (libmesa.a) can be built for DRI drivers or for non-DRI drivers as a compile time decision (whether IN_DRI_DRIVER is defined). It is of no use to glapi. This commit also drops the use of glapidispatch.h in glx and libgl-xlib as they are considered extensions to glapi when it comes to defining public GL entries.