summaryrefslogtreecommitdiffstats
path: root/src/VBox/GuestHost/OpenGL/include/crut_api.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 03:01:46 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 03:01:46 +0000
commitf8fe689a81f906d1b91bb3220acde2a4ecb14c5b (patch)
tree26484e9d7e2c67806c2d1760196ff01aaa858e8c /src/VBox/GuestHost/OpenGL/include/crut_api.h
parentInitial commit. (diff)
downloadvirtualbox-f8fe689a81f906d1b91bb3220acde2a4ecb14c5b.tar.xz
virtualbox-f8fe689a81f906d1b91bb3220acde2a4ecb14c5b.zip
Adding upstream version 6.0.4-dfsg.upstream/6.0.4-dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/GuestHost/OpenGL/include/crut_api.h')
-rw-r--r--src/VBox/GuestHost/OpenGL/include/crut_api.h211
1 files changed, 211 insertions, 0 deletions
diff --git a/src/VBox/GuestHost/OpenGL/include/crut_api.h b/src/VBox/GuestHost/OpenGL/include/crut_api.h
new file mode 100644
index 00000000..67f80756
--- /dev/null
+++ b/src/VBox/GuestHost/OpenGL/include/crut_api.h
@@ -0,0 +1,211 @@
+#ifndef CRUTAPI_H
+#define CRUTAPI_H
+
+#ifdef WINDOWS
+#define CRUT_APIENTRY __stdcall
+#else
+#define CRUT_APIENTRY
+#endif
+
+#include "cr_net.h"
+#include "cr_protocol.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Compile-time version tests */
+#define CRUT_MAJOR_VERSION 1
+#define CRUT_MINOR_VERSION 9
+#define CRUT_PATCH_VERSION 0
+
+/* Display mode bit masks. */
+#define CRUT_RGB 0
+#define CRUT_RGBA GLUT_RGB
+#define CRUT_INDEX 1
+#define CRUT_SINGLE 0
+#define CRUT_DOUBLE 2
+#define CRUT_ACCUM 4
+#define CRUT_ALPHA 8
+#define CRUT_DEPTH 16
+#define CRUT_STENCIL 32
+
+/* Mouse buttons. */
+/* CRUT_NO_BUTTON provided for menu definition. Not every menu will
+ have a button associated with it. */
+#define CRUT_NO_BUTTON -1
+#define CRUT_LEFT_BUTTON 0
+#define CRUT_MIDDLE_BUTTON 1
+#define CRUT_RIGHT_BUTTON 2
+
+/* Mouse button state. */
+#define CRUT_DOWN 0
+#define CRUT_UP 1
+
+/* Visibility state. */
+#define CRUT_NOT_VISIBLE 0
+#define CRUT_VISIBLE 1
+
+/* function keys */
+#define CRUT_KEY_F1 1
+#define CRUT_KEY_F2 2
+#define CRUT_KEY_F3 3
+#define CRUT_KEY_F4 4
+#define CRUT_KEY_F5 5
+#define CRUT_KEY_F6 6
+#define CRUT_KEY_F7 7
+#define CRUT_KEY_F8 8
+#define CRUT_KEY_F9 9
+#define CRUT_KEY_F10 10
+#define CRUT_KEY_F11 11
+#define CRUT_KEY_F12 12
+/* directional keys */
+#define CRUT_KEY_LEFT 100
+#define CRUT_KEY_UP 101
+#define CRUT_KEY_RIGHT 102
+#define CRUT_KEY_DOWN 103
+#define CRUT_KEY_PAGE_UP 104
+#define CRUT_KEY_PAGE_DOWN 105
+#define CRUT_KEY_HOME 106
+#define CRUT_KEY_END 107
+#define CRUT_KEY_INSERT 108
+
+/* event types */
+#define CRUT_NO_EVENT 0
+#define CRUT_MOUSE_EVENT 1
+#define CRUT_RESHAPE_EVENT 2
+#define CRUT_KEYBOARD_EVENT 3
+#define CRUT_MOTION_EVENT 4
+#define CRUT_PASSIVE_MOTION_EVENT 5
+#define CRUT_MENU_EVENT 6
+#define CRUT_VISIBILITY_EVENT 7
+
+#define DEFAULT_CRUT_PORT 9000
+
+#define MENU_MAX_SIZE 1024
+#define MENU_ITEM_REGULAR 0
+#define MENU_ITEM_SUBMENU 1
+
+/* CRUTMessage is just a placeholder to find the msg_type */
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+
+} CRUTMessage;
+
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+ int button;
+ int state;
+ int x;
+ int y;
+
+} CRUTMouseMsg;
+
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+ int width;
+ int height;
+
+} CRUTReshapeMsg;
+
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+ int state;
+
+} CRUTVisibilityMsg;
+
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+ unsigned char key;
+ int x;
+ int y;
+
+} CRUTKeyboardMsg;
+
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+ int x;
+ int y;
+
+} CRUTMotionMsg;
+
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+ int x;
+ int y;
+
+} CRUTPassiveMotionMsg;
+
+typedef struct
+{
+ CRMessageHeader header;
+ int msg_type;
+ int menuID;
+ int value;
+
+} CRUTMenuMsg;
+
+typedef struct
+{
+ unsigned short tcpip_port;
+ int mtu;
+ char protocol[1024];
+ CRConnection *send_conn;
+
+} CRUTClientPointer;
+
+typedef struct
+{
+ CRUTClientPointer *crutclients;
+ CRConnection *mothershipConn;
+ int numclients;
+ int winX;
+ int winY;
+ int winWidth;
+ int winHeight;
+
+ int compositeAlpha;
+ int compositeDepth;
+
+ char menuBuffer[MENU_MAX_SIZE];
+
+} CRUTAPI;
+
+#define MAX_MSG_SIZE sizeof(CRUTMouseMsg)
+
+
+/* extern CRUTAPI crut_api;*/
+
+void CRUT_APIENTRY crutInitAPI( CRUTAPI *crut_api, const char *mothership );
+void CRUT_APIENTRY crutGetWindowParams( CRUTAPI *crut_api );
+void CRUT_APIENTRY crutGetMenuXML( CRUTAPI *crut_api );
+void CRUT_APIENTRY crutSetWindowID( CRUTAPI *crut_api, int windowID );
+void CRUT_APIENTRY crutConnectToClients( CRUTAPI *crut_api );
+void crutSendEvent( CRUTAPI *crut_api, void *msg, int size );
+void CRUT_APIENTRY crutSendMouseEvent( CRUTAPI *crut_api, int button, int state, int x, int y );
+void CRUT_APIENTRY crutSendKeyboardEvent( CRUTAPI *crut_api, int key, int x, int y );
+void CRUT_APIENTRY crutSendReshapeEvent( CRUTAPI *crut_api, int width, int height );
+void CRUT_APIENTRY crutSendVisibilityEvent( CRUTAPI *crut_api, int state );
+void CRUT_APIENTRY crutSendMotionEvent( CRUTAPI *crut_api, int x, int y );
+void CRUT_APIENTRY crutSendPassiveMotionEvent( CRUTAPI *crut_api, int x, int y );
+void CRUT_APIENTRY crutSendMenuEvent( CRUTAPI *crut_api, int menuID, int value );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CRUTAPI_H */