summaryrefslogtreecommitdiff
path: root/docs/devinfo.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/devinfo.rst')
-rw-r--r--docs/devinfo.rst80
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