diff options
author | Marius Kintel <marius@kintel.net> | 2012-08-13 19:55:57 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2012-08-13 19:55:57 (GMT) |
commit | faeebb18e46b8c08b7ff8dec15e991fee0e0e276 (patch) | |
tree | 579a534421a0a749f65ce8a952c1ae9d38971c46 /src/glview.cc | |
parent | 3ac131d39d2c44ac6226911f65708a6e52951815 (diff) | |
parent | 029f0f2ba99d1e85dd05f5c863e41cedca37cad8 (diff) |
Merge pull request #173 from openscad/issue160
Issue160
Diffstat (limited to 'src/glview.cc')
-rw-r--r-- | src/glview.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/glview.cc b/src/glview.cc index 624b266..859bf82 100644 --- a/src/glview.cc +++ b/src/glview.cc @@ -69,6 +69,8 @@ GLView::GLView(const QGLFormat & format, QWidget *parent) : QGLWidget(format, pa init(); } +static bool running_under_wine = false; + void GLView::init() { this->viewer_distance = 500; @@ -100,6 +102,15 @@ void GLView::init() static int sId = 0; this->opencsg_id = sId++; #endif + +// see paintGL() + issue160 + wine FAQ +#ifdef _WIN32 +#include <windows.h> + HMODULE hntdll = GetModuleHandle(L"ntdll.dll"); + if (hntdll) + if ( (void *)GetProcAddress(hntdll, "wine_get_version") ) + running_under_wine = true; +#endif } void GLView::setRenderer(Renderer *r) @@ -528,6 +539,8 @@ void GLView::paintGL() fmodf(360 - object_rot_x + 90, 360), fmodf(360 - object_rot_y, 360), fmodf(360 - object_rot_z, 360), viewer_distance); statusLabel->setText(msg); } + + if (running_under_wine) swapBuffers(); } void GLView::keyPressEvent(QKeyEvent *event) |