summaryrefslogtreecommitdiffstats
path: root/src/VBox/Additions/common/crOpenGL/array/arrayspu.h
blob: f31dea5ce58a4496ccadf9acea8dd47242669b5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* Copyright (c) 2001, Stanford University
 * All rights reserved.
 *
 * See the file LICENSE.txt for information on redistributing this software.
 */

#ifndef GA_INCLUDED_SRC_common_crOpenGL_array_arrayspu_h
#define GA_INCLUDED_SRC_common_crOpenGL_array_arrayspu_h
#ifndef RT_WITHOUT_PRAGMA_ONCE
# pragma once
#endif

#ifdef WINDOWS
#define ARRAYSPU_APIENTRY __stdcall
#else
#define ARRAYSPU_APIENTRY
#endif

#include "cr_spu.h"
#include "cr_glstate.h"

void arrayspuSetVBoxConfiguration( void );

typedef struct context_info_t ContextInfo;

struct context_info_t {
    CRContext *clientState;  /* used to store client-side GL state */
    GLint clientCtx;         /* client context ID */
};

typedef struct {
    int id;
    int has_child;
    CRContext *defaultctx;
    SPUDispatchTable self, child, super;
    int numContexts;
    ContextInfo context[CR_MAX_CONTEXTS];
} ArraySPU;

extern ArraySPU array_spu;

#ifdef CHROMIUM_THREADSAFE
extern CRmutex _ArrayMutex;
#endif

#endif /* !GA_INCLUDED_SRC_common_crOpenGL_array_arrayspu_h */