#define CONTEXT_H
-#include "glapi.h"
#include "imports.h"
#include "mtypes.h"
+struct _glapi_table;
+
+
/** \name Visual-related functions */
/*@{*/
const struct dd_function_table *driverFunctions,
void *driverContext );
+extern void
+_mesa_initialize_context_extra(GLcontext *ctx);
+
extern void
_mesa_free_context_data( GLcontext *ctx );
extern void
+_mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height);
+
+extern GLboolean
_mesa_make_current( GLcontext *ctx, GLframebuffer *drawBuffer,
GLframebuffer *readBuffer );
/*@}*/
-/** \name OpenGL SI-style export functions */
-/*@{*/
+extern void
+_mesa_notifySwapBuffers(__GLcontext *gc);
-extern GLboolean
-_mesa_destroyContext(__GLcontext *gc);
-extern GLboolean
-_mesa_loseCurrent(__GLcontext *gc);
+extern struct _glapi_table *
+_mesa_get_dispatch(GLcontext *ctx);
-extern GLboolean
-_mesa_makeCurrent(__GLcontext *gc);
-extern GLboolean
-_mesa_shareContext(__GLcontext *gc, __GLcontext *gcShare);
+void
+_mesa_set_mvp_with_dp4( GLcontext *ctx,
+ GLboolean flag );
-extern GLboolean
-_mesa_copyContext(__GLcontext *dst, const __GLcontext *src, GLuint mask);
extern GLboolean
-_mesa_forceCurrent(__GLcontext *gc);
+_mesa_valid_to_render(GLcontext *ctx, const char *where);
-extern GLboolean
-_mesa_notifyResize(__GLcontext *gc);
-extern void
-_mesa_notifyDestroy(__GLcontext *gc);
+
+/** \name Miscellaneous */
+/*@{*/
extern void
-_mesa_notifySwapBuffers(__GLcontext *gc);
+_mesa_record_error( GLcontext *ctx, GLenum error );
-extern struct __GLdispatchStateRec *
-_mesa_dispatchExec(__GLcontext *gc);
extern void
-_mesa_beginDispatchOverride(__GLcontext *gc);
+_mesa_finish(GLcontext *ctx);
extern void
-_mesa_endDispatchOverride(__GLcontext *gc);
-
-/*@}*/
-
-
-extern struct _glapi_table *
-_mesa_get_dispatch(GLcontext *ctx);
-
-
+_mesa_flush(GLcontext *ctx);
-/** \name Miscellaneous */
-/*@{*/
-
-extern void
-_mesa_record_error( GLcontext *ctx, GLenum error );
extern void GLAPIENTRY
_mesa_Finish( void );
/*@}*/
-
/**
* \name Macros for flushing buffered rendering commands before state changes,
* checking if inside glBegin/glEnd, etc.
(((CTX)->Light.Enabled && \
(CTX)->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR) \
|| (CTX)->Fog.ColorSumEnabled \
- || ((CTX)->VertexProgram._Enabled && \
- ((CTX)->VertexProgram.Current->Base.InputsRead & VERT_BIT_COLOR1)) \
- || ((CTX)->FragmentProgram._Enabled && \
- ((CTX)->FragmentProgram.Current->Base.InputsRead & FRAG_BIT_COL1)) \
+ || ((CTX)->VertexProgram._Current && \
+ ((CTX)->VertexProgram._Current != (CTX)->VertexProgram._TnlProgram) && \
+ ((CTX)->VertexProgram._Current->Base.InputsRead & VERT_BIT_COLOR1)) \
+ || ((CTX)->FragmentProgram._Current && \
+ ((CTX)->FragmentProgram._Current != (CTX)->FragmentProgram._TexEnvProgram) && \
+ ((CTX)->FragmentProgram._Current->Base.InputsRead & FRAG_BIT_COL1)) \
)
+/**
+ * Is RGBA LogicOp enabled?
+ */
+#define RGBA_LOGICOP_ENABLED(CTX) \
+ ((CTX)->Color.ColorLogicOpEnabled || \
+ ((CTX)->Color.BlendEnabled && (CTX)->Color.BlendEquationRGB == GL_LOGIC_OP))
+
+
#endif /* CONTEXT_H */