VirtualBox

source: vbox/trunk/include/VBox/HostServices/VBoxOpenGLSvc.h@ 18216

Last change on this file since 18216 was 8155, checked in by vboxsync, 17 years ago

The Big Sun Rebranding Header Change

  • Property svn:eol-style set to native
File size: 4.6 KB
Line 
1/** @file
2 * OpenGL:
3 * Common header for host service and guest clients.
4 */
5
6/*
7 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 *
17 * The contents of this file may alternatively be used under the terms
18 * of the Common Development and Distribution License Version 1.0
19 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20 * VirtualBox OSE distribution, in which case the provisions of the
21 * CDDL are applicable instead of those of the GPL.
22 *
23 * You may elect to license modified versions of this file under the
24 * terms and conditions of either the GPL or the CDDL or both.
25 *
26 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
27 * Clara, CA 95054 USA or visit http://www.sun.com if you need
28 * additional information or have any questions.
29 */
30
31#ifndef ___VBox_HostService_VBoxOpenGLSvc_h
32#define ___VBox_HostService_VBoxOpenGLSvc_h
33
34#include <VBox/types.h>
35#include <VBox/VBoxGuest.h>
36#include <VBox/hgcmsvc.h>
37
38/* OpenGL command buffer size */
39#define VBOX_OGL_MAX_CMD_BUFFER (128*1024)
40#define VBOX_OGL_CMD_ALIGN 4
41#define VBOX_OGL_CMD_ALIGN_MASK (VBOX_OGL_CMD_ALIGN-1)
42#define VBOX_OGL_CMD_MAGIC 0x1234ABCD
43
44/* for debugging */
45#define VBOX_OGL_CMD_STRICT
46
47/* OpenGL command block */
48typedef struct
49{
50#ifdef VBOX_OGL_CMD_STRICT
51 uint32_t Magic;
52#endif
53 uint32_t enmOp;
54 uint32_t cbCmd;
55 uint32_t cParams;
56 /* start of variable size parameter array */
57} VBOX_OGL_CMD, *PVBOX_OGL_CMD;
58
59typedef struct
60{
61#ifdef VBOX_OGL_CMD_STRICT
62 uint32_t Magic;
63#endif
64 uint32_t cbParam;
65 /* start of variable size parameter */
66} VBOX_OGL_VAR_PARAM, *PVBOX_OGL_VAR_PARAM;
67
68/** OpenGL Folders service functions. (guest)
69 * @{
70 */
71
72/** Query mappings changes. */
73#define VBOXOGL_FN_GLGETSTRING (1)
74#define VBOXOGL_FN_GLFLUSH (2)
75#define VBOXOGL_FN_GLFLUSHPTR (3)
76#define VBOXOGL_FN_GLCHECKEXT (4)
77
78/** @} */
79
80/** Function parameter structures.
81 * @{
82 */
83
84/**
85 * VBOXOGL_FN_GLGETSTRING
86 */
87
88/** Parameters structure. */
89typedef struct
90{
91 VBoxGuestHGCMCallInfo hdr;
92
93 /** 32bit, in: name
94 * GLenum name parameter
95 */
96 HGCMFunctionParameter name;
97
98 /** pointer, in/out
99 * Buffer for requested string
100 */
101 HGCMFunctionParameter pString;
102} VBoxOGLglGetString;
103
104/** Number of parameters */
105#define VBOXOGL_CPARMS_GLGETSTRING (2)
106
107
108
109/**
110 * VBOXOGL_FN_GLFLUSH
111 */
112
113/** Parameters structure. */
114typedef struct
115{
116 VBoxGuestHGCMCallInfo hdr;
117
118 /** pointer, in
119 * Command buffer
120 */
121 HGCMFunctionParameter pCmdBuffer;
122
123 /** 32bit, out: cCommands
124 * Number of commands in the buffer
125 */
126 HGCMFunctionParameter cCommands;
127
128 /** 64bit, out: retval
129 * uint64_t return code of last command
130 */
131 HGCMFunctionParameter retval;
132
133 /** 32bit, out: lasterror
134 * GLenum current last error
135 */
136 HGCMFunctionParameter lasterror;
137
138} VBoxOGLglFlush;
139
140/** Number of parameters */
141#define VBOXOGL_CPARMS_GLFLUSH (4)
142
143/**
144 * VBOXOGL_FN_GLFLUSHPTR
145 */
146
147/** Parameters structure. */
148typedef struct
149{
150 VBoxGuestHGCMCallInfo hdr;
151
152 /** pointer, in
153 * Command buffer
154 */
155 HGCMFunctionParameter pCmdBuffer;
156
157 /** 32bit, out: cCommands
158 * Number of commands in the buffer
159 */
160 HGCMFunctionParameter cCommands;
161
162 /** pointer, in
163 * Last command's final parameter memory block
164 */
165 HGCMFunctionParameter pLastParam;
166
167 /** 64bit, out: retval
168 * uint64_t return code of last command
169 */
170 HGCMFunctionParameter retval;
171
172 /** 32bit, out: lasterror
173 * GLenum current last error
174 */
175 HGCMFunctionParameter lasterror;
176
177} VBoxOGLglFlushPtr;
178
179/** Number of parameters */
180#define VBOXOGL_CPARMS_GLFLUSHPTR (5)
181
182
183/**
184 * VBOXOGL_FN_GLCHECKEXT
185 */
186
187/** Parameters structure. */
188typedef struct
189{
190 VBoxGuestHGCMCallInfo hdr;
191
192 /** pointer, in
193 * Extension function name
194 */
195 HGCMFunctionParameter pszExtFnName;
196
197} VBoxOGLglCheckExt;
198
199/** Number of parameters */
200#define VBOXOGL_CPARMS_GLCHECKEXT (1)
201
202/** @} */
203
204
205#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette