From 92288da76e879149179292f90dd2760f587c9132 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 20 Nov 2019 22:38:49 +0100 Subject: Rename "backend" headers Working on Vulkan clarified what has always been slightly smelly about the design and organization here: not everything that is API specific is really in a "backend" (a PuglBackend). The concrete example is puglGetProcAddress(), which only makes sense for GL and is actually implemented in the "backend" files. Arguably puglGetContext() is also such a thing. So, rename the headers so they can be the place where API-specific things go in general, which happens to include a backend most of the time. The stub is a bit of an exception to this, but whatever. The includes look tidier this way. In place of the old headers are compatibility stubs that just emit a warning and include the new version, which will be maintained for a while. --- pugl/pugl_stub.h | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 pugl/pugl_stub.h (limited to 'pugl/pugl_stub.h') diff --git a/pugl/pugl_stub.h b/pugl/pugl_stub.h new file mode 100644 index 0000000..40d1036 --- /dev/null +++ b/pugl/pugl_stub.h @@ -0,0 +1,113 @@ +/* + Copyright 2019 David Robillard + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +/** + @file pugl_stub.h Stub backend functions and accessor declaration. +*/ + +#ifndef PUGL_PUGL_STUB_H +#define PUGL_PUGL_STUB_H + +#include "pugl/pugl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + Stub graphics backend. + + This backend just creates a simple native window without setting up any + portable graphics API. +*/ +PUGL_API +const PuglBackend* +puglStubBackend(void); + +/** + @name Stub backend functions + + Implementations of stub backend functions which do nothing and always return + success. These do not make for a usable backend on their own since the + platform implementation would fail to create a window, but are useful for + other backends to reuse since not all need non-trivial implementations of + every backend function. + + @{ +*/ + +static inline PuglStatus +puglStubConfigure(PuglView* view) +{ + (void)view; + return PUGL_SUCCESS; +} + +static inline PuglStatus +puglStubCreate(PuglView* view) +{ + (void)view; + return PUGL_SUCCESS; +} + +static inline PuglStatus +puglStubDestroy(PuglView* view) +{ + (void)view; + return PUGL_SUCCESS; +} + +static inline PuglStatus +puglStubEnter(PuglView* view, bool drawing) +{ + (void)view; + (void)drawing; + return PUGL_SUCCESS; +} + +static inline PuglStatus +puglStubLeave(PuglView* view, bool drawing) +{ + (void)view; + (void)drawing; + return PUGL_SUCCESS; +} + +static inline PuglStatus +puglStubResize(PuglView* view, int width, int height) +{ + (void)view; + (void)width; + (void)height; + return PUGL_SUCCESS; +} + +static inline void* +puglStubGetContext(PuglView* view) +{ + (void)view; + return NULL; +} + +/** + @} +*/ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif // PUGL_PUGL_STUB_H -- cgit v1.2.1