diff -r 50a287e4484b src/3Depict.cpp
--- src/3Depict.cpp Mon Mar 07 01:33:27 2011 +0000
+++ src/3Depict.cpp Sun Mar 13 00:53:01 2011 +0000
@@ -281,7 +281,7 @@
MainWindowFrame::MainWindowFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
wxFrame(parent, id, title, pos, size, style)
{
-
+ initedOK=false;
programmaticEvent=false;
fullscreenState=0;
//Set up the program icon handler
@@ -324,6 +324,14 @@
splitterSpectra = new wxSplitterWindow(noteDataView, ID_SPLIT_SPECTRA, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_BORDER);
window_2_pane_2 = new wxPanel(splitterSpectra, wxID_ANY);
panelTop = new BasicGLPane(splitTopBottom);
+
+ //I had to work this out by studying the construtor
+ if(!panelTop->m_glContext)
+ {
+ cerr << "Unable to initialise the openGL panel. Program cannot start. Please check your video drivers." << endl;
+ return;
+ }
+
panelLeft = new wxPanel(splitLeftRight, wxID_ANY);
notebookControl = new wxNotebook(panelLeft, ID_NOTEBOOK_CONTROL, wxDefaultPosition, wxDefaultSize, wxNB_RIGHT);
noteTools = new wxPanel(notebookControl, ID_NOTE_PERFORMANCE, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
@@ -661,7 +669,7 @@
delete paths;
//-----------------
-
+ initedOK=true;
updateTimer->Start(UPDATE_TIMER_DELAY,wxTIMER_CONTINUOUS);
@@ -4208,7 +4216,7 @@
{
//Register signal handler for backtraces
- if (!wxApp::OnInit())
+ if (!wxApp::OnInit())
return false;
//Need to seed random number generator for entire program
@@ -4220,6 +4228,10 @@
wxInitAllImageHandlers();
MainFrame = new MainWindowFrame(NULL, wxID_ANY, wxEmptyString);
+
+ if(!MainFrame->initOK())
+ return false;
+
SetTopWindow(MainFrame);
#ifdef DEBUG
diff -r 50a287e4484b src/3Depict.h
--- src/3Depict.h Mon Mar 07 01:33:27 2011 +0000
+++ src/3Depict.h Sun Mar 13 00:53:01 2011 +0000
@@ -108,6 +108,8 @@
//!Current fullscreen status
unsigned int fullscreenState;
+
+ bool initedOK;
protected:
wxTimer *statusTimer;
wxTimer *progressTimer;
@@ -301,6 +303,10 @@
virtual void SetCommandLineFiles(wxArrayString &files);
virtual void updateLastRefreshBox();
+
+
+ bool initOK() const {return initedOK;}
+
}; // wxGlade: end class