VirtualBox

source: vbox/trunk/src/VBox/HostServices/SharedOpenGL/expando/expandospu.h@ 67954

Last change on this file since 67954 was 56566, checked in by vboxsync, 9 years ago

Host 3D: Expando SPU, DLM module.

  • DLM module reworked. Now it uses hardware way in order to execute Display List (software approach dropped);
  • Chromium/utils slightly extended with more helper functions needed for Expando/DLM;
  • More testing needed especially for glCallLists() and glListBase();
  • Expando/DLM code now enabed for Mac hosts.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.1 KB
Line 
1/* $Id: expandospu.h 56566 2015-06-20 08:10:59Z vboxsync $ */
2/* Copyright (c) 2001, Stanford University
3 * All rights reserved.
4 *
5 * See the file LICENSE.txt for information on redistributing this software.
6 */
7
8#ifndef EXPANDO_SPU_H
9#define EXPANDO_SPU_H
10
11#ifdef WINDOWS
12#define EXPANDOSPU_APIENTRY __stdcall
13#else
14#define EXPANDOSPU_APIENTRY
15#endif
16
17#include "cr_glstate.h"
18#include "cr_spu.h"
19#include "cr_server.h"
20#include "cr_dlm.h"
21
22typedef struct {
23 int id;
24 int has_child;
25 SPUDispatchTable self, child, super;
26 CRServer *server;
27
28 /* Expando-specific variables */
29 CRHashTable *contextTable;
30} ExpandoSPU;
31
32typedef struct {
33 /* Local copy of state, needed by DLM to compile client-side stuff.
34 * We only collect client-side state; we ignore all server-side
35 * state (we just don't need it).
36 */
37 CRContext *State;
38
39 /* The DLM, and the per-context state for a DLM. Right now, every
40 * context will have its own DLM; it's possible in OpenGL to share
41 * DLMs, but the Chromium interface doesn't allow it yet.
42 */
43 CRDLM *dlm;
44 CRDLMContextState *dlmContext;
45} ExpandoContextState;
46
47extern ExpandoSPU expando_spu;
48
49extern SPUNamedFunctionTable _cr_expando_table[];
50
51extern SPUOptions expandoSPUOptions[];
52
53extern void expandospuGatherConfiguration( void );
54
55extern void expando_free_context_state(void *data);
56
57extern GLint EXPANDOSPU_APIENTRY expandoCreateContext(const char *displayName, GLint visBits, GLint shareCtx);
58extern void EXPANDOSPU_APIENTRY expandoDestroyContext(GLint contextId);
59extern void EXPANDOSPU_APIENTRY expandoMakeCurrent(GLint crWindow, GLint nativeWindow, GLint contextId);
60extern void EXPANDOSPU_APIENTRY expandoNewList(GLuint list, GLenum mode);
61extern void EXPANDOSPU_APIENTRY expandoEndList(void);
62extern void EXPANDOSPU_APIENTRY expandoDeleteLists(GLuint first, GLsizei range);
63extern GLuint EXPANDOSPU_APIENTRY expandoGenLists(GLsizei range);
64extern void EXPANDOSPU_APIENTRY expandoListBase(GLuint base);
65extern GLboolean EXPANDOSPU_APIENTRY expandoIsList(GLuint list);
66extern void EXPANDOSPU_APIENTRY expandoCallList(GLuint list);
67extern void EXPANDOSPU_APIENTRY expandoCallLists(GLsizei n, GLenum type, const GLvoid *lists);
68
69#endif /* EXPANDO_SPU_H */
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