summaryrefslogtreecommitdiff
path: root/mainwin.cc
diff options
context:
space:
mode:
authorclifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c>2009-10-19 19:20:18 (GMT)
committerclifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c>2009-10-19 19:20:18 (GMT)
commitb905e8e537515d80b24e77943e7a6ffcf0e6749d (patch)
tree0b88663e596f5361005119efdea31a3c4a7ba5b4 /mainwin.cc
parent05b2eb1b90620025ba9242477b0df688745dd0db (diff)
Clifford Wolf:
Added OpenGL 2.0 / OpenCSG check git-svn-id: http://svn.clifford.at/openscad/trunk@110 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'mainwin.cc')
-rw-r--r--mainwin.cc42
1 files changed, 31 insertions, 11 deletions
diff --git a/mainwin.cc b/mainwin.cc
index 23357c7..7631010 100644
--- a/mainwin.cc
+++ b/mainwin.cc
@@ -153,8 +153,12 @@ MainWindow::MainWindow(const char *filename)
{
QMenu *menu = menuBar()->addMenu("&View");
#ifdef ENABLE_OPENCSG
- actViewModeOpenCSG = menu->addAction("OpenCSG", this, SLOT(viewModeOpenCSG()), QKeySequence(Qt::Key_F9));
- actViewModeOpenCSG->setCheckable(true);
+ if (screen->opencsg_support) {
+ actViewModeOpenCSG = menu->addAction("OpenCSG", this, SLOT(viewModeOpenCSG()), QKeySequence(Qt::Key_F9));
+ actViewModeOpenCSG->setCheckable(true);
+ } else {
+ actViewModeOpenCSG = NULL;
+ }
#endif
#ifdef ENABLE_CGAL
actViewModeCGALSurface = menu->addAction("CGAL Surfaces", this, SLOT(viewModeCGALSurface()), QKeySequence(Qt::Key_F10));
@@ -214,6 +218,12 @@ MainWindow::MainWindow(const char *filename)
setWindowTitle("New Document");
}
+ setCentralWidget(s1);
+
+ // display this window and check for OpenGL 2.0 (OpenCSG) support
+ viewModeThrownTogether();
+ show();
+
#ifdef ENABLE_OPENCSG
viewModeOpenCSG();
#else
@@ -221,7 +231,6 @@ MainWindow::MainWindow(const char *filename)
#endif
viewPerspective();
- setCentralWidget(s1);
current_win = NULL;
}
@@ -634,7 +643,8 @@ void MainWindow::actionReloadCompile()
compile(true);
#ifdef ENABLE_OPENCSG
- if (!actViewModeOpenCSG->isChecked() && !actViewModeThrownTogether->isChecked()) {
+ if (!(actViewModeOpenCSG && actViewModeOpenCSG->isChecked()) &&
+ !actViewModeThrownTogether->isChecked()) {
viewModeOpenCSG();
}
else
@@ -653,7 +663,8 @@ void MainWindow::actionCompile()
compile(!actViewModeAnimate->isChecked());
#ifdef ENABLE_OPENCSG
- if (!actViewModeOpenCSG->isChecked() && !actViewModeThrownTogether->isChecked()) {
+ if (!(actViewModeOpenCSG && actViewModeOpenCSG->isChecked()) &&
+ !actViewModeThrownTogether->isChecked()) {
viewModeOpenCSG();
}
else
@@ -850,7 +861,8 @@ void MainWindow::actionExportOFF()
void MainWindow::viewModeActionsUncheck()
{
#ifdef ENABLE_OPENCSG
- actViewModeOpenCSG->setChecked(false);
+ if (actViewModeOpenCSG)
+ actViewModeOpenCSG->setChecked(false);
#endif
#ifdef ENABLE_CGAL
actViewModeCGALSurface->setChecked(false);
@@ -954,11 +966,19 @@ static void renderGLviaOpenCSG(void *vp)
void MainWindow::viewModeOpenCSG()
{
- viewModeActionsUncheck();
- actViewModeOpenCSG->setChecked(true);
- screen->renderfunc = renderGLviaOpenCSG;
- screen->renderfunc_vp = this;
- screen->updateGL();
+ if (screen->opencsg_support) {
+ viewModeActionsUncheck();
+ actViewModeOpenCSG->setChecked(true);
+ screen->renderfunc = renderGLviaOpenCSG;
+ screen->renderfunc_vp = this;
+ screen->updateGL();
+ } else {
+ if (actViewModeOpenCSG) {
+ delete actViewModeOpenCSG;
+ actViewModeOpenCSG = NULL;
+ }
+ viewModeThrownTogether();
+ }
}
#endif /* ENABLE_OPENCSG */
contact: Jan Huwald // Impressum