summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Fl_Gl_Window.cxx58
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 $".
//