summaryrefslogtreecommitdiffstats
path: root/src/VBox/Additions/common/crOpenGL/feedback/feedbackspu.h
blob: 7d72a70b21e8a343f9155265565ee335d5e2c317 (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
47
48
49
50
51
52
53
54
55
56
57
58
/* 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_feedback_feedbackspu_h
#define GA_INCLUDED_SRC_common_crOpenGL_feedback_feedbackspu_h
#ifndef RT_WITHOUT_PRAGMA_ONCE
# pragma once
#endif

#ifdef WINDOWS
#define FEEDBACKSPU_APIENTRY __stdcall
#else
#define FEEDBACKSPU_APIENTRY
#endif

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

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;
	SPUDispatchTable self, child, super;

	int render_mode;

	int default_viewport;

	CRCurrentStatePointers current;

    CRContext *defaultctx;
    int numContexts;
    ContextInfo context[CR_MAX_CONTEXTS];

#ifdef CHROMIUM_THREADSAFE
    CRmutex mutex;
#endif
} feedbackSPU;

extern feedbackSPU feedback_spu;

extern SPUNamedFunctionTable _cr_feedback_table[];

extern SPUOptions feedbackSPUOptions[];

extern void feedbackspuGatherConfiguration( void );

#endif /* !GA_INCLUDED_SRC_common_crOpenGL_feedback_feedbackspu_h */