Changeset 195

Show
Ignore:
Timestamp:
10/16/06 15:35:09 (2 years ago)
Author:
aldacron
Message:

[General]
* removed the commented workaround for the old DerelictFT forward reference bug from buildme.d
* added a variable at the top of buildme.d to easily configure the name of the Bud (defaults to "bud" now, whereas "build" used to be hardcoded). If you still prefer to call it "build", you can configure it so
[DerelictGL]
* added support for EXT_framebuffer_object and EXT_texture_filter_anisotropic from lindquist
* applied a patch from lindquist to add some missing declarations to gl14.d
[Docs]
* replaced references to "Build" and "Build Utility" with "Bud"
* made several corrections and tweaks

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/DerelictGL/derelict/opengl/gl14.d

    r165 r195  
    9090        wglBindFunc(cast(void**)&glWindowPos3s, "glWindowPos3s", lib); 
    9191        wglBindFunc(cast(void**)&glWindowPos3sv, "glWindowPos3sv", lib); 
     92        wglBindFunc(cast(void**)&glBlendEquation, "glBlendEquation", lib); 
     93        wglBindFunc(cast(void**)&glBlendColor, "glBlendColor", lib); 
    9294    } 
    9395    else 
     
    138140        bindFunc(glWindowPos3s)("glWindowPos3s", lib); 
    139141        bindFunc(glWindowPos3sv)("glWindowPos3sv", lib); 
     142        bindFunc(glBlendEquation)("glBlendEquation", lib); 
     143        bindFunc(glBlendColor)("glBlendColor", lib); 
    140144    } 
    141145} 
    142146 
    143 const GLuint GL_BLEND_DST_RGB           = 0x80C8; 
    144 const GLuint GL_BLEND_SRC_RGB           = 0x80C9; 
    145 const GLuint GL_BLEND_DST_ALPHA         = 0x80CA; 
    146 const GLuint GL_BLEND_SRC_ALPHA         = 0x80CB; 
    147 const GLuint GL_POINT_SIZE_MIN          = 0x8126; 
    148 const GLuint GL_POINT_SIZE_MAX          = 0x8127; 
    149 const GLuint GL_POINT_FADE_THRESHOLD_SIZE   = 0x8128; 
    150 const GLuint GL_POINT_DISTANCE_ATTENUATION  = 0x8129; 
    151 const GLuint GL_GENERATE_MIPMAP         = 0x8191; 
    152 const GLuint GL_GENERATE_MIPMAP_HINT        = 0x8192; 
    153 const GLuint GL_DEPTH_COMPONENT16       = 0x81A5; 
    154 const GLuint GL_DEPTH_COMPONENT24       = 0x81A6; 
    155 const GLuint GL_DEPTH_COMPONENT32       = 0x81A7; 
    156 const GLuint GL_MIRRORED_REPEAT         = 0x8370; 
    157 const GLuint GL_FOG_COORDINATE_SOURCE       = 0x8450; 
    158 const GLuint GL_FOG_COORDINATE          = 0x8451; 
    159 const GLuint GL_FRAGMENT_DEPTH          = 0x8452; 
    160 const GLuint GL_CURRENT_FOG_COORDINATE      = 0x8453; 
    161 const GLuint GL_FOG_COORDINATE_ARRAY_TYPE   = 0x8454; 
    162 const GLuint GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455; 
     147const GLuint GL_BLEND_DST_RGB                   = 0x80C8; 
     148const GLuint GL_BLEND_SRC_RGB                   = 0x80C9; 
     149const GLuint GL_BLEND_DST_ALPHA                 = 0x80CA; 
     150const GLuint GL_BLEND_SRC_ALPHA                 = 0x80CB; 
     151const GLuint GL_POINT_SIZE_MIN                  = 0x8126; 
     152const GLuint GL_POINT_SIZE_MAX                  = 0x8127; 
     153const GLuint GL_POINT_FADE_THRESHOLD_SIZE       = 0x8128; 
     154const GLuint GL_POINT_DISTANCE_ATTENUATION      = 0x8129; 
     155const GLuint GL_GENERATE_MIPMAP                 = 0x8191; 
     156const GLuint GL_GENERATE_MIPMAP_HINT            = 0x8192; 
     157const GLuint GL_DEPTH_COMPONENT16               = 0x81A5; 
     158const GLuint GL_DEPTH_COMPONENT24               = 0x81A6; 
     159const GLuint GL_DEPTH_COMPONENT32               = 0x81A7; 
     160const GLuint GL_MIRRORED_REPEAT                 = 0x8370; 
     161const GLuint GL_FOG_COORDINATE_SOURCE           = 0x8450; 
     162const GLuint GL_FOG_COORDINATE                  = 0x8451; 
     163const GLuint GL_FRAGMENT_DEPTH                  = 0x8452; 
     164const GLuint GL_CURRENT_FOG_COORDINATE          = 0x8453; 
     165const GLuint GL_FOG_COORDINATE_ARRAY_TYPE       = 0x8454; 
     166const GLuint GL_FOG_COORDINATE_ARRAY_STRIDE     = 0x8455; 
    163167const GLuint GL_FOG_COORDINATE_ARRAY_POINTER    = 0x8456; 
    164 const GLuint GL_FOG_COORDINATE_ARRAY        = 0x8457; 
    165 const GLuint GL_COLOR_SUM           = 0x8458; 
    166 const GLuint GL_CURRENT_SECONDARY_COLOR     = 0x8459; 
    167 const GLuint GL_SECONDARY_COLOR_ARRAY_SIZE  = 0x845A; 
    168 const GLuint GL_SECONDARY_COLOR_ARRAY_TYPE  = 0x845B; 
     168const GLuint GL_FOG_COORDINATE_ARRAY            = 0x8457; 
     169const GLuint GL_COLOR_SUM                       = 0x8458; 
     170const GLuint GL_CURRENT_SECONDARY_COLOR         = 0x8459; 
     171const GLuint GL_SECONDARY_COLOR_ARRAY_SIZE      = 0x845A; 
     172const GLuint GL_SECONDARY_COLOR_ARRAY_TYPE      = 0x845B; 
    169173const GLuint GL_SECONDARY_COLOR_ARRAY_STRIDE    = 0x845C; 
    170174const GLuint GL_SECONDARY_COLOR_ARRAY_POINTER   = 0x845D; 
    171 const GLuint GL_SECONDARY_COLOR_ARRAY       = 0x845E; 
    172 const GLuint GL_MAX_TEXTURE_LOD_BIAS        = 0x84FD; 
    173 const GLuint GL_TEXTURE_FILTER_CONTROL      = 0x8500; 
    174 const GLuint GL_TEXTURE_LOD_BIAS        = 0x8501; 
    175 const GLuint GL_INCR_WRAP           = 0x8507; 
    176 const GLuint GL_DECR_WRAP           = 0x8508; 
    177 const GLuint GL_TEXTURE_DEPTH_SIZE      = 0x884A; 
    178 const GLuint GL_DEPTH_TEXTURE_MODE      = 0x884B; 
    179 const GLuint GL_TEXTURE_COMPARE_MODE        = 0x884C; 
    180 const GLuint GL_TEXTURE_COMPARE_FUNC        = 0x884D; 
    181 const GLuint GL_COMPARE_R_TO_TEXTURE        = 0x884E; 
     175const GLuint GL_SECONDARY_COLOR_ARRAY           = 0x845E; 
     176const GLuint GL_MAX_TEXTURE_LOD_BIAS            = 0x84FD; 
     177const GLuint GL_TEXTURE_FILTER_CONTROL          = 0x8500; 
     178const GLuint GL_TEXTURE_LOD_BIAS                = 0x8501; 
     179const GLuint GL_INCR_WRAP                       = 0x8507; 
     180const GLuint GL_DECR_WRAP                       = 0x8508; 
     181const GLuint GL_TEXTURE_DEPTH_SIZE              = 0x884A; 
     182const GLuint GL_DEPTH_TEXTURE_MODE              = 0x884B; 
     183const GLuint GL_TEXTURE_COMPARE_MODE            = 0x884C; 
     184const GLuint GL_TEXTURE_COMPARE_FUNC            = 0x884D; 
     185const GLuint GL_COMPARE_R_TO_TEXTURE            = 0x884E; 
     186const GLuint GL_CONSTANT_COLOR                  = 0x8001; 
     187const GLuint GL_ONE_MINUS_CONSTANT_COLOR        = 0x8002; 
     188const GLuint GL_CONSTANT_ALPHA                  = 0x8003; 
     189const GLuint GL_ONE_MINUS_CONSTANT_ALPHA        = 0x8004; 
     190const GLuint GL_BLEND_COLOR                     = 0x8005; 
     191const GLuint GL_FUNC_ADD                        = 0x8006; 
     192const GLuint GL_MIN                             = 0x8007; 
     193const GLuint GL_MAX                             = 0x8008; 
     194const GLuint GL_BLEND_EQUATION                  = 0x8009; 
     195const GLuint GL_FUNC_SUBTRACT                   = 0x800A; 
     196const GLuint GL_FUNC_REVERSE_SUBTRACT           = 0x800B; 
    182197 
    183198version(Windows) 
     
    231246typedef GLvoid function(GLshort, GLshort, GLshort) pfglWindowPos3s; 
    232247typedef GLvoid function(GLshort*) pfglWindowPos3sv; 
     248typedef GLvoid function(GLclampf, GLclampf, GLclampf, GLclampf) pfglBlendColor; 
     249typedef GLvoid function(GLenum) pfglBlendEquation; 
    233250 
    234251pfglBlendFuncSeparate       glBlendFuncSeparate; 
     
    277294pfglWindowPos3s             glWindowPos3s; 
    278295pfglWindowPos3sv            glWindowPos3sv; 
     296pfglBlendColor              glBlendColor; 
     297pfglBlendEquation           glBlendEquation; 
  • trunk/buildme.d

    r162 r195  
    1616    Release 
    1717} 
     18 
     19// name of the build tool 
     20private static const char[] buildName = "bud"; 
    1821 
    1922// name of the text file found in each package directory 
     
    172175private void createBRF(char[] packageName, char[] path) 
    173176{ 
    174     writefln("Reading build arguments..."); 
     177    writefln("Reading build tool arguments..."); 
    175178     
    176179    // read the package forbuild file 
     
    218221    // call out to build with the name of the temporary build response file as an arg 
    219222    writefln("Building package..."); 
    220     int ret = system("build @temp"); 
     223    int ret = system(buildName ~ " @temp"); 
    221224    if(ret != 0) 
    222225    { 
     
    230233     
    231234} 
    232 /+ 
    233 // nasty hack - don't try this at home kids 
    234 private void buildDerelictFT() 
    235 { 
    236     char[] tempBuf = brfBuf; 
    237     mode = Mode.Release; 
    238     configTxt = configs[mode]; 
    239     buildBRFBuffer(); 
    240     buildPackage("DerelictFT"); 
    241     mode = Mode.Debug; 
    242     configTxt = configs[mode]; 
    243     brfBuf = tempBuf; 
    244 } 
    245 +/ 
    246235 
    247236private void scan() 
     
    251240     
    252241    char[][] list = listdir(".");    
    253     foreach(char[] filename; list) { 
    254          
    255 /+      /*  
    256             NOTE: Temporary work around. Adding the error check caused the 
    257             full build to stop every time it was attempted in Debug mode because 
    258             of the DMD bug that is affecting DerelictFT. The following code 
    259             block works around that issue until it is fixed (I tried adding 
    260             --debug to DerelictFT's forbuild.txt, to cancel it out, but that 
    261             didn't work). 
    262         */ 
    263         if(filename.cmp("DerelictFT") == 0 && mode == Mode.Debug) 
    264         { 
    265             buildDerelictFT(); 
    266             continue;  
    267         } 
    268 +/       
    269          
     242    foreach(char[] filename; list) {         
    270243        // if this filename is a directory, pass it to buildpackage for 
    271244        // further processing 
     
    274247            buildPackage(filename); 
    275248        } 
    276          
    277          
    278249    } 
    279250     
  • trunk/docs/build.html

    r158 r195  
    11<html lang="en"> 
    22<head> 
    3     <title>Building Derelict with Derek Parnell's Build Utility</title> 
     3    <title>Building Derelict with Derek Parnell's Bud</title> 
    44    <link rel="stylesheet" type="text/css" href="styles.css"> 
    55</head> 
     
    77<hr> 
    88<hr> 
    9 <h2 align="center">Building Derelict with Derek Parnell's Build Utility</h2> 
     9<h2 align="center">Building Derelict with Derek Parnell's Bud</h2> 
    1010<hr> 
    1111<hr> 
    1212<h3>Introduction</h3> 
    13 The Build utility, created and maintained by Derek Parnell, is an incredibly 
     13Bud, created and maintained by Derek Parnell, is an incredibly 
    1414useful tool. Feed it one D source module on the command line and it will automatically 
    1515spit out a library or an executable. It follows the import tree, and passes 
     
    1717line options can give you fine-tuned control over how the compilation process 
    1818goes. You can put special pragmas directly in your code to further control how 
    19 Build processes your source modules. 
     19Bud processes your source modules. 
    2020<p> 
    21 Build entirely eliminates the need for Makefiles. If you have ever maintained 
     21Bud entirely eliminates the need for Makefiles. If you have ever maintained 
    2222project Makefiles for multiple platforms, you will appreciate what that means. 
    23 Replacing Derelict's old Makefiles with a build system designed around Buil
     23Replacing Derelict's old Makefiles with a build system designed around Bu
    2424has had an amazing impact on package maintenance. If you want to compile Derelict 
    25 out of the box, separate from your project, you will need to have Build installed. 
     25out of the box, separate from your project, you will need to have Bud installed. 
    2626Anyone who insists on maintaining their own Makefiles instead is free to do so -  
    2727just don't bother submitting them to the Derelict maintainers. 
    2828</p> 
    2929 
    30 <h3>Getting Your Hands on Build</h3> 
    31 The latest version of Build may always be found at the 
     30<h3>Getting Your Hands on Bud</h3> 
     31The latest version of Bud may always be found at the 
    3232<a href="http://www.dsource.org/projects/build"> 
    3333Build Project Home Page</a>. You can read about the latest changes in the 
    34 <a href="http://www.dsource.org/forums/viewforum.php?f=52">Build Forum</a> 
     34<a href="http://www.dsource.org/forums/viewforum.php?f=52">Bud Forum</a> 
    3535(always the first post in the thread titled "Release Announcements" at the top 
    3636of the topic list). 
     
    3838<h3>Building the Derelict Libraries</h3> 
    3939It is quite possible to use Derelict without compiling the libraries. D's compiliation 
    40 speed combined with Build's ease of use makes it fast and simple to compile 
     40speed combined with Bud's ease of use makes it fast and simple to compile 
    4141even complex D applications. As long as the Derelict packages you use are on your 
    42 import path, then you are set. If you aren't using Build to build your application, 
     42import path, then you are set. If you aren't using Bud to build your application, 
    4343though, this approach is not recommended as every Derelict module would need to 
    4444be passed to the compiler manually. In the latter case, and for those who just 
     
    9292<h4>Build Configurations</h4> 
    9393Derelict includes support for two build configurations: release and debug. The default 
    94 compiler and Build switches for each configuration can be found in the 
     94compiler and Bud switches for each configuration can be found in the 
    9595files <tt>build_release.txt</tt> and <tt>build_debug.txt</tt>. You can specify 
    9696which configuration to use by passing either <tt>release</tt> or <tt>debug</tt> 
     
    120120<tt>build_common.txt</tt>, <tt>build_debug.txt</tt>, and <tt>build_release.txt</tt> 
    121121may all be edited to your preference. The rules for editing these files are the 
    122 same as those for editing <a href="http://build.dsource.org/response_file.html">Buil
     122same as those for editing <a href="http://build.dsource.org/response_file.html">Bu
    123123Response Files</a>, but there are some caveats. Because <tt>buildme.d</tt> automates 
    124124the build process, some assumptions are made. The first is that the output directory 
     
    126126the three files will have no effect. Second, the import paths for building each 
    127127package are set automatically. Third, the DerelictUtil package and other dependencies 
    128 are excluded from the compilation automatically via the -X Build option, so you 
     128are excluded from the compilation automatically via the -X Bud option, so you 
    129129need not do so yourself. 
    130130</p> 
     
    148148 
    149149<h3>Troubleshooting</h3> 
    150 If you have any problems building Derelict with the Build Utility, you may direct 
     150If you have any problems building Derelict with the Bud, you may direct 
    151151them to the  
    152152<a href="http://www.dsource.org/forums/viewforum.php?f=19&sid=d6f86cfb804d7c8727af1f58cd327d2c">Derelict Forums</a> 
  • trunk/docs/credit.html

    r149 r195  
    6161<li>??? (xicesky) - submitted a fix for a bug in DerelictSDLMixer</li> 
    6262<li>Trevor Parscal - reported conflicts between DerelictGL and external Win32 GDI bindings</li> 
    63 <li>Tomasz Stachowiak (h3r3tic) - reported conflicts with DerelictGL and glx (and multiple 
    64 other bug fixes since becoming a maintainer)</li> 
    65 <li>Eric Poggel (JoeCoder) - fixed a bug with buildme.d on Linux</li> 
     63<li>Eric Poggel (JoeCoder) - fixed a bug with buildme.d on Linux; reported some DerelictGL bugs</li> 
     64<li>??? (silvestre) - fixed a bug with OpenGL version handling</li> 
     65<li>??? (lindquist) - added some missing OpenGL 1.4 declarations</li> 
     66<li>??? (odeamus) - reported missing declarations in DerelictFT; reported typo in DerelictGL</li> 
    6667</ul> 
    6768</p><p> 
     
    7677DerelictSDLNet, and DerelictSDLttf. 
    7778<li>Eric Poggel (JoeCoder) - knocked up the initial version of the documentaion style sheet.</li> 
     79<li>??? (lindquist) - added support for some OpenGL extensions</li> 
    7880</ul> 
    7981</p><p> 
     
    9193<li>Brad Anderson (brad) - the guy who developed and manages Derelict's home, 
    9294dsource.org.</li> 
    93 <li>Derek Parnell (derek) - created the incredible Build utility, which allowed 
     95<li>Derek Parnell (derek) - created the incredible build utility, Bud, which allowed 
    9496Derelict to say "Cya" to Makefiles.</li> 
    9597<li>John Reimer (JJR) - his efforts on the Linux front, the long hours he has 
  • trunk/docs/derelictify.html

    r165 r195  
    1818<p> 
    1919Bugfixes and enhancements to existing code or documentation will almost always 
    20 be folded in. New packages, however, often will not be. If we were to accepte  
     20be folded in. New packages, however, often will not be. If we were to accept  
    2121any and all packages submitted, Derelict would quickly become bloated, unwieldy,  
    2222and difficult to maintain. New packages will most definitely be added over time, 
     
    4848that all types are declared in context-specific modules along with function 
    4949declarations and converted macros. Because of the number of headers in SDL, this 
    50 approach makes sense. DerelictGL (and most of the other Derelict packages), on  
     50approach makes sense. DerelictAL (and most of the other Derelict packages), on  
    5151the other hand, declares all types in a special types module, while functions  
    5252are declared separately. Generally, this is the approach you should take when 
     
    254254If you find this documentation confusing (I do, and I wrote it), then the source 
    255255is your best recourse. It's fairly self-explanatory. I recommend that you use  
    256 DerelictGL and DerelictSDL as examples, for consistency. 
     256DerelictAL and DerelictSDL as examples, for consistency. 
    257257</body> 
    258258</html> 
  • trunk/docs/index_a.html

    r158 r195  
    132132<ul> 
    133133<li>is the library useful for games or other multimedia applications?</li> 
    134 <li>is the library in widespread use or at least well-known it its domain?</li> 
     134<li>is the library in widespread use or at least well-known in its domain?</li> 
    135135<li>is the library too complex to easily port to D?</li> 
    136136<li>does the library abstract away cross-platform APIs?</li> 
     
    165165<li><a href="terms.html">Terminology</a></li> 
    166166<li><a href="loading.html">Loading/Unloading Shared Libraries</a></li> 
    167 <li><a href="selective.html">Selective Symbol Exceptions</a></li> 
    168 <li><a href="build.html">Derek Parnell's Build Utility</a></li> 
     167<li><a href="selective.html">Selective Symbol Loading</a></li> 
     168<li><a href="build.html">Building Derelict with Derek Parnell's Bud</a></li> 
    169169<li><a href="derelictify.html">Aldacron's Guide to Derelictification</a></li> 
    170170<li><a href="credit.html">Contributors</a></li> 
  • trunk/docs/loading.html

    r153 r195  
    3434is declared. The loader interface defines load methods that can be used to load 
    3535a shared library into memory, and an unload method that can be used to remove 
    36 the shared library from memory. That's all there is to it. 
     36the shared library from memory. 
    3737</p> 
    3838<h4>Loading</h4> 
     
    4141from the bound library can be used</span>. If you tried to use an OpenGL function 
    4242without first calling DerelictGL.load(), you would find yourself with an access 
    43 violation. When using manual loading, the library interface consists of function 
     43violation. When manually loading shared libraries, the library interface consists of function 
    4444pointers. The load method pulls the shared library in to memory and points all 
    4545of the function pointers to the proper memory location. Until then, the function 
    4646pointers are all null. 
    4747<p> 
    48 As an example, if you are using the DerelictGL, you would use the following 
     48As an example, if you were using DerelictGL, you would use the following 
    4949syntax to load the OpenGL shared library: 
    5050 
     
    5353</pre> 
    5454 
    55 From that point onward you will be able to use all OpenGL functions normally. 
    56 Simple, eh?  
     55From that point onward you would be able to use all OpenGL functions normally. 
    5756</p><p> 
    5857The load method accepts an optional shared library name string parameter that will 
     
    7170Sometimes, loads fail. There are several root causes for this, the end result 
    7271being either that the system couldn't find the shared library or one of the  
    73 functions Derelict tried expected to find in the library wasn't there. In either 
     72functions Derelict expected to find in the library wasn't there. In either 
    7473case, the load method will throw an exception. You can read more about Derelict 
    75 loading exceptions in the documentation for <a href="util.html">DerelictUtil</a>. 
     74exceptions in the documentation for <a href="util.html">DerelictUtil</a>. 
    7675You can also learn how to bypass some exceptions in the documentation on 
    7776Derelict's <a href="selective.html">selective loading system</a>. 
  • trunk/docs/selective.html

    r149 r195  
    11<html lang="en"> 
    22<head> 
    3     <title>Selective Symbol Exceptions</title> 
     3    <title>Selective Symbol Loading</title> 
    44    <link rel="stylesheet" type="text/css" href="styles.css"> 
    55</head> 
     
    77<hr> 
    88<hr> 
    9 <h2 align="center">Selective Symbol Exceptions</h2> 
     9<h2 align="center">Selective Symbol Loading</h2> 
    1010<hr> 
    1111<hr> 
  • trunk/docs/terms.html

    r158 r195  
    2222This term is a platform-agnostic way of describing a library which is dynamically 
    2323loaded at run time and can be used simultaneously by multiple programs. On Windows, 
    24 such libraries are referred to "Dynamic Link Libraries", or "DLLs", and have 
     24such libraries are referred to as "Dynamic Link Libraries", or "DLLs", and have 
    2525the .dll file extension. On Linux, such libraries are referred to as "Shared 
    2626Object Libraries" or "Shared Objects" and have the file extension of .so. 
     
    2828<p> 
    2929When this term is used in relation to Derelict, it can be considered to refer to 
    30 any of the above library formats. Anytime you need to refer to a specific 
     30any of the above library formats. When you need to refer to a specific 
    3131format, you should use the format name instead of the term "Shared Library". 
    3232</p> 
     
    3636files. On Windows, such libraries are called "Libraries" and have the extension 
    3737.lib. On Linux, such libraries are called "object archives", "archives",  
    38 "libraries", and several ofther terms, all of which have the file extension 
     38"libraries", and several other terms, all of which have the file extension 
    3939.a and usually have the prefix "lib" prepended to the file name. 
    4040 
    4141<p> 
    42 Static libraries are compiled into the application at compilation time, rather 
     42Static libraries are compiled into the application at compile time, rather 
    4343than being loaded at run time. Because the library is compiled into the executable, 
    4444no other executable can share the same compilation. 
     
    6565<h4>Static Linkage</h4> 
    6666The term "static linkage" refers to linking with a static library at compilation 
    67 time: .lib on Windows and .so on Linux. Technically speaking, an import library 
     67time: .lib on Windows and .a on Linux. Technically speaking, an import library 
    6868on Windows must be "statically linked", but the term is normally not applied to 
    6969import libraries. 
  • trunk/docs/toc.html

    r158 r195  
    1111<li><a target="view_frame" href="terms.html">Terminology</a></li> 
    1212<li><a target="view_frame" href="loading.html">Loading/Unloading Shared Libraries</a></li> 
    13 <li><a target="view_frame" href="selective.html">Selective Symbol Exceptions</a></li> 
    14 <li><a target="view_frame" href="build.html">Building Derelict with Derek Parnell's Build Utility</a></li> 
     13<li><a target="view_frame" href="selective.html">Selective Symbol Loading</a></li> 
     14<li><a target="view_frame" href="build.html">Building Derelict with Derek Parnell's Bud</a></li> 
    1515<li><a target="view_frame" href="derelictify.html">Aldacron's Guide to Derelictification</a></li> 
    1616<li><a target="view_frame" href="credit.html">Contributors</a></li>