summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2016-05-09 16:10:54 +0000
committerManolo Gouy <Manolo>2016-05-09 16:10:54 +0000
commitcc35e003eb62d088745b0108af6312885648dd2c (patch)
tree649935c724dd8a2f301fe5bc743f74221c81a88b /src
parent2dacc9a1db09a72a46271e02fb2b329255e5bd47 (diff)
Move GL-related member functions from class Fl_Cocoa_Screen_Driver to class Fl_Cocoa_Gl_Window_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11728 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Gl_Choice.cxx10
-rw-r--r--src/Fl_Gl_Window.cxx8
-rw-r--r--src/Fl_cocoa.mm19
-rw-r--r--src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.H9
-rw-r--r--src/gl_start.cxx2
5 files changed, 18 insertions, 30 deletions
diff --git a/src/Fl_Gl_Choice.cxx b/src/Fl_Gl_Choice.cxx
index c37a0d8f1..55acac03c 100644
--- a/src/Fl_Gl_Choice.cxx
+++ b/src/Fl_Gl_Choice.cxx
@@ -83,7 +83,7 @@ Fl_Gl_Choice *Fl_Cocoa_Gl_Window_Driver::find(int m, const int *alistp)
{
Fl_Gl_Choice *g = Fl_Gl_Window_Driver::find_begin(m, alistp);
if (g) return g;
- NSOpenGLPixelFormat* fmt = Fl_Cocoa_Screen_Driver::mode_to_NSOpenGLPixelFormat(m, alistp);
+ NSOpenGLPixelFormat* fmt = mode_to_NSOpenGLPixelFormat(m, alistp);
if (!fmt) return 0;
g = new Fl_Gl_Choice(m, alistp, first);
first = g;
@@ -97,7 +97,7 @@ GLContext Fl_Cocoa_Gl_Window_Driver::create_gl_context(Fl_Window* window, const
// resets the pile of string textures used to draw strings
// necessary before the first context is created
if (!shared_ctx) gl_texture_reset();
- context = Fl_Cocoa_Screen_Driver::create_GLcontext_for_window(g->pixelformat, shared_ctx, window);
+ context = create_GLcontext_for_window(g->pixelformat, shared_ctx, window);
if (!context) return 0;
add_context((GLContext)context);
return (context);
@@ -107,7 +107,7 @@ void Fl_Cocoa_Gl_Window_Driver::set_gl_context(Fl_Window* w, GLContext context)
if (context != cached_context || w != cached_window) {
cached_context = context;
cached_window = w;
- Fl_Cocoa_Screen_Driver::GLcontext_makecurrent(context);
+ GLcontext_makecurrent(context);
}
}
@@ -115,9 +115,9 @@ void Fl_Cocoa_Gl_Window_Driver::delete_gl_context(GLContext context) {
if (cached_context == context) {
cached_context = 0;
cached_window = 0;
- Fl_Cocoa_Screen_Driver::GL_cleardrawable();
+ GL_cleardrawable();
}
- Fl_Cocoa_Screen_Driver::GLcontext_release(context);
+ GLcontext_release(context);
del_context(context);
}
diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx
index 0cfdcb7c9..919b868de 100644
--- a/src/Fl_Gl_Window.cxx
+++ b/src/Fl_Gl_Window.cxx
@@ -505,7 +505,7 @@ void Fl_Cocoa_Gl_Window_Driver::make_current_before() {
if (d->changed_resolution()){
d->changed_resolution(false);
invalidate();
- Fl_Cocoa_Screen_Driver::GLcontext_update((GLContext)pWindow->context());
+ GLcontext_update((GLContext)pWindow->context());
}
}
@@ -549,15 +549,11 @@ void Fl_Cocoa_Gl_Window_Driver::swap_buffers() {
void Fl_Cocoa_Gl_Window_Driver::resize(int is_a_resize, int unused, int also) {
Fl_X *flx = Fl_X::i(pWindow);
Fl_Cocoa_Window_Driver *d = Fl_Cocoa_Window_Driver::driver(pWindow);
- if (flx && d->in_windowDidResize()) Fl_Cocoa_Screen_Driver::GLcontext_update((GLContext)pWindow->context());
+ if (flx && d->in_windowDidResize()) GLcontext_update((GLContext)pWindow->context());
}
char Fl_Cocoa_Gl_Window_Driver::swap_type() {return COPY;}
-void Fl_Cocoa_Gl_Window_Driver::flush_context() {
- Fl_Cocoa_Screen_Driver::GLcontext_flushbuffer((GLContext)pWindow->context());
-}
-
#endif // FL_CFG_GFX_QUARTZ
#if defined(FL_CFG_GFX_GDI)
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index 46deae720..1377c0659 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -34,7 +34,7 @@ extern "C" {
#include <pthread.h>
}
-
+#include "config_lib.h"
#include <FL/Fl.H>
#include <FL/x.H>
#include <FL/Fl_Window_Driver.H>
@@ -44,6 +44,7 @@ extern "C" {
#include <FL/Fl_Printer.H>
#include <FL/Fl_Shared_Image.H>
#include <FL/fl_draw.H>
+#include <FL/Fl_Gl_Window_Driver.H>
#include "drivers/Quartz/Fl_Quartz_Graphics_Driver.H"
#include "drivers/Quartz/Fl_Quartz_Copy_Surface_Driver.H"
#include "drivers/Cocoa/Fl_Cocoa_Screen_Driver.H"
@@ -2726,7 +2727,7 @@ static FLTextInputContext* fltextinputcontext_instance = nil;
@end
-NSOpenGLPixelFormat* Fl_Cocoa_Screen_Driver::mode_to_NSOpenGLPixelFormat(int m, const int *alistp)
+NSOpenGLPixelFormat* Fl_Cocoa_Gl_Window_Driver::mode_to_NSOpenGLPixelFormat(int m, const int *alistp)
{
NSOpenGLPixelFormatAttribute attribs[32];
int n = 0;
@@ -2814,7 +2815,7 @@ NSOpenGLPixelFormat* Fl_Cocoa_Screen_Driver::mode_to_NSOpenGLPixelFormat(int m,
return pixform;
}
-NSOpenGLContext* Fl_Cocoa_Screen_Driver::create_GLcontext_for_window(NSOpenGLPixelFormat *pixelformat,
+NSOpenGLContext* Fl_Cocoa_Gl_Window_Driver::create_GLcontext_for_window(NSOpenGLPixelFormat *pixelformat,
NSOpenGLContext *shared_ctx, Fl_Window *window)
{
NSOpenGLContext *context = [[NSOpenGLContext alloc] initWithFormat:pixelformat shareContext:shared_ctx];
@@ -2831,27 +2832,27 @@ NSOpenGLContext* Fl_Cocoa_Screen_Driver::create_GLcontext_for_window(NSOpenGLPix
return context;
}
-void Fl_Cocoa_Screen_Driver::GLcontext_update(NSOpenGLContext* ctxt)
+void Fl_Cocoa_Gl_Window_Driver::GLcontext_update(NSOpenGLContext* ctxt)
{
[ctxt update];
}
-void Fl_Cocoa_Screen_Driver::GLcontext_flushbuffer(NSOpenGLContext* ctxt)
+void Fl_Cocoa_Gl_Window_Driver::flush_context()
{
- [ctxt flushBuffer];
+ [(NSOpenGLContext*)pWindow->context() flushBuffer];
}
-void Fl_Cocoa_Screen_Driver::GLcontext_release(NSOpenGLContext* ctxt)
+void Fl_Cocoa_Gl_Window_Driver::GLcontext_release(NSOpenGLContext* ctxt)
{
[ctxt release];
}
-void Fl_Cocoa_Screen_Driver::GL_cleardrawable(void)
+void Fl_Cocoa_Gl_Window_Driver::GL_cleardrawable(void)
{
[[NSOpenGLContext currentContext] clearDrawable];
}
-void Fl_Cocoa_Screen_Driver::GLcontext_makecurrent(NSOpenGLContext* ctxt)
+void Fl_Cocoa_Gl_Window_Driver::GLcontext_makecurrent(NSOpenGLContext* ctxt)
{
[ctxt makeCurrentContext];
}
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.H b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.H
index 9f6bf7694..5f55c2b64 100644
--- a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.H
+++ b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.H
@@ -64,15 +64,6 @@ protected:
public:
Fl_Cocoa_Screen_Driver();
static int next_marked_length; // next length of marked text after current marked text will have been replaced
- // --- Cocoa-only members
- // computes NSOpenGLPixelFormat from Gl window's mode
- static NSOpenGLPixelFormat *mode_to_NSOpenGLPixelFormat(int mode, const int*); // uses Objective-c
- static NSOpenGLContext* create_GLcontext_for_window(NSOpenGLPixelFormat *pixelformat, NSOpenGLContext *shared_ctx, Fl_Window *window);
- static void GLcontext_update(NSOpenGLContext*);
- static void GLcontext_flushbuffer(NSOpenGLContext*);
- static void GLcontext_release(NSOpenGLContext*);
- static void GLcontext_makecurrent(NSOpenGLContext*);
- static void GL_cleardrawable(void);
// --- display management
// --- screen configuration
virtual void init();
diff --git a/src/gl_start.cxx b/src/gl_start.cxx
index 9ca2717ef..2cf271111 100644
--- a/src/gl_start.cxx
+++ b/src/gl_start.cxx
@@ -89,7 +89,7 @@ void Fl_Gl_Window_Driver::gl_visual(Fl_Gl_Choice *c) {
#include "drivers/Cocoa/Fl_Cocoa_Screen_Driver.H"
void Fl_Cocoa_Gl_Window_Driver::gl_start() {
- Fl_Cocoa_Screen_Driver::GLcontext_update(context); // supports window resizing
+ GLcontext_update(context); // supports window resizing
}
#endif