diff options
| -rw-r--r-- | pugl/detail/implementation.c | 2 | ||||
| -rw-r--r-- | pugl/detail/mac_cairo.m | 28 | ||||
| -rw-r--r-- | pugl/detail/mac_gl.m | 24 | ||||
| -rw-r--r-- | pugl/detail/types.h | 12 | ||||
| -rw-r--r-- | pugl/detail/win.c | 18 | ||||
| -rw-r--r-- | pugl/detail/win.h | 4 | ||||
| -rw-r--r-- | pugl/detail/win_cairo.c | 4 | ||||
| -rw-r--r-- | pugl/detail/win_gl.c | 43 | ||||
| -rw-r--r-- | pugl/detail/x11.c | 20 | ||||
| -rw-r--r-- | pugl/detail/x11_cairo.c | 28 | ||||
| -rw-r--r-- | pugl/detail/x11_gl.c | 37 | ||||
| -rw-r--r-- | pugl/pugl.h | 17 | 
12 files changed, 123 insertions, 114 deletions
diff --git a/pugl/detail/implementation.c b/pugl/detail/implementation.c index f1fd57a..6375444 100644 --- a/pugl/detail/implementation.c +++ b/pugl/detail/implementation.c @@ -306,7 +306,7 @@ puglSetInternalClipboard(PuglView* const   view,                           const size_t      len)  {  	if (type && strcmp(type, "text/plain")) { -		return PUGL_ERR_UNSUPPORTED_TYPE; +		return PUGL_UNSUPPORTED_TYPE;  	}  	puglSetBlob(&view->clipboard, data, len); diff --git a/pugl/detail/mac_cairo.m b/pugl/detail/mac_cairo.m index fcb4f07..143fbb0 100644 --- a/pugl/detail/mac_cairo.m +++ b/pugl/detail/mac_cairo.m @@ -61,13 +61,13 @@  @end -static int +static PuglStatus  puglMacCairoConfigure(PuglView* PUGL_UNUSED(view))  { -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacCairoCreate(PuglView* view)  {  	PuglInternals* impl     = view->impl; @@ -82,10 +82,10 @@ puglMacCairoCreate(PuglView* view)  	}  	impl->drawView = drawView; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacCairoDestroy(PuglView* view)  {  	PuglCairoView* const drawView = (PuglCairoView*)view->impl->drawView; @@ -94,15 +94,15 @@ puglMacCairoDestroy(PuglView* view)  	[drawView release];  	view->impl->drawView = nil; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacCairoEnter(PuglView* view, bool drawing)  {  	PuglCairoView* const drawView = (PuglCairoView*)view->impl->drawView;  	if (!drawing) { -		return 0; +		return PUGL_SUCCESS;  	}  	assert(!drawView->surface); @@ -115,15 +115,15 @@ puglMacCairoEnter(PuglView* view, bool drawing)  	drawView->cr = cairo_create(drawView->surface); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacCairoLeave(PuglView* view, bool drawing)  {  	PuglCairoView* const drawView = (PuglCairoView*)view->impl->drawView;  	if (!drawing) { -		return 0; +		return PUGL_SUCCESS;  	}  	assert(drawView->surface); @@ -138,16 +138,16 @@ puglMacCairoLeave(PuglView* view, bool drawing)  	CGContextFlush(context); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacCairoResize(PuglView* PUGL_UNUSED(view),                     int       PUGL_UNUSED(width),                     int       PUGL_UNUSED(height))  {  	// No need to resize, the surface is created for the drawing context -	return 0; +	return PUGL_SUCCESS;  }  static void* diff --git a/pugl/detail/mac_gl.m b/pugl/detail/mac_gl.m index 58d815d..b84f799 100644 --- a/pugl/detail/mac_gl.m +++ b/pugl/detail/mac_gl.m @@ -93,13 +93,13 @@ typedef NSUInteger NSWindowStyleMask;  @end -static int +static PuglStatus  puglMacGlConfigure(PuglView* PUGL_UNUSED(view))  { -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacGlCreate(PuglView* view)  {  	PuglInternals*  impl     = view->impl; @@ -116,10 +116,10 @@ puglMacGlCreate(PuglView* view)  	}  	impl->drawView = drawView; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacGlDestroy(PuglView* view)  {  	PuglOpenGLView* const drawView = (PuglOpenGLView*)view->impl->drawView; @@ -128,19 +128,19 @@ puglMacGlDestroy(PuglView* view)  	[drawView release];  	view->impl->drawView = nil; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacGlEnter(PuglView* view, bool PUGL_UNUSED(drawing))  {  	PuglOpenGLView* const drawView = (PuglOpenGLView*)view->impl->drawView;  	[[drawView openGLContext] makeCurrentContext]; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacGlLeave(PuglView* view, bool drawing)  {  	PuglOpenGLView* const drawView = (PuglOpenGLView*)view->impl->drawView; @@ -151,17 +151,17 @@ puglMacGlLeave(PuglView* view, bool drawing)  	[NSOpenGLContext clearCurrentContext]; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglMacGlResize(PuglView* view, int PUGL_UNUSED(width), int PUGL_UNUSED(height))  {  	PuglOpenGLView* const drawView = (PuglOpenGLView*)view->impl->drawView;  	[drawView reshape]; -	return 0; +	return PUGL_SUCCESS;  }  static void* diff --git a/pugl/detail/types.h b/pugl/detail/types.h index 4ac224b..d018be5 100644 --- a/pugl/detail/types.h +++ b/pugl/detail/types.h @@ -89,22 +89,22 @@ typedef void PuglSurface;  /** Graphics backend interface. */  struct PuglBackendImpl {  	/** Get visual information from display and setup view as necessary. */ -	int (*configure)(PuglView*); +	PuglStatus (*configure)(PuglView*);  	/** Create surface and drawing context. */ -	int (*create)(PuglView*); +	PuglStatus (*create)(PuglView*);  	/** Destroy surface and drawing context. */ -	int (*destroy)(PuglView*); +	PuglStatus (*destroy)(PuglView*);  	/** Enter drawing context, for drawing if parameter is true. */ -	int (*enter)(PuglView*, bool); +	PuglStatus (*enter)(PuglView*, bool);  	/** Leave drawing context, after drawing if parameter is true. */ -	int (*leave)(PuglView*, bool); +	PuglStatus (*leave)(PuglView*, bool);  	/** Resize drawing context to the given width and height. */ -	int (*resize)(PuglView*, int, int); +	PuglStatus (*resize)(PuglView*, int, int);  	/** Return the puglGetContext() handle for the application, if any. */  	void* (*getContext)(PuglView*); diff --git a/pugl/detail/win.c b/pugl/detail/win.c index 25780e0..90c133f 100644 --- a/pugl/detail/win.c +++ b/pugl/detail/win.c @@ -163,18 +163,18 @@ puglCreateWindow(PuglView* view, const char* title)  	// Register window class if necessary  	if (!puglRegisterWindowClass(view->world->className)) { -		return PUGL_ERR_UNKNOWN; +		return PUGL_REGISTRATION_FAILED;  	}  	if (!view->backend || !view->backend->configure) { -		return PUGL_ERR_UNKNOWN; +		return PUGL_BAD_BACKEND;  	} -	int st = view->backend->configure(view); +	PuglStatus st = view->backend->configure(view);  	if (st || !impl->surface) { -		return PUGL_ERR_SET_FORMAT; +		return PUGL_SET_FORMAT_FAILED;  	} else if ((st = view->backend->create(view))) { -		return PUGL_ERR_CREATE_CONTEXT; +		return PUGL_CREATE_CONTEXT_FAILED;  	}  	if (title) { @@ -828,7 +828,7 @@ puglSetFrame(PuglView* view, const PuglRect frame)  		                  rect.left, rect.top,  		                  rect.right - rect.left, rect.bottom - rect.top,  		                  (SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOZORDER))) { -			return PUGL_ERR_UNKNOWN; +			return PUGL_UNKNOWN_ERROR;  		}  	} @@ -896,7 +896,7 @@ puglSetClipboard(PuglView* const   view,  	if (st) {  		return st;  	} else if (!OpenClipboard(impl->hwnd)) { -		return PUGL_ERR_UNKNOWN; +		return PUGL_UNKNOWN_ERROR;  	}  	// Measure string and allocate global memory for clipboard @@ -905,7 +905,7 @@ puglSetClipboard(PuglView* const   view,  	HGLOBAL     mem  = GlobalAlloc(GMEM_MOVEABLE, (wlen + 1) * sizeof(wchar_t));  	if (!mem) {  		CloseClipboard(); -		return PUGL_ERR_UNKNOWN; +		return PUGL_UNKNOWN_ERROR;  	}  	// Lock global memory @@ -913,7 +913,7 @@ puglSetClipboard(PuglView* const   view,  	if (!wstr) {  		GlobalFree(mem);  		CloseClipboard(); -		return PUGL_ERR_UNKNOWN; +		return PUGL_UNKNOWN_ERROR;  	}  	// Convert string into global memory and set it as clipboard data diff --git a/pugl/detail/win.h b/pugl/detail/win.h index b9e554c..6d89759 100644 --- a/pugl/detail/win.h +++ b/pugl/detail/win.h @@ -104,11 +104,11 @@ puglWinCreateWindow(const PuglView* const view,  	                             CW_USEDEFAULT, CW_USEDEFAULT,  	                             wr.right-wr.left, wr.bottom-wr.top,  	                             (HWND)view->parent, NULL, NULL, NULL))) { -		return PUGL_ERR_CREATE_WINDOW; +		return PUGL_CREATE_WINDOW_FAILED;  	} else if (!(*hdc = GetDC(*hwnd))) {  		DestroyWindow(*hwnd);  		*hwnd = NULL; -		return PUGL_ERR_CREATE_WINDOW; +		return PUGL_CREATE_WINDOW_FAILED;  	}  	return PUGL_SUCCESS; diff --git a/pugl/detail/win_cairo.c b/pugl/detail/win_cairo.c index cbca7e8..741f4cf 100644 --- a/pugl/detail/win_cairo.c +++ b/pugl/detail/win_cairo.c @@ -51,7 +51,7 @@ puglWinCairoCreateDrawContext(PuglView* view)  	    (st = cairo_surface_status(surface->surface)) ||  	    !(surface->cr = cairo_create(surface->surface)) ||  	    (st = cairo_status(surface->cr))) { -		return PUGL_ERR_CREATE_CONTEXT; +		return PUGL_CREATE_CONTEXT_FAILED;  	}  	cairo_save(surface->cr); @@ -95,7 +95,7 @@ puglWinCairoConfigure(PuglView* view)  		DestroyWindow(impl->hwnd);  		impl->hwnd = NULL;  		impl->hdc  = NULL; -		return PUGL_ERR_SET_FORMAT; +		return PUGL_SET_FORMAT_FAILED;  	}  	impl->surface = (PuglWinCairoSurface*)calloc( diff --git a/pugl/detail/win_gl.c b/pugl/detail/win_gl.c index b7b03a4..db8fee5 100644 --- a/pugl/detail/win_gl.c +++ b/pugl/detail/win_gl.c @@ -77,8 +77,8 @@ typedef struct {  	HDC  hdc;  } PuglFakeWindow; -static int -puglWinError(PuglFakeWindow* fakeWin, const int status) +static PuglStatus +puglWinError(PuglFakeWindow* fakeWin, const PuglStatus status)  {  	if (fakeWin->hwnd) {  		ReleaseDC(fakeWin->hwnd, fakeWin->hdc); @@ -102,7 +102,7 @@ static PuglWinGlProcs puglWinGlGetProcs(void)  	return procs;  } -static int +static PuglStatus  puglWinGlConfigure(PuglView* view)  {  	PuglInternals* impl = view->impl; @@ -140,15 +140,15 @@ puglWinGlConfigure(PuglView* view)  	const PuglWinPFD fakePfd  = puglWinGetPixelFormatDescriptor(view->hints);  	const int        fakePfId = ChoosePixelFormat(fakeWin.hdc, &fakePfd);  	if (!fakePfId) { -		return puglWinError(&fakeWin, PUGL_ERR_SET_FORMAT); +		return puglWinError(&fakeWin, PUGL_SET_FORMAT_FAILED);  	} else if (!SetPixelFormat(fakeWin.hdc, fakePfId, &fakePfd)) { -		return puglWinError(&fakeWin, PUGL_ERR_SET_FORMAT); +		return puglWinError(&fakeWin, PUGL_SET_FORMAT_FAILED);  	}  	// Create fake GL context to get at the functions we need  	HGLRC fakeRc = wglCreateContext(fakeWin.hdc);  	if (!fakeRc) { -		return puglWinError(&fakeWin, PUGL_ERR_CREATE_CONTEXT); +		return puglWinError(&fakeWin, PUGL_CREATE_CONTEXT_FAILED);  	}  	// Enter fake context and get extension functions @@ -160,7 +160,7 @@ puglWinGlConfigure(PuglView* view)  		UINT numFormats = 0;  		if (!surface->procs.wglChoosePixelFormat(  			    fakeWin.hdc, pixelAttrs, NULL, 1u, &impl->pfId, &numFormats)) { -			return puglWinError(&fakeWin, PUGL_ERR_SET_FORMAT); +			return puglWinError(&fakeWin, PUGL_SET_FORMAT_FAILED);  		}  		DescribePixelFormat( @@ -177,10 +177,10 @@ puglWinGlConfigure(PuglView* view)  	ReleaseDC(fakeWin.hwnd, fakeWin.hdc);  	DestroyWindow(fakeWin.hwnd); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglWinGlCreate(PuglView* view)  {  	PuglInternals* const    impl    = view->impl; @@ -205,16 +205,16 @@ puglWinGlCreate(PuglView* view)  		DestroyWindow(impl->hwnd);  		impl->hwnd = NULL;  		impl->hdc  = NULL; -		return PUGL_ERR_SET_FORMAT; +		return PUGL_SET_FORMAT_FAILED;  	}  	// Create GL context  	if (surface->procs.wglCreateContextAttribs &&  	    !(surface->hglrc = surface->procs.wglCreateContextAttribs(  		      impl->hdc, 0, contextAttribs))) { -		return PUGL_ERR_CREATE_CONTEXT; +		return PUGL_CREATE_CONTEXT_FAILED;  	} else if (!(surface->hglrc = wglCreateContext(impl->hdc))) { -		return PUGL_ERR_CREATE_CONTEXT; +		return PUGL_CREATE_CONTEXT_FAILED;  	}  	// Enter context and set swap interval @@ -223,10 +223,10 @@ puglWinGlCreate(PuglView* view)  		surface->procs.wglSwapInterval(view->hints[PUGL_SWAP_INTERVAL]);  	} -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglWinGlDestroy(PuglView* view)  {  	PuglWinGlSurface* surface = (PuglWinGlSurface*)view->impl->surface; @@ -237,10 +237,10 @@ puglWinGlDestroy(PuglView* view)  		view->impl->surface = NULL;  	} -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglWinGlEnter(PuglView* view, bool drawing)  {  	PuglWinGlSurface* surface = (PuglWinGlSurface*)view->impl->surface; @@ -252,10 +252,10 @@ puglWinGlEnter(PuglView* view, bool drawing)  		BeginPaint(view->impl->hwnd, &ps);  	} -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglWinGlLeave(PuglView* view, bool drawing)  {  	if (drawing) { @@ -265,16 +265,15 @@ puglWinGlLeave(PuglView* view, bool drawing)  	}  	wglMakeCurrent(NULL, NULL); - -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglWinGlResize(PuglView* PUGL_UNUSED(view),                  int       PUGL_UNUSED(width),                  int       PUGL_UNUSED(height))  { -	return 0; +	return PUGL_SUCCESS;  }  static void* diff --git a/pugl/detail/x11.c b/pugl/detail/x11.c index adf8c9d..429d89f 100644 --- a/pugl/detail/x11.c +++ b/pugl/detail/x11.c @@ -127,7 +127,8 @@ puglPollEvents(PuglWorld* world, const double timeout)  		ret = select(nfds, &fds, NULL, NULL, &tv);  	} -	return ret < 0 ? PUGL_ERR_UNKNOWN : ret == 0 ? PUGL_FAILURE : PUGL_SUCCESS; +	return ret < 0 ? PUGL_UNKNOWN_ERROR +	               : ret == 0 ? PUGL_FAILURE : PUGL_SUCCESS;  }  static PuglView* @@ -185,10 +186,13 @@ puglCreateWindow(PuglView* view, const char* title)  	impl->screen  = DefaultScreen(display);  	if (!view->backend || !view->backend->configure) { -		return 1; -	} else if (view->backend->configure(view) || !impl->vi) { +		return PUGL_BAD_BACKEND; +	} + +	PuglStatus st = view->backend->configure(view); +	if (st || !impl->vi) {  		view->backend->destroy(view); -		return 2; +		return st ? st : PUGL_BACKEND_FAILED;  	}  	Window xParent = view->parent ? (Window)view->parent @@ -207,8 +211,8 @@ puglCreateWindow(PuglView* view, const char* title)  		0, impl->vi->depth, InputOutput,  		impl->vi->visual, CWColormap | CWEventMask, &attr); -	if (view->backend->create(view)) { -		return 3; +	if ((st = view->backend->create(view))) { +		return st;  	}  	XSizeHints sizeHints = getSizeHints(view); @@ -239,7 +243,7 @@ puglCreateWindow(PuglView* view, const char* title)  		fprintf(stderr, "warning: XCreateIC failed\n");  	} -	return 0; +	return PUGL_SUCCESS;  }  PuglStatus @@ -793,7 +797,7 @@ puglSetFrame(PuglView* view, const PuglRect frame)  	    XMoveResizeWindow(view->world->impl->display, view->impl->win,  	                      (int)frame.x, (int)frame.y,  	                      (int)frame.width, (int)frame.height)) { -		return PUGL_ERR_UNKNOWN; +		return PUGL_UNKNOWN_ERROR;  	}  	return PUGL_SUCCESS; diff --git a/pugl/detail/x11_cairo.c b/pugl/detail/x11_cairo.c index 550144a..0753317 100644 --- a/pugl/detail/x11_cairo.c +++ b/pugl/detail/x11_cairo.c @@ -38,7 +38,7 @@ typedef struct  {  	cairo_t*         frontCr;  } PuglX11CairoSurface; -static int +static PuglStatus  puglX11CairoConfigure(PuglView* view)  {  	PuglInternals* const impl = view->impl; @@ -48,10 +48,10 @@ puglX11CairoConfigure(PuglView* view)  	pat.screen = impl->screen;  	impl->vi = XGetVisualInfo(impl->display, VisualScreenMask, &pat, &n); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11CairoCreate(PuglView* view)  {  	PuglInternals* const impl    = view->impl; @@ -77,16 +77,16 @@ puglX11CairoCreate(PuglView* view)  		cairo_destroy(surface.backCr);  		cairo_surface_destroy(surface.front);  		cairo_surface_destroy(surface.back); -		return PUGL_ERR_CREATE_CONTEXT; +		return PUGL_CREATE_CONTEXT_FAILED;  	}  	impl->surface = calloc(1, sizeof(PuglX11CairoSurface));  	*(PuglX11CairoSurface*)impl->surface = surface; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11CairoDestroy(PuglView* view)  {  	PuglInternals* const       impl    = view->impl; @@ -98,10 +98,10 @@ puglX11CairoDestroy(PuglView* view)  	cairo_surface_destroy(surface->back);  	free(surface);  	impl->surface = NULL; -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11CairoEnter(PuglView* view, bool drawing)  {  	PuglInternals* const       impl    = view->impl; @@ -111,10 +111,10 @@ puglX11CairoEnter(PuglView* view, bool drawing)  		cairo_save(surface->frontCr);  	} -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11CairoLeave(PuglView* view, bool drawing)  {  	PuglInternals* const       impl    = view->impl; @@ -126,10 +126,10 @@ puglX11CairoLeave(PuglView* view, bool drawing)  		cairo_restore(surface->frontCr);  	} -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11CairoResize(PuglView* view, int width, int height)  {  	PuglInternals* const       impl    = view->impl; @@ -141,13 +141,13 @@ puglX11CairoResize(PuglView* view, int width, int height)  	cairo_surface_destroy(surface->front);  	if (!(surface->front = cairo_surface_create_similar(  		      surface->back, CAIRO_CONTENT_COLOR, width, height))) { -		return PUGL_ERR_CREATE_CONTEXT; +		return PUGL_CREATE_CONTEXT_FAILED;  	}  	surface->frontCr = cairo_create(surface->front);  	cairo_save(surface->frontCr); -	return 0; +	return PUGL_SUCCESS;  }  static void* diff --git a/pugl/detail/x11_gl.c b/pugl/detail/x11_gl.c index b6f3c51..ea93de2 100644 --- a/pugl/detail/x11_gl.c +++ b/pugl/detail/x11_gl.c @@ -39,13 +39,13 @@ typedef struct {  	int         double_buffered;  } PuglX11GlSurface; -static int +static PuglStatus  puglX11GlHintValue(const int value)  {  	return value == PUGL_DONT_CARE ? (int)GLX_DONT_CARE : value;  } -static int +static PuglStatus  puglX11GlGetAttrib(Display* const    display,                     const GLXFBConfig fb_config,                     const int         attrib) @@ -55,7 +55,7 @@ puglX11GlGetAttrib(Display* const    display,  	return value;  } -static int +static PuglStatus  puglX11GlConfigure(PuglView* view)  {  	PuglInternals* const impl    = view->impl; @@ -86,7 +86,7 @@ puglX11GlConfigure(PuglView* view)  	GLXFBConfig* fbc   = glXChooseFBConfig(display, screen, attrs, &n_fbc);  	if (n_fbc <= 0) {  		fprintf(stderr, "error: Failed to create GL context\n"); -		return 1; +		return PUGL_CREATE_CONTEXT_FAILED;  	}  	surface->fb_config = fbc[0]; @@ -105,10 +105,10 @@ puglX11GlConfigure(PuglView* view)  	XFree(fbc); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11GlCreate(PuglView* view)  {  	PuglInternals* const    impl      = view->impl; @@ -131,22 +131,25 @@ puglX11GlCreate(PuglView* view)  		(CreateContextAttribs)glXGetProcAddress(  			(const GLubyte*)"glXCreateContextAttribsARB"); -	impl->surface = surface; -	surface->ctx  = create_context(display, fb_config, 0, GL_TRUE, ctx_attrs); +	surface->ctx = create_context(display, fb_config, 0, GL_TRUE, ctx_attrs);  	if (!surface->ctx) {  		surface->ctx =  			glXCreateNewContext(display, fb_config, GLX_RGBA_TYPE, 0, True);  	} +	if (!surface->ctx) { +		return PUGL_CREATE_CONTEXT_FAILED; +	} +  	glXGetConfig(impl->display,  	             impl->vi,  	             GLX_DOUBLEBUFFER,  	             &surface->double_buffered); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11GlDestroy(PuglView* view)  {  	PuglX11GlSurface* surface = (PuglX11GlSurface*)view->impl->surface; @@ -155,18 +158,18 @@ puglX11GlDestroy(PuglView* view)  		free(surface);  		view->impl->surface = NULL;  	} -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11GlEnter(PuglView* view, bool PUGL_UNUSED(drawing))  {  	PuglX11GlSurface* surface = (PuglX11GlSurface*)view->impl->surface;  	glXMakeCurrent(view->impl->display, view->impl->win, surface->ctx); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11GlLeave(PuglView* view, bool drawing)  {  	PuglX11GlSurface* surface = (PuglX11GlSurface*)view->impl->surface; @@ -179,15 +182,15 @@ puglX11GlLeave(PuglView* view, bool drawing)  	glXMakeCurrent(view->impl->display, None, NULL); -	return 0; +	return PUGL_SUCCESS;  } -static int +static PuglStatus  puglX11GlResize(PuglView* PUGL_UNUSED(view),                  int       PUGL_UNUSED(width),                  int       PUGL_UNUSED(height))  { -	return 0; +	return PUGL_SUCCESS;  }  static void* diff --git a/pugl/pugl.h b/pugl/pugl.h index 580e9dc..067d780 100644 --- a/pugl/pugl.h +++ b/pugl/pugl.h @@ -80,13 +80,16 @@ typedef void* PuglHandle;     Return status code.  */  typedef enum { -	PUGL_SUCCESS, -	PUGL_FAILURE, -	PUGL_ERR_UNKNOWN, -	PUGL_ERR_CREATE_WINDOW, -	PUGL_ERR_SET_FORMAT, -	PUGL_ERR_CREATE_CONTEXT, -	PUGL_ERR_UNSUPPORTED_TYPE, +	PUGL_SUCCESS,               /**< Success */ +	PUGL_FAILURE,               /**< Non-fatal failure */ +	PUGL_UNKNOWN_ERROR,         /**< Unknown system error */ +	PUGL_BAD_BACKEND,           /**< Invalid or missing backend */ +	PUGL_BACKEND_FAILED,        /**< Backend initialisation failed */ +	PUGL_REGISTRATION_FAILED,   /**< Window class registration failed */ +	PUGL_CREATE_WINDOW_FAILED,  /**< Window creation failed */ +	PUGL_SET_FORMAT_FAILED,     /**< Failed to set pixel format */ +	PUGL_CREATE_CONTEXT_FAILED, /**< Failed to create drawing context */ +	PUGL_UNSUPPORTED_TYPE,      /**< Unsupported data type */  } PuglStatus;  /**  | 
