ogl_beamforming

Ultrasound Beamforming Implemented with OpenGL
git clone anongit@rnpnr.xyz:ogl_beamforming.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

opengl.h (4312B)


      1 /* See LICENSE for license details. */
      2 #ifndef _OPENGL_H_
      3 #define _OPENGL_H_
      4 
      5 #if OS_WINDOWS
      6 /* NOTE: msys2 compatibility kludge */
      7 #define WINGDIAPI
      8 #define APIENTRY
      9 #endif
     10 
     11 #include <GL/gl.h>
     12 
     13 /* NOTE: do not add extra 0s to these, even at the start -> garbage compilers will complain */
     14 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
     15 #define GL_TEXTURE_UPDATE_BARRIER_BIT      0x00000100
     16 
     17 #define GL_NONE                            0
     18 
     19 #define GL_CLAMP_TO_BORDER                 0x812D
     20 #define GL_RG32F                           0x8230
     21 #define GL_READ_ONLY                       0x88B8
     22 #define GL_WRITE_ONLY                      0x88B9
     23 #define GL_READ_WRITE                      0x88BA
     24 #define GL_DEBUG_OUTPUT                    0x92E0
     25 
     26 #define GL_DEDICATED_MEMORY_OBJECT_EXT     0x9581
     27 #define GL_HANDLE_TYPE_OPAQUE_FD_EXT       0x9586
     28 #define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT    0x9587
     29 #define GL_LAYOUT_COLOR_ATTACHMENT_EXT     0x958E
     30 #define GL_LAYOUT_SHADER_READ_ONLY_EXT     0x9591
     31 
     32 typedef char GLchar;
     33 typedef i64  GLsizeiptr;
     34 typedef i64  GLintptr;
     35 typedef u64  GLuint64;
     36 
     37 /* X(name, ret, params) */
     38 #define OGLProcedureList \
     39 	X(glBindImageTexture,                    void,   (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \
     40 	X(glClearNamedFramebufferfv,             void,   (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value)) \
     41 	X(glClearTexImage,                       void,   (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)) \
     42 	X(glCreateTextures,                      void,   (GLenum target, GLsizei n, GLuint *textures)) \
     43 	X(glDebugMessageCallback,                void,   (void (*)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *user), void *user)) \
     44 	X(glDispatchCompute,                     void,   (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \
     45 	X(glMemoryBarrier,                       void,   (GLbitfield barriers)) \
     46 	X(glObjectLabel,                         void,   (GLenum identifier, GLuint name, GLsizei length, const char *label)) \
     47 	X(glTextureParameteri,                   void,   (GLuint texture, GLenum pname, GLint param)) \
     48 	X(glTextureParameterfv,                  void,   (GLuint texture, GLenum pname, const GLfloat *param)) \
     49 
     50 #define OGLRequiredExtensionProcedureListBase \
     51 	X(glCreateMemoryObjectsEXT,              void,   (GLsizei n, GLuint *memoryObjects)) \
     52 	X(glDeleteMemoryObjectsEXT,              void,   (GLsizei n, GLuint *memoryObjects)) \
     53 	X(glGenSemaphoresEXT,                    void,   (GLsizei n, GLuint *semaphores)) \
     54 	X(glMemoryObjectParameterivEXT,          void,   (GLuint memoryObject, GLenum pname, const GLint *params)) \
     55 	X(glSignalSemaphoreEXT,                  void,   (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts)) \
     56 	X(glTextureStorageMem2DEXT,              void,   (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \
     57 	X(glWaitSemaphoreEXT,                    void,   (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts)) \
     58 
     59 #define OGLRequiredExtensionProcedureListW32 \
     60 	X(glImportMemoryWin32HandleEXT,          void,   (GLuint memory, GLuint64 size, GLenum handleType, void *handle)) \
     61 	X(glImportSemaphoreWin32HandleEXT,       void,   (GLuint semaphore, GLenum handleType, void *handle)) \
     62 
     63 #define OGLRequiredExtensionProcedureListLinux \
     64 	X(glImportMemoryFdEXT,                   void,   (GLuint memory, GLuint64 size, GLenum handleType, int fd)) \
     65 	X(glImportSemaphoreFdEXT,                void,   (GLuint semaphore, GLenum handleType, int fd)) \
     66 
     67 #define OGLRequiredExtensionProcedureList \
     68 	OGLRequiredExtensionProcedureListBase \
     69 	OGLRequiredExtensionProcedureListW32 \
     70 	OGLRequiredExtensionProcedureListLinux \
     71 
     72 #define X(name, ret, params) typedef ret name##_fn params;
     73 OGLProcedureList
     74 OGLRequiredExtensionProcedureList
     75 #undef X
     76 #define X(name, ret, params) DEBUG_IMPORT name##_fn *name;
     77 OGLProcedureList
     78 OGLRequiredExtensionProcedureList
     79 #undef X
     80 
     81 #endif /* _OPENGL_H_*/