X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fcontext.h;h=9050fabc759abb430bc68f4ae708589818dc748b;hb=8e39ad2cd67d49be40ff0822f3269affdf83d601;hp=540b0a6ff44ee5d8cdb11cfa9883987f5b2ce380;hpb=53a36fc0da2b8a904ff82203317d083772acfdad;p=mesa.git diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h index 540b0a6ff44..9050fabc759 100644 --- a/src/mesa/main/context.h +++ b/src/mesa/main/context.h @@ -1,21 +1,21 @@ -/* $Id: context.h,v 1.8 1999/12/17 17:01:31 brianp Exp $ */ +/* $Id: context.h,v 1.22 2000/11/22 07:32:16 joukj Exp $ */ /* * Mesa 3-D graphics library * 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"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL @@ -30,7 +30,7 @@ #include "glapi.h" -#include "types.h" +#include "mtypes.h" /* @@ -57,20 +57,44 @@ * the colorbuffer, depth buffer, stencil buffer and accum buffer which will * be used by the GL context and framebuffer. */ -extern GLvisual *gl_create_visual( GLboolean rgbFlag, - GLboolean alphaFlag, - GLboolean dbFlag, - GLboolean stereoFlag, - GLint depthBits, - GLint stencilBits, - GLint accumBits, - GLint indexBits, - GLint redBits, - GLint greenBits, - GLint blueBits, - GLint alphaBits ); - -extern void gl_destroy_visual( GLvisual *vis ); +extern GLvisual * +_mesa_create_visual( GLboolean rgbFlag, + GLboolean dbFlag, + GLboolean stereoFlag, + GLint redBits, + GLint greenBits, + GLint blueBits, + GLint alphaBits, + GLint indexBits, + GLint depthBits, + GLint stencilBits, + GLint accumRedBits, + GLint accumGreenBits, + GLint accumBlueBits, + GLint accumAlphaBits, + GLint numSamples ); + +extern GLboolean +_mesa_initialize_visual( GLvisual *v, + GLboolean rgbFlag, + GLboolean dbFlag, + GLboolean stereoFlag, + GLint redBits, + GLint greenBits, + GLint blueBits, + GLint alphaBits, + GLint indexBits, + GLint depthBits, + GLint stencilBits, + GLint accumRedBits, + GLint accumGreenBits, + GLint accumBlueBits, + GLint accumAlphaBits, + GLint numSamples ); + +extern void +_mesa_destroy_visual( GLvisual *vis ); + /* @@ -78,13 +102,23 @@ extern void gl_destroy_visual( GLvisual *vis ); * 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 GLframebuffer * +_mesa_create_framebuffer( GLvisual *visual, + GLboolean softwareDepth, + GLboolean softwareStencil, + GLboolean softwareAccum, + GLboolean softwareAlpha ); + +extern void +_mesa_initialize_framebuffer( GLframebuffer *fb, + GLvisual *visual, + GLboolean softwareDepth, + GLboolean softwareStencil, + GLboolean softwareAccum, + GLboolean softwareAlpha ); -extern void gl_destroy_framebuffer( GLframebuffer *buffer ); +extern void +_mesa_destroy_framebuffer( GLframebuffer *buffer ); @@ -92,55 +126,58 @@ extern void gl_destroy_framebuffer( GLframebuffer *buffer ); * Create/destroy a GLcontext. A GLcontext is like a GLX context. It * contains the rendering state. */ -extern GLcontext *gl_create_context( GLvisual *visual, - GLcontext *share_list, - void *driver_ctx, - GLboolean direct); +extern GLcontext * +_mesa_create_context( GLvisual *visual, + GLcontext *share_list, + void *driver_ctx, + GLboolean direct); + +extern GLboolean +_mesa_initialize_context( GLcontext *ctx, + GLvisual *visual, + GLcontext *share_list, + void *driver_ctx, + GLboolean direct ); -extern void gl_destroy_context( GLcontext *ctx ); +extern void +_mesa_free_context_data( 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 +_mesa_destroy_context( GLcontext *ctx ); -extern void gl_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask); +extern void +_mesa_context_initialize( GLcontext *ctx ); -extern void gl_make_current( GLcontext *ctx, GLframebuffer *buffer ); +extern void +_mesa_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask); + +extern void +_mesa_make_current( GLcontext *ctx, GLframebuffer *buffer ); -extern void gl_make_current2( GLcontext *ctx, GLframebuffer *drawBuffer, - GLframebuffer *readBuffer ); +extern void +_mesa_make_current2( GLcontext *ctx, GLframebuffer *drawBuffer, + GLframebuffer *readBuffer ); + + +extern GLcontext * +_mesa_get_current_context(void); -extern GLcontext *gl_get_current_context(void); /* - * Macros for fetching current context, input buffer, etc. + * Macros for fetching current context. */ #ifdef THREADS -#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) (_glapi_ThreadSafe ? _glapi_get_current_context() : _glapi_CurrentContext) - -#define GET_IMMEDIATE struct immediate *IM = ((GLcontext *) (_glapi_ThreadSafe ? _glapi_get_current_context() : _glapi_CurrentContext))->input; -#define SET_IMMEDIATE(ctx, im) \ -do { \ - ctx->input = im; \ -} while (0) +#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) (_glapi_Context ? _glapi_Context : _glapi_get_context()) #else -extern struct immediate *CURRENT_INPUT; -#define GET_CURRENT_CONTEXT(C) GLcontext *C = _glapi_CurrentContext -#define GET_IMMEDIATE struct immediate *IM = CURRENT_INPUT -#define SET_IMMEDIATE(ctx, im) \ -do { \ - ctx->input = im; \ - CURRENT_INPUT = im; \ -} while (0) +#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) _glapi_Context #endif @@ -156,37 +193,36 @@ _mesa_get_dispatch(GLcontext *ctx); /* - * GL_MESA_resize_buffers extension + * Miscellaneous */ -extern void _mesa_ResizeBuffersMESA( void ); - +extern void +gl_problem( const GLcontext *ctx, const char *s ); -/* - * Miscellaneous - */ +extern void +_mesa_warning( const GLcontext *ctx, const char *s ); -extern void gl_problem( const GLcontext *ctx, const char *s ); +extern void +gl_error( GLcontext *ctx, GLenum error, const char *s ); -extern void gl_warning( const GLcontext *ctx, const char *s ); +extern void +_mesa_compile_error( GLcontext *ctx, GLenum error, 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 void gl_update_state( GLcontext *ctx ); +extern void +_mesa_Finish( void ); +extern void +_mesa_Flush( void ); -/* for debugging */ -extern void gl_print_state( const char *msg, GLuint state ); -/* for debugging */ -extern void gl_print_enable_flags( const char *msg, GLuint flags ); +extern void +gl_read_config_file(GLcontext *ctx); -#ifdef PROFILE -extern GLdouble gl_time( void ); -#endif +extern void +gl_register_config_var(const char *name, void (*notify)( const char *, int )); #endif