Removed normalizeTexCoords. It wasn't doing anything interesting anyway.
Fixed a performance issue affecting large selections of meshes.

Turns out fetching can be really slow if you do it often enough, and the iterating solution is actually faster. It will probably fire more faults, but in my test case, this solution works significantly faster.
Fixed two analyzer issues.
Getting color to floats is now a great deal easier.
Moved alpha test buffer to shared resources.

The buffer is the same for all contexts, so respecifying it in every one is just pointless.
Split the scene drawer into a scene drawer and a view drawer.

The new scene drawer is shared by all objects in a document; it uses the shared context for what little loading and unloading it does, and it manages display updates, selection (in the future) and so on. Right now, it also does the actual draw calls, because it is the one managing all the tiny objects, although the data around it is handled by other parties. The view drawer does most of what the scene drawer did, but does not handle the changing models loaded and observing them for changes. It does handle the changing of the transformation (but only its own), and it does handle changes of the light (since the camera position is part of the light state. Actually, one can make a good argument for changing that, come to think of it…).
Source list controlling is now in its own object, managed by the document.

The reason for this is that I want a centralized place that manages the selection, so I can easily distribute changes to it to everyone who needs it.
Added initial support for highlighting the bone structure

This required a lot of changes everywhere, although not as much as it
may look like.
Fix index bug that caused incorrect lines to be drawn everywhere, and make the points semi-transparent.
Update properly when the objects change.
Redraw if selection changes, and centralize all redraw notification sends.
Avoid observing twice.

awakeFromSnapshotEvent is even being called if the object is about to disappear (and after the observers have already been registered). That results in double registration, and since willTurnIntoFault unregisters only once, a registration remains, causing errors later on.
Store render parameters locally, so that they are reliably available at unload time.

A weird bug could be traced to the relationship not being present anymore in unload (in Undo contexts). So now use a local container, instead of using the relationship to get the render parameters.
Again, store bones, because removing observers is otherwise not reliable.

What this teaches us: Don't observe something that Core Data stores for you. Keep it around yourself until you unregister.
Reverse the order of the deallocations, so the view drawer can properly unregister.

If this isn't done, the view drawer may try to access the camera even though it may have gone already, through observing.
Moved methods that affect the whole document to GLLDocument.

This means that they are now available even though a render view is visible, which I think is much nicer.
Allow for extraneous underscores at the end.

There are models out there that seemingly passed through a program that truncates mesh names, resulting in mesh names that contain too few values (this is already accepted) and possibly end on an underscore (that was not accepted so far).
Add selection of bones (not yet completed)
Added UI for movement mode selection.
Properly deal with spaces and other special characters in paths.