X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fcontext.h;h=c59a8b2118671c5ae06e4f81141a50d177b708a4;hb=c1f2f9090bcca309b9aeef7ae57acc280704db81;hp=838b7bbcddd23c9be31ff613ea4fef4b19e66d32;hpb=c40d1dd62dd9bcbb97128e37a75d991a8d3b2d8c;p=mesa.git diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h index 838b7bbcddd..c59a8b21186 100644 --- a/src/mesa/main/context.h +++ b/src/mesa/main/context.h @@ -21,9 +21,9 @@ /* * Mesa 3-D graphics library - * Version: 4.1 + * Version: 6.1 * - * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2004 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"), @@ -49,6 +49,7 @@ #include "glapi.h" +#include "imports.h" #include "mtypes.h" @@ -132,15 +133,15 @@ _mesa_destroy_framebuffer( GLframebuffer *buffer ); extern GLcontext * _mesa_create_context( const GLvisual *visual, GLcontext *share_list, - void *driver_ctx, - GLboolean direct ); + const struct dd_function_table *driverFunctions, + void *driverContext ); extern GLboolean _mesa_initialize_context( GLcontext *ctx, const GLvisual *visual, GLcontext *share_list, - void *driver_ctx, - GLboolean direct ); + const struct dd_function_table *driverFunctions, + void *driverContext ); extern void _mesa_free_context_data( GLcontext *ctx ); @@ -263,6 +264,7 @@ _mesa_Flush( void ); /** \name Macros for contexts/flushing. */ /*@{*/ + /** * Flush vertices. * @@ -272,13 +274,11 @@ _mesa_Flush( void ); * Checks if dd_function_table::NeedFlush is marked to flush stored vertices, * and calls dd_function_table::FlushVertices if so. Marks * __GLcontextRec::NewState with \p newstate. - * - * \todo Eventually let the driver specify what state changes require a flush: */ #define FLUSH_VERTICES(ctx, newstate) \ do { \ if (MESA_VERBOSE & VERBOSE_STATE) \ - _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", __FUNCTION__); \ + _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", MESA_FUNCTION);\ if (ctx->Driver.NeedFlush & FLUSH_STORED_VERTICES) \ ctx->Driver.FlushVertices(ctx, FLUSH_STORED_VERTICES); \ ctx->NewState |= newstate; \ @@ -297,7 +297,7 @@ do { \ #define FLUSH_CURRENT(ctx, newstate) \ do { \ if (MESA_VERBOSE & VERBOSE_STATE) \ - _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", __FUNCTION__); \ + _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", MESA_FUNCTION); \ if (ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) \ ctx->Driver.FlushVertices(ctx, FLUSH_UPDATE_CURRENT); \ ctx->NewState |= newstate; \ @@ -374,7 +374,12 @@ do { \ #define NEED_SECONDARY_COLOR(CTX) \ (((CTX)->Light.Enabled && \ (CTX)->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR) \ - || (CTX)->Fog.ColorSumEnabled) + || (CTX)->Fog.ColorSumEnabled \ + || ((CTX)->VertexProgram._Enabled && \ + ((CTX)->VertexProgram.Current->InputsRead & VERT_BIT_COLOR1)) \ + || ((CTX)->FragmentProgram._Enabled && \ + ((CTX)->FragmentProgram.Current->InputsRead & FRAG_BIT_COL1)) \ + ) /**