diff options
author | David Robillard <d@drobilla.net> | 2019-11-20 22:38:49 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-11-21 00:03:47 +0100 |
commit | 92288da76e879149179292f90dd2760f587c9132 (patch) | |
tree | ae45b25fc77623c5ef12265a936f927ada143f39 /pugl/pugl_gl.h | |
parent | 1e0b9d8d60d5e499775eddb30d53761379fa59e5 (diff) | |
download | pugl-92288da76e879149179292f90dd2760f587c9132.tar.gz pugl-92288da76e879149179292f90dd2760f587c9132.tar.bz2 pugl-92288da76e879149179292f90dd2760f587c9132.zip |
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.
Diffstat (limited to 'pugl/pugl_gl.h')
-rw-r--r-- | pugl/pugl_gl.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/pugl/pugl_gl.h b/pugl/pugl_gl.h new file mode 100644 index 0000000..7789116 --- /dev/null +++ b/pugl/pugl_gl.h @@ -0,0 +1,53 @@ +/* + Copyright 2012-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_gl.h OpenGL-specific API. +*/ + +#ifndef PUGL_PUGL_GL_H +#define PUGL_PUGL_GL_H + +#include "pugl/pugl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + OpenGL extension function. +*/ +typedef void (*PuglGlFunc)(void); + +/** + Return the address of an OpenGL extension function. +*/ +PUGL_API PuglGlFunc +puglGetProcAddress(const char* name); + +/** + OpenGL graphics backend. + + Pass the return value to puglInitBackend() to draw to a view with OpenGL. +*/ +PUGL_API const PuglBackend* +puglGlBackend(void); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif // PUGL_PUGL_GL_H |