diff options
author | David Robillard <d@drobilla.net> | 2022-06-05 20:24:51 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-06-08 19:48:13 -0400 |
commit | 27ce10b5039e931eaad33e9499a630552d4e1f06 (patch) | |
tree | 9ad33d28562935d72f768e68e9d24531b6059d8a /src/internal.h | |
parent | bb0fe3975df149eb45a21e39940f71e2273c8fd5 (diff) | |
download | pugl-27ce10b5039e931eaad33e9499a630552d4e1f06.tar.gz pugl-27ce10b5039e931eaad33e9499a630552d4e1f06.tar.bz2 pugl-27ce10b5039e931eaad33e9499a630552d4e1f06.zip |
Separate private and public function implementations
Diffstat (limited to 'src/internal.h')
-rw-r--r-- | src/internal.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/internal.h b/src/internal.h new file mode 100644 index 0000000..cfd65d2 --- /dev/null +++ b/src/internal.h @@ -0,0 +1,65 @@ +// Copyright 2012-2022 David Robillard <d@drobilla.net> +// SPDX-License-Identifier: ISC + +#ifndef PUGL_INTERNAL_H +#define PUGL_INTERNAL_H + +#include "attributes.h" +#include "types.h" + +#include "pugl/pugl.h" + +#include <stddef.h> +#include <stdint.h> + +PUGL_BEGIN_DECLS + +/// Set `blob` to `data` with length `len`, reallocating if necessary +PuglStatus +puglSetBlob(PuglBlob* dest, const void* data, size_t len); + +/// Reallocate and set `*dest` to `string` +void +puglSetString(char** dest, const char* string); + +/// Allocate and initialise world internals (implemented once per platform) +PuglWorldInternals* +puglInitWorldInternals(PuglWorldType type, PuglWorldFlags flags); + +/// Destroy and free world internals (implemented once per platform) +void +puglFreeWorldInternals(PuglWorld* world); + +/// Allocate and initialise view internals (implemented once per platform) +PuglInternals* +puglInitViewInternals(PuglWorld* world); + +/// Destroy and free view internals (implemented once per platform) +void +puglFreeViewInternals(PuglView* view); + +/// Return the Unicode code point for `buf` or the replacement character +uint32_t +puglDecodeUTF8(const uint8_t* buf); + +/// Dispatch an event with a simple `type` to `view` +PuglStatus +puglDispatchSimpleEvent(PuglView* view, PuglEventType type); + +/// Process configure event while already in the graphics context +PUGL_WARN_UNUSED_RESULT +PuglStatus +puglConfigure(PuglView* view, const PuglEvent* event); + +/// Process expose event while already in the graphics context +PUGL_WARN_UNUSED_RESULT +PuglStatus +puglExpose(PuglView* view, const PuglEvent* event); + +/// Dispatch `event` to `view`, entering graphics context if necessary +PuglStatus +puglDispatchEvent(PuglView* view, const PuglEvent* event); + +PUGL_END_DECLS + +#endif // PUGL_INTERNAL_H |