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 |
|
---|
22 | typedef 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 |
|
---|
32 | typedef 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 |
|
---|
47 | extern ExpandoSPU expando_spu;
|
---|
48 |
|
---|
49 | extern SPUNamedFunctionTable _cr_expando_table[];
|
---|
50 |
|
---|
51 | extern SPUOptions expandoSPUOptions[];
|
---|
52 |
|
---|
53 | extern void expandospuGatherConfiguration( void );
|
---|
54 |
|
---|
55 | extern void expando_free_context_state(void *data);
|
---|
56 |
|
---|
57 | extern GLint EXPANDOSPU_APIENTRY expandoCreateContext(const char *displayName, GLint visBits, GLint shareCtx);
|
---|
58 | extern void EXPANDOSPU_APIENTRY expandoDestroyContext(GLint contextId);
|
---|
59 | extern void EXPANDOSPU_APIENTRY expandoMakeCurrent(GLint crWindow, GLint nativeWindow, GLint contextId);
|
---|
60 | extern void EXPANDOSPU_APIENTRY expandoNewList(GLuint list, GLenum mode);
|
---|
61 | extern void EXPANDOSPU_APIENTRY expandoEndList(void);
|
---|
62 | extern void EXPANDOSPU_APIENTRY expandoDeleteLists(GLuint first, GLsizei range);
|
---|
63 | extern GLuint EXPANDOSPU_APIENTRY expandoGenLists(GLsizei range);
|
---|
64 | extern void EXPANDOSPU_APIENTRY expandoListBase(GLuint base);
|
---|
65 | extern GLboolean EXPANDOSPU_APIENTRY expandoIsList(GLuint list);
|
---|
66 | extern void EXPANDOSPU_APIENTRY expandoCallList(GLuint list);
|
---|
67 | extern void EXPANDOSPU_APIENTRY expandoCallLists(GLsizei n, GLenum type, const GLvoid *lists);
|
---|
68 |
|
---|
69 | #endif /* EXPANDO_SPU_H */
|
---|