This means there's something inherently wrong between the "drawing" of the data and the receiving of the data by the video card (e.g. I think I'm CPU bound). I have a good idea as to what it might be. Which really sucks because it's a core piece of the system and it has been there since jesus hit puberty. But for now, I'll not be fixing it before release (by then your great grandkids will be reading this on holographic screens and 2D will be very dead and punishable by lethal pop music injection).
In other news I had the opportunity to play with Sandcastle (the Microsoft documentation generator) the other day. Fucking horrible. A complete and utter nightmare. Come on Microsoft, didn't you even LOOK at ndoc? Thankfully some poor sod has written a GUI front end for it. It's primitive, but it appears to do the job. I'm really hoping Microsoft is concentrating on getting the doc generator just right before giving it a fancy GUI. That, at least, is understandable (and is a welcome thing in this day and age where they throw shit at us to buy and expect us to be unpaid beta testers... oh yeah, speaking of unpaid beta testers, I almost forgot: FUCK YOU 2K, I HOPE YOU GO OUT OF BUSINESS.)
As usual, I hate this wretched planet and everyone in/on it.
-Yet more shit at 2 A.M.------------------------------------------------
So I broke down and continued work on my sprite editor tonight. I added a preferences screen to allow for some small sense of customization (like 3 options, big deal). Fixed a few broken things, broke some more I'm sure and added color animation.
The animation system in Gorgon is somewhat idiotic. I should know, I'm the idiot who created it. It works on the principle of time instead of frames. Whereas in traditional animation you make an animation that's 300 frames long at 30 frames/second you get 10 seconds of animation. Well, not in my convoluted shitball of a system. Oh no, you tell it:
myAnimation.Length = 30000;
Meaning you want an animation that's 30000 milliseconds long. Honestly, this seemed like a cool idea at the time. And it might still be, it's just not how I'm (or probably anyone else) used to doing things. So, with this in mind, you don't take a frame of walking animation and stick it at frame 2 at have it pop up at 0.03 seconds. No, you tell my bastardized system that you wish to stick a keyframe in at 30 milliseconds (my math may not be dead on, but you get the idea). This makes for some interesting approaches. But still, it's weird.
Another odd thing I've done is break an animation into a finite number of tracks. 3 to be exact. For 3 areas of an animatable object:
1. Transformation - Position, scaling, rotation, etc...
2. Color - Color obviously, and alpha masking/blending.
3. Frame switching - Traditional flipbook animation.
So you dump your key frames into these 'tracks' at any interval between 0 and the length of the animation (in milliseconds of course) and it'll interpolate (and depending on the type of data, it'll spline interpolate if requested).
So all I have left to implement in the sprite editor is the transformation track. How this will function is beyond me. As it is, the color section is ugly. Well, really, the whole thing is rather hideous.
The frame-track animation editor is set up such that you're shown a list of the sprites loaded into the sprite editor at the bottom of the screen. You move to the time index you wish (this will serve as the delay between two frames) and you drag and drop the frame you wish to switch to, or you hit the add button, rinse repeat.
The color-track animation editor is different. You set your base color (keyframe #0, all keyframes will derive from this), usually white. Then move to the next key frame time, chose your color + alpha from the picker, and click add. This isn't too bad now that I think about it.
Then it's just the transformation interface and then I'm -DONE-. Yes, DONE. That is to say, I'm -DONE- with tools and features for Gorgon. The next step is to write examples to show how the library should be used (there'll be some very shitty documentation as well. If I can get sandcastle to work for me, ndoc doesn't seem to like me or vista. I'm not sure which).
The -plan-, and I say -plan- because I'll probably end up changing my mind due to laziness is to make examples for C#, VB.NET and C++.
I've already done 2 examples, and of course these are just stupidly simple things to get running. I dread explaining how plug-ins will work. Or why I didn't bother to put a GUI in (seriously, that's too much work, maybe later).
I tried to get a video of the animation editor in action, but it appears fraps doesn't support swapchain render targets, only the primary buffer.