tracediff: Don't highlight differences if the call nos are actually the same.
retrace: Allow multiple levels of debugging checks.
d3dretrace: Enable D3D9D when additional debug is requested.
d3dretrace: Terminate when CreateDevice fails.

Like we do for D3D10+.
d3dretrace: Force windowed mode on D3D9 traces.

Because there is no guarantee that the display mode is available.
gui: respect the alpha channel in surfaces

We weren't rendering any background which meant that surfaces
that were fully transparent would just show garbage that was
underneath. Lets make sure that the widget has a painted background
instead of garbage underneath.
cmake: Don't use bundled stdint.h for recent MSVC versions.
msinttypes: Update to latest version.
msinttypes: Remove stdbool.h

Not part of msinttypes and never used by us.
cli: Ensure variable is initialized.
Avoid unsafe cast.
cmake: Dump a message for each DirectX API found.
Remove githalytics.com snippet from the readme.

Doesn't do anything useful, now that github is serving the URL as a
static image from *.githubusercontent.com , and GitHub now provides some
stats.
tracediff: Don't crash if less is not present.
eglretrace: Support GL_OES_surfaceless_context by creating a dummy drawable.

Should fix issue #248.
qapitrace: issue #218 crashes on glPopDebugGroup

Problem:
dereferencing a NULL pointer.

Reason:
As mentioned in the issue description, a glPushDebugGroup and
glPopDebugGroup pair were in two different frames. The
TraceLoader:fetchFrameContents() function assumes they're in the
same frame and starts a new "groups" stack for each frame fetch.
On encountering a CALL_FLAG_MARKER_POP call, does

    groups.top()->finishedAddingChildren();

when in fact groups is empty and is dereferencing a NULL pointer.

In the other sample trace (sample-effects.trace) all glPush/Pop pairs
were in the same frame but one frame had an extra glPopDebugGroup
causing the same error.

Fix:
Add a groups.count() check before dereferencing groups.top()

Caveats:
Any unpaired glPopDebugGroup calls will be listed as regular gl calls.
Any unpaired glPushDebugGroup calls will end with the frame end.

Tested both sample crash traces; they no longer crash.
(apitrace-tests doesn't apply for testing this fix)

Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
qapitrace: arrow-key selected Call is obstructed

If the Frame at the bottom of the current view is expanded and
the down arrow-key is used to select the first Call in the Frame
then the Details View window that pops up obstructs the Call.

NOTE: If the first Call is instead selected with a mouse-click
      then the Call appropriately scrolls into view

Not a big deal but disconcerting.

DIRECTIONS
1) Select and expand the Frame at the bottom of the current view
2) Use the down arrow-key to move to the first Call in the Frame

FIX
In selection callback for Call (MainWindow::callItemSelected) add
    m_ui.callView->scrollTo(index)
after the Details View window is shown

TESTING
Manual testing.

Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
Tag a new release 5.0.

There are still many outstanding patches / pull requests that deserve to
be in this release.  But instead of delaying a release any further, I'll
simply make a new minor release when I get around to go through these.

Fixes issue #239.
cmake: Fix some spurious copy'n'paste code in inject module.

Which was causing ninja-build to issue a warning.
dxgiretrace: Ensure checker pattern initialisation constants are unsigned.

To silence recent gcc version.