aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-01-08 20:13:08 -0500
committerDavid Robillard <d@drobilla.net>2023-01-08 22:32:09 -0500
commitb2b917da14cbab770905232c8cf5680fa79cea8e (patch)
tree389a6ea726f8a2fa8c6df22808a183b121608c3b /src
parenta45fb20347d4474a2e3cacc8da3c2d3a465a3aed (diff)
downloadpugl-b2b917da14cbab770905232c8cf5680fa79cea8e.tar.gz
pugl-b2b917da14cbab770905232c8cf5680fa79cea8e.tar.bz2
pugl-b2b917da14cbab770905232c8cf5680fa79cea8e.zip
Prepare OpenGL context flags for OpenGL ES support
Diffstat (limited to 'src')
-rw-r--r--src/common.c10
-rw-r--r--src/mac_gl.m4
-rw-r--r--src/win_gl.c4
-rw-r--r--src/x11_gl.c10
4 files changed, 17 insertions, 11 deletions
diff --git a/src/common.c b/src/common.c
index 90a75cf..5c39b39 100644
--- a/src/common.c
+++ b/src/common.c
@@ -91,10 +91,11 @@ puglGetClassName(const PuglWorld* world)
static void
puglSetDefaultHints(PuglHints hints)
{
- hints[PUGL_USE_COMPAT_PROFILE] = PUGL_TRUE;
- hints[PUGL_USE_DEBUG_CONTEXT] = PUGL_FALSE;
+ hints[PUGL_CONTEXT_API] = PUGL_OPENGL_API;
hints[PUGL_CONTEXT_VERSION_MAJOR] = 2;
hints[PUGL_CONTEXT_VERSION_MINOR] = 0;
+ hints[PUGL_CONTEXT_PROFILE] = PUGL_OPENGL_CORE_PROFILE;
+ hints[PUGL_CONTEXT_DEBUG] = PUGL_FALSE;
hints[PUGL_RED_BITS] = 8;
hints[PUGL_GREEN_BITS] = 8;
hints[PUGL_BLUE_BITS] = 8;
@@ -203,10 +204,11 @@ puglSetViewHint(PuglView* view, PuglViewHint hint, int value)
{
if (value == PUGL_DONT_CARE) {
switch (hint) {
- case PUGL_USE_COMPAT_PROFILE:
- case PUGL_USE_DEBUG_CONTEXT:
+ case PUGL_CONTEXT_API:
case PUGL_CONTEXT_VERSION_MAJOR:
case PUGL_CONTEXT_VERSION_MINOR:
+ case PUGL_CONTEXT_PROFILE:
+ case PUGL_CONTEXT_DEBUG:
case PUGL_SWAP_INTERVAL:
return PUGL_BAD_PARAMETER;
default:
diff --git a/src/mac_gl.m b/src/mac_gl.m
index b1430d9..f177bf9 100644
--- a/src/mac_gl.m
+++ b/src/mac_gl.m
@@ -29,7 +29,9 @@ ensureHint(PuglView* const view, const PuglViewHint hint, const int value)
- (id)initWithFrame:(NSRect)frame
{
- const bool compat = puglview->hints[PUGL_USE_COMPAT_PROFILE];
+ const bool compat =
+ puglview->hints[PUGL_CONTEXT_PROFILE] == PUGL_OPENGL_COMPATIBILITY_PROFILE;
+
const unsigned samples = (unsigned)puglview->hints[PUGL_SAMPLES];
const int major = puglview->hints[PUGL_CONTEXT_VERSION_MAJOR];
const unsigned profile =
diff --git a/src/win_gl.c b/src/win_gl.c
index 444f87f..0ca9909 100644
--- a/src/win_gl.c
+++ b/src/win_gl.c
@@ -198,10 +198,10 @@ puglWinGlCreate(PuglView* view)
view->hints[PUGL_CONTEXT_VERSION_MINOR],
WGL_CONTEXT_FLAGS_ARB,
- (view->hints[PUGL_USE_DEBUG_CONTEXT] ? WGL_CONTEXT_DEBUG_BIT_ARB : 0),
+ (view->hints[PUGL_CONTEXT_DEBUG] ? WGL_CONTEXT_DEBUG_BIT_ARB : 0),
WGL_CONTEXT_PROFILE_MASK_ARB,
- (view->hints[PUGL_USE_COMPAT_PROFILE]
+ ((view->hints[PUGL_CONTEXT_PROFILE] == PUGL_OPENGL_COMPATIBILITY_PROFILE)
? WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB
: WGL_CONTEXT_CORE_PROFILE_BIT_ARB),
diff --git a/src/x11_gl.c b/src/x11_gl.c
index f1dc56b..de22b34 100644
--- a/src/x11_gl.c
+++ b/src/x11_gl.c
@@ -145,12 +145,14 @@ puglX11GlCreate(PuglView* view)
view->hints[PUGL_CONTEXT_VERSION_MINOR],
GLX_CONTEXT_FLAGS_ARB,
- (view->hints[PUGL_USE_DEBUG_CONTEXT] ? GLX_CONTEXT_DEBUG_BIT_ARB : 0),
+ (view->hints[PUGL_CONTEXT_DEBUG] ? GLX_CONTEXT_DEBUG_BIT_ARB : 0),
GLX_CONTEXT_PROFILE_MASK_ARB,
- (view->hints[PUGL_USE_COMPAT_PROFILE]
- ? GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB
- : GLX_CONTEXT_CORE_PROFILE_BIT_ARB),
+ (view->hints[PUGL_CONTEXT_API] == PUGL_OPENGL_ES_API
+ ? GLX_CONTEXT_ES2_PROFILE_BIT_EXT
+ : (view->hints[PUGL_CONTEXT_PROFILE] == PUGL_OPENGL_COMPATIBILITY_PROFILE
+ ? GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB
+ : GLX_CONTEXT_CORE_PROFILE_BIT_ARB)),
0};
const char* const extensions =