aboutsummaryrefslogtreecommitdiffstats
path: root/pugl/pugl_stub_backend.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-10-27 11:20:47 +0100
committerDavid Robillard <d@drobilla.net>2019-11-03 21:03:18 +0100
commit14c7cb54a913be5a505148068582d9c56e3d1681 (patch)
treeb23af8d477bb623ae743492367e8ebeb0a43e699 /pugl/pugl_stub_backend.h
parent84754fdb2ff35779378e032ec2f195a22d66fe30 (diff)
downloadpugl-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.h103
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