VirtualBox

root/trunk/include/VBox/HostServices/VBoxOpenGLSvc.h

Revision 8155, 4.6 kB (checked in by vboxsync, 9 months ago)

The Big Sun Rebranding Header Change

  • Property svn:eol-style set to native
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 */
48 typedef 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
59 typedef 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. */
89 typedef 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. */
114 typedef 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. */
148 typedef 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. */
188 typedef 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 browser.

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy