Fix build errors on Linux with Qt5 vers less than Qt5.2
Merge pull request #95 from jon-lunarg/github_07_09

Fix build errors on Linux with Qt5 vers less than Qt5.2
Fixes to get default FB snapshot working on Intel w/ MESA

Use XGetWindowAttributes to get window size in place of glXQueryDrawable.
Mesa glXQueryDrawable has trouble reading width and height.

Use OpenGL calls instead of glX calls for vogl_get_default_framebuffer_attribs.
That will be portable to systems not using glX.

Modify order of linking vogleditor so that X11 comes last.
Condition state capture and restore of state related to ARB_imaging extension.

Some drivers (such as Mesa) do not support GL_ARB_imaging extension. Make the
state capture and restore of state added by this extension be conditional based
on driver support of the extension.
Only save GL_TEXTURE_BUFFER objects when they are supported

Detect if GL_TEXTURE_BUFFER objects are supported by the driver and only save them in the case when they are.  Intel MESA doesn't currently support them so this prevents assertions.
Set GL func pts prior to restoring from snapshot at start of trace.

Without this we're hitting segF on Linux when running from a trace that starts by restoring from a state snapshot.
UI: Add support for capturing per-frame screenshots
* Currently these are simply written to a temp directory and then read back in for use as icons for the frames in the API call tree.
* These are not yet saved with the session data.
UI: Debug sessions are now saved and loaded automatically
* Debug session files are now automatically saved in the user's app data folder (ie: ~/.local/share/VoglEditor64/sessions/)
* When a trace file is loaded the UUID is used to look up a session file, which will also point to a corresponding sessiondata folder
* When a trace is closed, the session file is saved along with a sessiondata folder containing all snapshots and screenshots that were taken during the debug session. This information is then re-loaded when the same trace file is opened again.
* The user may no longer explicitly save or load a session file. However the format of the existing data has not changed, so moving it into the /sessions/ folder shown above (and adding the UUID to the session file and folder name) should allow it to still be loaded.
UI: Timeline with nested calls

Patch for issue #52:
vogleditor: timeline does not display apicalls which are nested in the
            tree control
Cause
-----
* vogleditor_QTimelineView::paint()

   The search for the apicall at which to draw the timeline marker
   was only looking at the top-level apicalls. If the apicall was
   nested then it wasn't checked.

* vogleditor_QTimelineView::drawTimelineView()

   If the top-level apicall's duration didn't meet the threshold for
   drawing its location on the timeline then its children were also
   skipped.

Patch
-----
* vogleditor_QTimelineView::paint()

   Add recursive checking for nested apicall items

* vogleditor_QTimelineView::drawTimelineView()

   Regardless whether the parent duration met the threshold, continue
   looking at the children. If the threshold is met for the child then
   the child's location is drawn on the timeline.

Testing
-------
A version of glxgears that has 3 levels of nested apicalls using
glPushDebugGroup/glPopDebugGroup and glBegin/glEnd (bin file attached)

Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
Merge pull request #96 from jon-lunarg/github_07_11

Various fixes from Lunarg folks to get Intel/Mesa working better with state snapshot save and restore. Additionally, the "Set GL func ptrs patch ..." patch appears to be needed on Linux generally and is not Intel/mesa specific.
Merge pull request #97 from lawlove/nest-timeline-patch

UI: Timeline with nested calls
Implement a version of create_directories that was declared, but never
defined.
UI: Fix paths when loading a trace file
* Calculation of relative paths was incorrect when a trace file was loaded for the first time and a session had to be created.
UI: Clean up trace and session loading
* Trace files are now loaded first, followed by any additional session data.
* Failing to load session data no longer prevents the trace file from loading.
Fix the compressed texture row stride to a pixel stride in PxFmt

Also fix DXT1_RGBA block byte size in PxFmt.
Add SRGB DXT compressed texture support to Pxfmt library.
Verify support for various general state before restoring.

Further checks for both GL_ARB_imaging and GL_ARB_shader_image_load_store extension support prior to restoring related state.  These extensions not currently supported on Intel MESA.
Only query FBO params for "LAYERED" texture if GS extension supported

Currently not supported on Intel MESA.  Enum "GL_FRAMEBUFFER_ATTACHMENT_LAYERED" was introduced by GL_ARB_geometry_shader4 extension so dynamic check for this support prior to query seems reasonable.