summaryrefslogtreecommitdiff
path: root/include/VBox/HostServices/VBoxCrOpenGLSvc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/VBox/HostServices/VBoxCrOpenGLSvc.h')
-rw-r--r--include/VBox/HostServices/VBoxCrOpenGLSvc.h69
1 files changed, 66 insertions, 3 deletions
diff --git a/include/VBox/HostServices/VBoxCrOpenGLSvc.h b/include/VBox/HostServices/VBoxCrOpenGLSvc.h
index 150faac7..e09f9a2f 100644
--- a/include/VBox/HostServices/VBoxCrOpenGLSvc.h
+++ b/include/VBox/HostServices/VBoxCrOpenGLSvc.h
@@ -4,7 +4,7 @@
*/
/*
- * Copyright (C) 2006-2007 Oracle Corporation
+ * Copyright (C) 2006-2012 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
@@ -31,6 +31,8 @@
#include <VBox/VMMDev.h>
#include <VBox/VBoxGuest2.h>
#include <VBox/hgcmsvc.h>
+#include <VBox/VBoxVideo.h>
+#include <VBox/VBoxVideoHost3D.h>
/* crOpenGL host functions */
#define SHCRGL_HOST_FN_SET_CONSOLE (1)
@@ -43,6 +45,11 @@
#endif
#define SHCRGL_HOST_FN_VIEWPORT_CHANGED (15)
#define SHCRGL_HOST_FN_SET_OUTPUT_REDIRECT (20)
+#define SHCRGL_HOST_FN_DEV_RESIZE (22)
+#define SHCRGL_HOST_FN_VIEWPORT_CHANGED2 (23)
+#define SHCRGL_HOST_FN_TAKE_SCREENSHOT (24)
+#define SHCRGL_HOST_FN_WINDOWS_SHOW (25)
+#define SHCRGL_HOST_FN_CTL (26)
/* crOpenGL guest functions */
#define SHCRGL_GUEST_FN_WRITE (2)
#define SHCRGL_GUEST_FN_READ (3)
@@ -52,22 +59,27 @@
#define SHCRGL_GUEST_FN_SET_PID (12)
#define SHCRGL_GUEST_FN_WRITE_BUFFER (13)
#define SHCRGL_GUEST_FN_WRITE_READ_BUFFERED (14)
+#define SHCRGL_GUEST_FN_GET_CAPS (15)
/* Parameters count */
#define SHCRGL_CPARMS_SET_CONSOLE (1)
#define SHCRGL_CPARMS_SET_VM (1)
-#define SHCRGL_CPARMS_SET_VISIBLE_REGION (2)
+#define SHCRGL_CPARMS_SET_VISIBLE_REGION (1)
#define SHCRGL_CPARMS_WRITE (1)
#define SHCRGL_CPARMS_READ (2)
#define SHCRGL_CPARMS_WRITE_READ (3)
#define SHCRGL_CPARMS_SET_VERSION (2)
#define SHCRGL_CPARMS_SCREEN_CHANGED (1)
+#define SHCRGL_CPARMS_DEV_RESIZE (1)
#define SHCRGL_CPARMS_INJECT (2)
#define SHCRGL_CPARMS_SET_PID (1)
#define SHCRGL_CPARMS_WRITE_BUFFER (4)
#define SHCRGL_CPARMS_WRITE_READ_BUFFERED (3)
#define SHCRGL_CPARMS_SET_OUTPUT_REDIRECT (1)
+#define SHCRGL_CPARMS_CRCMD_NOTIFY_CMDS (0)
#define SHCRGL_CPARMS_VIEWPORT_CHANGED (5)
+#define SHCRGL_CPARMS_VIEWPORT_CHANGED2 (1)
+#define SHCRGL_CPARMS_GET_CAPS (1)
/* @todo Move to H3DOR.h begin */
@@ -89,7 +101,7 @@ typedef struct {
int32_t x, int32_t y, uint32_t w, uint32_t h));
/* Update the window visible region. */
DECLR3CALLBACKMEMBER(void, H3DORVisibleRegion, (void *pvInstance,
- uint32_t cRects, RTRECT *paRects));
+ uint32_t cRects, const RTRECT *paRects));
/* A rendered 3D frame is ready. Format of pvData is "pszFormat" parameter of H3DORBegin. */
DECLR3CALLBACKMEMBER(void, H3DORFrame, (void *pvInstance,
void *pvData, uint32_t cbData));
@@ -268,6 +280,17 @@ typedef struct
} CRVBOXHGCMSETVERSION;
+/** GUEST_FN_GET_CAPS Parameters structure. */
+typedef struct
+{
+ VBoxGuestHGCMCallInfo hdr;
+
+ /** 32bit, out
+ * Caps
+ */
+ HGCMFunctionParameter Caps;
+} CRVBOXHGCMGETCAPS;
+
/** GUEST_FN_INJECT Parameters structure. */
typedef struct
{
@@ -343,4 +366,44 @@ typedef struct
} CRVBOXHGCMWRITEREADBUFFERED;
+
+typedef struct
+{
+ VBVAINFOSCREEN Screen;
+ void *pvVRAM;
+} CRVBOXHGCMDEVRESIZE;
+
+typedef struct
+{
+ uint32_t u32Screen;
+ uint32_t x;
+ uint32_t y;
+ uint32_t width;
+ uint32_t height;
+} CRVBOXHGCMVIEWPORT;
+
+typedef DECLCALLBACKPTR(void, PFNCRSCREENSHOTREPORT)(void *pvCtx, uint32_t uScreen,
+ uint32_t x, uint32_t y, uint32_t uBitsPerPixel,
+ uint32_t uBytesPerLine, uint32_t uGuestWidth, uint32_t uGuestHeight,
+ uint8_t *pu8BufferAddress, uint64_t u64TimeStamp);
+
+typedef DECLCALLBACKPTR(bool, PFNCRSCREENSHOTBEGIN)(void *pvCtx, uint32_t uScreen, uint64_t u64TimeStamp);
+typedef DECLCALLBACKPTR(void, PFNCRSCREENSHOTEND)(void *pvCtx, uint32_t uScreen, uint64_t u64TimeStamp);
+
+#define CRSCREEN_ALL (0xffffffff)
+
+typedef struct
+{
+ /* screen id or CRSCREEN_ALL to specify all enabled */
+ uint32_t u32Screen;
+ uint32_t u32Width;
+ uint32_t u32Height;
+ uint32_t u32Pitch;
+ void *pvBuffer;
+ void *pvContext;
+ PFNCRSCREENSHOTBEGIN pfnScreenshotBegin;
+ PFNCRSCREENSHOTREPORT pfnScreenshotPerform;
+ PFNCRSCREENSHOTEND pfnScreenshotEnd;
+} CRVBOXHGCMTAKESCREENSHOT;
+
#endif