summaryrefslogtreecommitdiff
path: root/xc/extras/Mesa/src/context.h
diff options
context:
space:
mode:
authorbrianp <brianp>2000-01-30 00:27:01 +0000
committerbrianp <brianp>2000-01-30 00:27:01 +0000
commit713d446c68c05d534c848cd22ad2f6663ed9e960 (patch)
tree8330044e6bc178c6a7e3851547c8341f773700e8 /xc/extras/Mesa/src/context.h
parent67eb4e0b8d9308db3496a2a52f8cf98463f3305f (diff)
Merged dispatch-0-0-1dispatch-0-0-1-20000129-merge
Diffstat (limited to 'xc/extras/Mesa/src/context.h')
-rw-r--r--xc/extras/Mesa/src/context.h111
1 files changed, 73 insertions, 38 deletions
diff --git a/xc/extras/Mesa/src/context.h b/xc/extras/Mesa/src/context.h
index 382e2a4bc..ee8d74b6e 100644
--- a/xc/extras/Mesa/src/context.h
+++ b/xc/extras/Mesa/src/context.h
@@ -1,10 +1,10 @@
-/* $Id: context.h,v 1.3 1999/12/14 02:39:38 daryll Exp $ */
+/* $Id: context.h,v 1.4 2000/01/30 00:27:01 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.1
+ * Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -25,32 +25,14 @@
*/
-
-
-
#ifndef CONTEXT_H
#define CONTEXT_H
+#include "glapi.h"
#include "types.h"
-
-#ifdef THREADS
- /*
- * A seperate GLcontext for each thread
- */
- extern GLcontext *gl_get_thread_context( void );
-#else
- /*
- * All threads use same pointer to current context.
- */
- extern GLcontext *CC;
- extern struct immediate *CURRENT_INPUT;
-#endif
-
-
-
/*
* There are three Mesa datatypes which are meant to be used by device
* drivers:
@@ -92,6 +74,21 @@ extern void gl_destroy_visual( GLvisual *vis );
/*
+ * Create/destroy a GLframebuffer. A GLframebuffer is like a GLX drawable.
+ * It bundles up the depth buffer, stencil buffer and accum buffers into a
+ * single entity.
+ */
+extern GLframebuffer *gl_create_framebuffer( GLvisual *visual,
+ GLboolean softwareDepth,
+ GLboolean softwareStencil,
+ GLboolean softwareAccum,
+ GLboolean softwareAlpha );
+
+extern void gl_destroy_framebuffer( GLframebuffer *buffer );
+
+
+
+/*
* Create/destroy a GLcontext. A GLcontext is like a GLX context. It
* contains the rendering state.
*/
@@ -100,38 +97,78 @@ extern GLcontext *gl_create_context( GLvisual *visual,
void *driver_ctx,
GLboolean direct);
+extern GLboolean gl_initialize_context_data( GLcontext *ctx,
+ GLvisual *visual,
+ GLcontext *share_list,
+ void *driver_ctx,
+ GLboolean direct );
+
+extern void gl_free_context_data( GLcontext *ctx );
+
extern void gl_destroy_context( GLcontext *ctx );
-/* Called by the driver after both the context and driver are fully
- * initialized. Currently just reads the config file.
- */
+
extern void gl_context_initialize( GLcontext *ctx );
+
+extern void gl_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask);
+
+
+extern void gl_make_current( GLcontext *ctx, GLframebuffer *buffer );
+
+
+extern void gl_make_current2( GLcontext *ctx, GLframebuffer *drawBuffer,
+ GLframebuffer *readBuffer );
+
+
+extern GLcontext *gl_get_current_context(void);
+
+
/*
- * Create/destroy a GLframebuffer. A GLframebuffer is like a GLX drawable.
- * It bundles up the depth buffer, stencil buffer and accum buffers into a
- * single entity.
+ * Macros for fetching current context, input buffer, etc.
*/
-extern GLframebuffer *gl_create_framebuffer( GLvisual *visual );
+#ifdef THREADS
-extern void gl_destroy_framebuffer( GLframebuffer *buffer );
+#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) (_glapi_Context ? _glapi_Context : _glapi_get_context())
+#define GET_IMMEDIATE struct immediate *IM = ((GLcontext *) (_glapi_Context ? _glapi_Context : _glapi_get_context()))->input
+#define SET_IMMEDIATE(ctx, im) \
+do { \
+ ctx->input = im; \
+} while (0)
-extern void gl_make_current( GLcontext *ctx, GLframebuffer *buffer );
+#else
-extern GLcontext *gl_get_current_context(void);
+extern struct immediate *_mesa_CurrentInput;
-extern void gl_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask);
+#define GET_CURRENT_CONTEXT(C) GLcontext *C = _glapi_Context
+
+#define GET_IMMEDIATE struct immediate *IM = _mesa_CurrentInput
+
+#define SET_IMMEDIATE(ctx, im) \
+do { \
+ ctx->input = im; \
+ _mesa_CurrentInput = im; \
+} while (0)
+
+#endif
-extern void gl_set_api_table( GLcontext *ctx, const struct gl_api_table *api );
+
+
+extern void
+_mesa_swapbuffers(GLcontext *ctx);
+
+
+extern struct _glapi_table *
+_mesa_get_dispatch(GLcontext *ctx);
/*
* GL_MESA_resize_buffers extension
*/
-extern void gl_ResizeBuffersMESA( GLcontext *ctx );
+extern void _mesa_ResizeBuffersMESA( void );
@@ -144,10 +181,8 @@ extern void gl_problem( const GLcontext *ctx, const char *s );
extern void gl_warning( const GLcontext *ctx, const char *s );
extern void gl_error( GLcontext *ctx, GLenum error, const char *s );
-extern void gl_compile_error( GLcontext *ctx, GLenum error, const char *s );
-
-extern GLenum gl_GetError( GLcontext *ctx );
+extern void gl_compile_error( GLcontext *ctx, GLenum error, const char *s );
extern void gl_update_state( GLcontext *ctx );