namespace glws {
+enum Profile {
+ PROFILE_COMPAT,
+ PROFILE_ES1,
+ PROFILE_ES2,
+};
+
+
extern bool debug;
createDrawable(const Visual *visual, int width = 32, int height = 32);
Context *
-createContext(const Visual *visual, Context *shareContext = 0);
+createContext(const Visual *visual, Context *shareContext = 0, Profile profile = PROFILE_COMPAT);
bool
makeCurrent(Drawable *drawable, Context *context);
}
Context *
-createContext(const Visual *visual, Context *shareContext)
+createContext(const Visual *visual, Context *shareContext, Profile profile)
{
NSOpenGLPixelFormat *pixelFormat = dynamic_cast<const CocoaVisual *>(visual)->pixelFormat;
NSOpenGLContext *share_context = nil;
NSOpenGLContext *context;
+ if (profile != PROFILE_COMPAT) {
+ return nil;
+ }
+
if (shareContext) {
share_context = dynamic_cast<CocoaContext*>(shareContext)->context;
}
}
Context *
-createContext(const Visual *_visual, Context *shareContext)
+createContext(const Visual *_visual, Context *shareContext, Profile profile)
{
const GlxVisual *visual = dynamic_cast<const GlxVisual *>(_visual);
GLXContext share_context = NULL;
GLXContext context;
+ if (profile != PROFILE_COMPAT) {
+ return NULL;
+ }
+
if (shareContext) {
share_context = dynamic_cast<GlxContext*>(shareContext)->context;
}
}
Context *
-createContext(const Visual *visual, Context *shareContext)
+createContext(const Visual *visual, Context *shareContext, Profile profile)
{
+ if (profile != PROFILE_COMPAT) {
+ return NULL;
+ }
+
return new WglContext(visual, dynamic_cast<WglContext *>(shareContext));
}