VirtualBox

source: vbox/trunk/src/VBox/GuestHost/OpenGL/state_tracker/state.h@ 41027

最後變更 在這個檔案從41027是 39602,由 vboxsync 提交於 13 年 前

wine/XPDM: 1. Additional swapchain creation fixes 2. De-libwine'ize wined3d 3. Single context per swapchain 4. wine & crOgl current context sync fixes 5. Proper Get/ReleaseDC handling

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Id
檔案大小: 2.1 KB
 
1/* Copyright (c) 2001, Stanford University
2 * All rights reserved.
3 *
4 * See the file LICENSE.txt for information on redistributing this software.
5 */
6
7#ifndef STATE_H
8#define STATE_H
9
10#include "cr_glstate.h"
11
12typedef struct _crCheckIDHWID {
13 GLuint id, hwid;
14} crCheckIDHWID_t;
15
16extern SPUDispatchTable diff_api;
17extern CRStateBits *__currentBits;
18
19#define GetCurrentBits() __currentBits
20
21#ifdef CHROMIUM_THREADSAFE
22#include <cr_threads.h>
23
24extern CRtsd __contextTSD;
25#define GetCurrentContext() VBoxTlsRefGetCurrent(CRContext, &__contextTSD)
26
27/* NOTE: below SetCurrentContext stuff is supposed to be used only internally!!
28 * it is placed here only to simplify things since some code besides state_init.c
29 * (i.e. state_glsl.c) is using it */
30#define SetCurrentContext(_ctx) VBoxTlsRefSetCurrent(CRContext, &__contextTSD, _ctx)
31#else
32extern CRContext *__currentContext;
33#define GetCurrentContext() __currentContext
34#endif
35
36extern void crStateTextureInitTextureObj (CRContext *ctx, CRTextureObj *tobj, GLuint name, GLenum target);
37extern void crStateTextureInitTextureFormat( CRTextureLevel *tl, GLenum internalFormat );
38
39/* Normally these functions would have been in cr_bufferobject.h but
40 * that led to a number of issues.
41 */
42void crStateBufferObjectInit(CRContext *ctx);
43
44void crStateBufferObjectDestroy (CRContext *ctx);
45
46void crStateBufferObjectDiff(CRBufferObjectBits *bb, CRbitvalue *bitID,
47 CRContext *fromCtx, CRContext *toCtx);
48
49void crStateBufferObjectSwitch(CRBufferObjectBits *bb, CRbitvalue *bitID,
50 CRContext *fromCtx, CRContext *toCtx);
51
52/* These would normally be in cr_client.h */
53
54void crStateClientDiff(CRClientBits *cb, CRbitvalue *bitID, CRContext *from, CRContext *to);
55
56void crStateClientSwitch(CRClientBits *cb, CRbitvalue *bitID, CRContext *from, CRContext *to);
57
58void crStateGetTextureObjectAndImage(CRContext *g, GLenum texTarget, GLint level,
59 CRTextureObj **obj, CRTextureLevel **img);
60
61void crStateFreeBufferObject(void *data);
62void crStateFreeFBO(void *data);
63void crStateFreeRBO(void *data);
64#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette