diff options
Diffstat (limited to 'docs/devinfo.rst')
-rw-r--r-- | docs/devinfo.rst | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/docs/devinfo.rst b/docs/devinfo.rst new file mode 100644 index 0000000000..fbd34ac718 --- /dev/null +++ b/docs/devinfo.rst @@ -0,0 +1,80 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"><head> + <meta content="text/html; charset=utf-8" http-equiv="content-type"/> + <title>Development Notes</title> + <link href="mesa.css" rel="stylesheet" type="text/css"/> +</head> +<body> + + + + + + +<h1>Development Notes</h1> + + +<ul> +<li><a href="#extensions">Adding Extensions</a> +</li></ul> + +<h2 id="extensions">Adding Extensions</h2> + +<p> +To add a new GL extension to Mesa you have to do at least the following. + +</p><ul> +<li> + If glext.h doesn't define the extension, edit include/GL/gl.h and add + code like this: + <pre> #ifndef GL_EXT_the_extension_name + #define GL_EXT_the_extension_name 1 + /* declare the new enum tokens */ + /* prototype the new functions */ + /* TYPEDEFS for the new functions */ + #endif + </pre> +</li> +<li> + In the src/mapi/glapi/gen/ directory, add the new extension functions and + enums to the gl_API.xml file. + Then, a bunch of source files must be regenerated by executing the + corresponding Python scripts. +</li> +<li> + Add a new entry to the <code>gl_extensions</code> struct in mtypes.h + if the extension requires driver capabilities not already exposed by + another extension. +</li> +<li> + Add a new entry to the src/mesa/main/extensions_table.h file. +</li> +<li> + From this point, the best way to proceed is to find another extension, + similar to the new one, that's already implemented in Mesa and use it + as an example. +</li> +<li> + If the new extension adds new GL state, the functions in get.c, enable.c + and attrib.c will most likely require new code. +</li> +<li> + To determine if the new extension is active in the current context, + use the auto-generated _mesa_has_##name_str() function defined in + src/mesa/main/extensions.h. +</li> +<li> + The dispatch tests check_table.cpp and dispatch_sanity.cpp + should be updated with details about the new extensions functions. These + tests are run using 'make check' +</li> +</ul> +<p></p> + + + + + + + +</body></html>
\ No newline at end of file |