2025-09-30 13:04:40 +00:00
|
|
|
/*!
|
2025-10-28 20:40:26 +00:00
|
|
|
* @file Mw/Widget/OpenGL.h
|
|
|
|
|
* @brief OpenGL widget
|
2025-09-30 13:04:40 +00:00
|
|
|
*/
|
2025-10-04 16:34:24 +00:00
|
|
|
#ifndef __MW_WIDGET_OPENGL_H__
|
|
|
|
|
#define __MW_WIDGET_OPENGL_H__
|
2025-09-29 08:20:45 +00:00
|
|
|
|
|
|
|
|
#include <Mw/MachDep.h>
|
|
|
|
|
#include <Mw/TypeDefs.h>
|
2025-10-20 21:55:30 +00:00
|
|
|
#include <Mw/Core.h>
|
2025-09-29 08:20:45 +00:00
|
|
|
|
2025-10-10 10:17:30 +00:00
|
|
|
#ifdef _WIN32
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
#else
|
|
|
|
|
#include <GL/glx.h>
|
|
|
|
|
#endif
|
|
|
|
|
#include <GL/gl.h>
|
|
|
|
|
|
|
|
|
|
#ifndef GLAPIENTRY
|
|
|
|
|
#define GLAPIENTRY APIENTRY
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-09-29 08:20:45 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
2025-09-30 13:04:40 +00:00
|
|
|
/*!
|
2025-10-28 20:40:26 +00:00
|
|
|
* @brief OpenGL widget class
|
2025-09-30 13:04:40 +00:00
|
|
|
*/
|
2025-09-29 08:20:45 +00:00
|
|
|
MWDECL MwClass MwOpenGLClass;
|
|
|
|
|
|
2025-09-30 13:04:40 +00:00
|
|
|
/*!
|
2025-10-28 20:40:26 +00:00
|
|
|
* @brief Make a widget current OpenGL context
|
|
|
|
|
* @param handle Widget
|
2025-09-30 13:04:40 +00:00
|
|
|
*/
|
2025-10-20 21:55:30 +00:00
|
|
|
MwInline void MwOpenGLMakeCurrent(MwWidget handle) {
|
2025-10-21 16:14:09 +00:00
|
|
|
MwVaWidgetExecute(handle, "mwOpenGLMakeCurrent", NULL);
|
2025-11-09 12:13:46 +00:00
|
|
|
}
|
2025-09-30 13:04:40 +00:00
|
|
|
|
2025-10-01 05:55:19 +00:00
|
|
|
/*!
|
2025-10-28 20:40:26 +00:00
|
|
|
* @brief Get a procedure from OpenGL
|
|
|
|
|
* @param handle Widget
|
|
|
|
|
* @param name Name
|
|
|
|
|
* @return Procedure
|
2025-10-01 05:55:19 +00:00
|
|
|
*/
|
2025-10-20 21:55:30 +00:00
|
|
|
MwInline void* MwOpenGLGetProcAddress(MwWidget handle, const char* name) {
|
|
|
|
|
void* out;
|
2025-10-21 16:14:09 +00:00
|
|
|
MwVaWidgetExecute(handle, "mwOpenGLGetProcAddress", &out, name);
|
2025-10-20 21:55:30 +00:00
|
|
|
return out;
|
2025-11-09 12:13:46 +00:00
|
|
|
}
|
2025-10-01 05:55:19 +00:00
|
|
|
|
2025-09-30 13:04:40 +00:00
|
|
|
/*!
|
2025-10-28 20:40:26 +00:00
|
|
|
* @brief Swaps the buffer of OpenGL context
|
|
|
|
|
* @param handle Widget
|
2025-09-30 13:04:40 +00:00
|
|
|
*/
|
2025-10-20 21:55:30 +00:00
|
|
|
MwInline void MwOpenGLSwapBuffer(MwWidget handle) {
|
2025-10-21 16:14:09 +00:00
|
|
|
MwVaWidgetExecute(handle, "mwOpenGLSwapBuffer", NULL);
|
2025-11-09 12:13:46 +00:00
|
|
|
}
|
2025-09-29 08:20:45 +00:00
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif
|