view codeDoc/jobs.txt @ 88:01f4f5f1acc9

Changes to init and to allow compiling with gdc. Tweaked init code to allow using circular iterators (disabled until my patch makes it into tango). Changes to allow compiling with gdc. Building is successful and unittests complete, but in my experience a SIGSEGV occurs within SDL.
author Diggory Hardy <diggory.hardy@gmail.com>
date Mon, 29 Sep 2008 12:09:44 +0100
parents 2212285f714c
children 97e6dce08037
line wrap: on
line source

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


In progress:



Bugs:
Sometimes nothing is drawn until a resize, and fonts are blocks? External bug?



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   Why does mde.events need to be imported before mde.setup.Init to make fonts display properly? Analysis of static CTORs doesn't seem to have helped. Could be to do with order init functions are run in? Crash in threaded mode.
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   Use of dtors - don't rely on them? Or what happens when init throws during creation - relying on undefined behaviour.
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) - tango/sys/win32/SpecialPath.d
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):