diff options
author | David Robillard <d@drobilla.net> | 2019-10-27 11:20:47 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-11-03 21:03:18 +0100 |
commit | 14c7cb54a913be5a505148068582d9c56e3d1681 (patch) | |
tree | b23af8d477bb623ae743492367e8ebeb0a43e699 /pugl/pugl_stub_backend.h | |
parent | 84754fdb2ff35779378e032ec2f195a22d66fe30 (diff) | |
download | pugl-14c7cb54a913be5a505148068582d9c56e3d1681.tar.gz pugl-14c7cb54a913be5a505148068582d9c56e3d1681.tar.bz2 pugl-14c7cb54a913be5a505148068582d9c56e3d1681.zip |
Add stub implementations of backend functions
Towards having actual trivial backends, but in general allows backends to not
declare functions they don't care about which is nice and already a net
reduction of actual code.
Diffstat (limited to 'pugl/pugl_stub_backend.h')
-rw-r--r-- | pugl/pugl_stub_backend.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/pugl/pugl_stub_backend.h b/pugl/pugl_stub_backend.h new file mode 100644 index 0000000..27a961b --- /dev/null +++ b/pugl/pugl_stub_backend.h @@ -0,0 +1,103 @@ +/* + Copyright 2019 David Robillard <http://drobilla.net> + + 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_backend.h Stub backend functions. +*/ + +#ifndef PUGL_STUB_BACKEND_H +#define PUGL_STUB_BACKEND_H + +#include "pugl/pugl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + @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_STUB_BACKEND_H |