view codeDoc/jobs.txt @ 75:25cb7420dc91

A massive overhaul/rewrite for the gui's data management and setup code. Currently much that was working is broken. imde's classes are created in a static this instead of mde's main. gl setup code moved from gl/basic.d to gl/draw.d mergetag.DefaultData: now HIGH_LOW priority instead of LOW_HIGH. Reduced type list to only used types; small fix for indent function. setup.paths: new NoFileException thrown instead of MTFileIOException
author Diggory Hardy <diggory.hardy@gmail.com>
date Mon, 28 Jul 2008 18:17:48 +0100
parents cee261eba249
children 61ea26abe4dd
line wrap: on
line source

Copyright © 2007-2008 Diggory Hardy
License: GNU General Public License version 2 or later (see COPYING)


In progress:
Redesigning how widgets are created and receive their data.



To do (importance 0-5: 0 pointless, 1 no obvious impact now, 2 todo sometime, 3 useful, 4 important, 5 urgent):
Also see todo.txt and FIXME/NOTE comment marks.
4   struct (via tuple) support for parseTo/From. Requires rewriting with static if (is T : type).
4   Try to correlate names of option sections more. (i.e. symbol name, class name, name of i18n translation file)
4   Not guaranteed to catch up-click ending callback! Appears not to be a problem...
4   OutOfMemoryException is not currently checked for − it should be at least in critical places (use high-level catching of all errors?).
3   Fonts from Options. Get yMax for font not all glyphs on line?
3   glBindTexture not working with non-0 index (??)
3   on-event draw support (mde.events and GUI need to tell mde.mde)
3   Scheduler for drawing only windows which need redrawing.
3   Update scheduler as outlined in FIXME.
3   Windows building/compatibility (currently partial)
2   Remove ability to scan, then load, mergetag sections. Not so necessary with section creator callback and allows "sliding window" type partial buffering.
2   Options need a "level": simple options, for advanced users, for debugging only, etc.
2   Command-line options for paths to by-pass normal path finding functionality.
2   Consider replacing byte/short types with int type
2   File loading from compressed archives
2   gdc building/compatibility (wait for tango 0.99.5 release?)
2   Sensitivity adjustments. From es_a_out:
        /+ FIXME: revise.
        + I can't see any point using HALF_RANGE here, since it should really be used dependant on
        + the device attached, not the axis. Also what about adjusted range like X3's throttle?
        +
        + Sensitivity: is this the right place to adjust it? For things like throttle where the
        + ends of the interval must remain fixed, multiplying cannot be used to adjust and adjusting
        + the curve via a power function doesn't seem to be what we want. For things where the
        + end points needn't remain fixed, multiplying seems the right thing to do, but cannot be
        + done here since we don't know the end points can be changed.
        
        real y = x;
        uint conf = s.pop();
        enum : uint {
            HALF_RANGE	= 0x8000_0000u,
            SENSITIVITY	= 0x0080_0000u,
        }
        // Convert ranges into standard intervals (with or without reverse values)
        if (conf & HALF_RANGE) y = (y + 32767.0) * 1.5259254737998596e-05;	// range  0.0 - 1.0
        else y *= 3.0518509475997192e-05;					// range -1.0 - 1.0
        real a;
        if (conf & SENSITIVITY) a = s.pop();
        /+ When a global sensitivity is available (possibly only use if it's enabled)...
        else a = axis.sensitivity;
        y = sign(y) * pow(abs(y), a);		// sensitivity adjustment by a +/
        myThis.axis[cast(inputID) s.pop()] = y;
        +/
1   Mergetag binary support


Done (for mercurial log message):