diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2003-03-31 18:23:53 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2003-03-31 18:23:53 +0000 |
| commit | 3fd86acaec37d8fefe98c470ddd01a20499df579 (patch) | |
| tree | 58979ee3852f3ae330770f17194a29191f23f3ea /src/Fl_Gl_Window.cxx | |
| parent | 7b52b48c9deed0a461ff9a28ea1cd0aef7fe9d89 (diff) | |
Fix OpenGL resize bug some more - still have an outstanding issue with
the parent window not setting its xywh members until after the children
have resized...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2960 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Gl_Window.cxx')
| -rw-r--r-- | src/Fl_Gl_Window.cxx | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index ae64ab417..757113f21 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.18 2003/03/31 17:27:35 easysw Exp $" +// "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.19 2003/03/31 18:23:53 easysw Exp $" // // OpenGL window code for the Fast Light Tool Kit (FLTK). // @@ -124,22 +124,31 @@ int Fl_Gl_Window::mode(int m, const int *a) { #define NON_LOCAL_CONTEXT 0x80000000 void Fl_Gl_Window::make_current() { +// puts("Fl_Gl_Window::make_current()"); +// printf("make_current: context_=%p\n", context_); if (!context_) { mode_ &= ~NON_LOCAL_CONTEXT; context_ = fl_create_gl_context(this, g); valid(0); -#ifdef __APPLE__ - if (window()) { - GLint xywh[4]; - xywh[0] = x(); - xywh[1] = window()->h() - y() - h(); - xywh[2] = w(); - xywh[3] = h(); - aglSetInteger(context_, AGL_BUFFER_RECT, xywh); - aglUpdateContext(context_); - } -#endif // __APPLE__ +//#ifdef __APPLE__ +// GLint xywh[4]; +// +// if (parent() && parent()->window()) { +// xywh[0] = x(); +// xywh[1] = parent()->window()->h() - y() - h(); +// } else { +// xywh[0] = 0; +// xywh[1] = 0; +// } +// +// xywh[2] = w(); +// xywh[3] = h(); +// aglSetInteger(context_, AGL_BUFFER_RECT, xywh); +// printf("make_current: xywh=[%d %d %d %d]\n", xywh[0], xywh[1], xywh[2], xywh[3]); +// +// aglUpdateContext(context_); +//#endif // __APPLE__ } fl_set_gl_context(this, context_); #if defined(WIN32) && USE_COLORMAP @@ -326,18 +335,27 @@ void Fl_Gl_Window::flush() { } void Fl_Gl_Window::resize(int X,int Y,int W,int H) { +// printf("Fl_Gl_Window::resize(X=%d, Y=%d, W=%d, H=%d)\n", X, Y, W, H); if (W != w() || H != h()) { valid(0); #ifdef __APPLE__ + GLint xywh[4]; + if (window()) { - GLint xywh[4]; - xywh[0] = X; - xywh[1] = window()->h() - Y - H; - xywh[2] = W; - xywh[3] = H; - aglSetInteger(context_, AGL_BUFFER_RECT, xywh); - aglUpdateContext(context_); + // MRS: This isn't quite right, but the parent window won't have its W and H updated yet... + xywh[0] = x(); + xywh[1] = window()->h() - y() - h(); + } else { + xywh[0] = 0; + xywh[1] = 0; } + + xywh[2] = W; + xywh[3] = H; + aglSetInteger(context_, AGL_BUFFER_RECT, xywh); +// printf("resize: xywh=[%d %d %d %d]\n", xywh[0], xywh[1], xywh[2], xywh[3]); + + aglUpdateContext(context_); #elif !defined(WIN32) if (!resizable() && overlay && overlay != this) ((Fl_Gl_Window*)overlay)->resize(0,0,W,H); @@ -391,5 +409,5 @@ void Fl_Gl_Window::draw_overlay() {} #endif // -// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.18 2003/03/31 17:27:35 easysw Exp $". +// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.19 2003/03/31 18:23:53 easysw Exp $". // |
