diff options
Diffstat (limited to 'src/mesa')
869 files changed, 12415 insertions, 8124 deletions
diff --git a/src/mesa/Makefile b/src/mesa/Makefile index c41c38cba6..7a6936e210 100644 --- a/src/mesa/Makefile +++ b/src/mesa/Makefile @@ -34,7 +34,7 @@ ES1_CPPFLAGS := -DFEATURE_ES1=1 $(DEFINES) ES2_CPPFLAGS := -DFEATURE_ES2=1 $(DEFINES) # append include dirs -MESA_CPPFLAGS += $(INCLUDE_DIRS) +MESA_CPPFLAGS += $(INCLUDE_DIRS) $(TALLOC_CFLAGS) ES1_CPPFLAGS += -I$(TOP)/src/mapi/es1api $(INCLUDE_DIRS) ES2_CPPFLAGS += -I$(TOP)/src/mapi/es2api $(INCLUDE_DIRS) diff --git a/src/mesa/SConscript b/src/mesa/SConscript index 28598f4a17..c89e635aab 100644 --- a/src/mesa/SConscript +++ b/src/mesa/SConscript @@ -224,6 +224,7 @@ if env['platform'] != 'winddk': 'program/prog_statevars.c', 'program/prog_uniform.c', 'program/programopt.c', + 'program/sampler.cpp', 'program/symbol_table.c', ] diff --git a/src/mesa/drivers/beos/GLView.cpp b/src/mesa/drivers/beos/GLView.cpp index a029f6b200..ee3415b3d1 100644 --- a/src/mesa/drivers/beos/GLView.cpp +++ b/src/mesa/drivers/beos/GLView.cpp @@ -105,7 +105,7 @@ public: MesaDriver(); ~MesaDriver(); - void Init(BGLView * bglview, GLcontext * c, GLvisual * v, GLframebuffer * b); + void Init(BGLView * bglview, struct gl_context * c, struct gl_config * v, struct gl_framebuffer * b); void LockGL(); void UnlockGL(); @@ -120,9 +120,9 @@ private: MesaDriver(const MesaDriver &rhs); // copy constructor illegal MesaDriver &operator=(const MesaDriver &rhs); // assignment oper. illegal - GLcontext * m_glcontext; - GLvisual * m_glvisual; - GLframebuffer * m_glframebuffer; + struct gl_context * m_glcontext; + struct gl_config * m_glvisual; + struct gl_framebuffer * m_glframebuffer; BGLView * m_bglview; BBitmap * m_bitmap; @@ -134,119 +134,119 @@ private: GLuint m_height; // Mesa Device Driver callback functions - static void UpdateState(GLcontext *ctx, GLuint new_state); - static void ClearIndex(GLcontext *ctx, GLuint index); - static void ClearColor(GLcontext *ctx, const GLfloat color[4]); - static void Clear(GLcontext *ctx, GLbitfield mask, + static void UpdateState(struct gl_context *ctx, GLuint new_state); + static void ClearIndex(struct gl_context *ctx, GLuint index); + static void ClearColor(struct gl_context *ctx, const GLfloat color[4]); + static void Clear(struct gl_context *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height); - static void ClearFront(GLcontext *ctx, GLboolean all, GLint x, GLint y, + static void ClearFront(struct gl_context *ctx, GLboolean all, GLint x, GLint y, GLint width, GLint height); - static void ClearBack(GLcontext *ctx, GLboolean all, GLint x, GLint y, + static void ClearBack(struct gl_context *ctx, GLboolean all, GLint x, GLint y, GLint width, GLint height); - static void Index(GLcontext *ctx, GLuint index); - static void Color(GLcontext *ctx, GLubyte r, GLubyte g, + static void Index(struct gl_context *ctx, GLuint index); + static void Color(struct gl_context *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a); - static void SetBuffer(GLcontext *ctx, GLframebuffer *colorBuffer, + static void SetBuffer(struct gl_context *ctx, struct gl_framebuffer *colorBuffer, GLenum mode); - static void GetBufferSize(GLframebuffer * framebuffer, GLuint *width, + static void GetBufferSize(struct gl_framebuffer * framebuffer, GLuint *width, GLuint *height); - static void Error(GLcontext *ctx); - static const GLubyte * GetString(GLcontext *ctx, GLenum name); - static void Viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); + static void Error(struct gl_context *ctx); + static const GLubyte * GetString(struct gl_context *ctx, GLenum name); + static void Viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h); // Front-buffer functions - static void WriteRGBASpanFront(const GLcontext *ctx, GLuint n, + static void WriteRGBASpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][4], const GLubyte mask[]); - static void WriteRGBSpanFront(const GLcontext *ctx, GLuint n, + static void WriteRGBSpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][3], const GLubyte mask[]); - static void WriteMonoRGBASpanFront(const GLcontext *ctx, GLuint n, + static void WriteMonoRGBASpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]); - static void WriteRGBAPixelsFront(const GLcontext *ctx, GLuint n, + static void WriteRGBAPixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], CONST GLubyte rgba[][4], const GLubyte mask[]); - static void WriteMonoRGBAPixelsFront(const GLcontext *ctx, GLuint n, + static void WriteMonoRGBAPixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[]); - static void WriteCI32SpanFront(const GLcontext *ctx, GLuint n, + static void WriteCI32SpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLuint index[], const GLubyte mask[]); - static void WriteCI8SpanFront(const GLcontext *ctx, GLuint n, + static void WriteCI8SpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLubyte index[], const GLubyte mask[]); - static void WriteMonoCISpanFront(const GLcontext *ctx, GLuint n, + static void WriteMonoCISpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint colorIndex, const GLubyte mask[]); - static void WriteCI32PixelsFront(const GLcontext *ctx, + static void WriteCI32PixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLuint index[], const GLubyte mask[]); - static void WriteMonoCIPixelsFront(const GLcontext *ctx, GLuint n, + static void WriteMonoCIPixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint colorIndex, const GLubyte mask[]); - static void ReadCI32SpanFront(const GLcontext *ctx, + static void ReadCI32SpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint index[]); - static void ReadRGBASpanFront(const GLcontext *ctx, GLuint n, + static void ReadRGBASpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4]); - static void ReadCI32PixelsFront(const GLcontext *ctx, + static void ReadCI32PixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint indx[], const GLubyte mask[]); - static void ReadRGBAPixelsFront(const GLcontext *ctx, + static void ReadRGBAPixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[]); // Back buffer functions - static void WriteRGBASpanBack(const GLcontext *ctx, GLuint n, + static void WriteRGBASpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][4], const GLubyte mask[]); - static void WriteRGBSpanBack(const GLcontext *ctx, GLuint n, + static void WriteRGBSpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][3], const GLubyte mask[]); - static void WriteMonoRGBASpanBack(const GLcontext *ctx, GLuint n, + static void WriteMonoRGBASpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]); - static void WriteRGBAPixelsBack(const GLcontext *ctx, GLuint n, + static void WriteRGBAPixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], CONST GLubyte rgba[][4], const GLubyte mask[]); - static void WriteMonoRGBAPixelsBack(const GLcontext *ctx, GLuint n, + static void WriteMonoRGBAPixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[]); - static void WriteCI32SpanBack(const GLcontext *ctx, GLuint n, + static void WriteCI32SpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLuint index[], const GLubyte mask[]); - static void WriteCI8SpanBack(const GLcontext *ctx, GLuint n, GLint x, GLint y, + static void WriteCI8SpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLubyte index[], const GLubyte mask[]); - static void WriteMonoCISpanBack(const GLcontext *ctx, GLuint n, + static void WriteMonoCISpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint colorIndex, const GLubyte mask[]); - static void WriteCI32PixelsBack(const GLcontext *ctx, + static void WriteCI32PixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLuint index[], const GLubyte mask[]); - static void WriteMonoCIPixelsBack(const GLcontext *ctx, + static void WriteMonoCIPixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint colorIndex, const GLubyte mask[]); - static void ReadCI32SpanBack(const GLcontext *ctx, + static void ReadCI32SpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint index[]); - static void ReadRGBASpanBack(const GLcontext *ctx, GLuint n, + static void ReadRGBASpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4]); - static void ReadCI32PixelsBack(const GLcontext *ctx, + static void ReadCI32PixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint indx[], const GLubyte mask[]); - static void ReadRGBAPixelsBack(const GLcontext *ctx, + static void ReadRGBAPixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[]); @@ -297,7 +297,7 @@ BGLView::BGLView(BRect rect, char *name, MesaDriver * md = new MesaDriver(); // examine option flags and create gl_context struct - GLvisual * visual = _mesa_create_visual( dblFlag, + struct gl_config * visual = _mesa_create_visual( dblFlag, stereoFlag, red, green, blue, alpha, depth, @@ -319,7 +319,7 @@ BGLView::BGLView(BRect rect, char *name, functions.Viewport = md->Viewport; // create core context - GLcontext *ctx = _mesa_create_context(visual, NULL, &functions, md); + struct gl_context *ctx = _mesa_create_context(visual, NULL, &functions, md); if (! ctx) { _mesa_destroy_visual(visual); delete md; @@ -332,7 +332,7 @@ BGLView::BGLView(BRect rect, char *name, // create core framebuffer - GLframebuffer * buffer = _mesa_create_framebuffer(visual, + struct gl_framebuffer * buffer = _mesa_create_framebuffer(visual, depth > 0 ? GL_TRUE : GL_FALSE, stencil > 0 ? GL_TRUE: GL_FALSE, accum > 0 ? GL_TRUE : GL_FALSE, @@ -668,7 +668,7 @@ MesaDriver::~MesaDriver() } -void MesaDriver::Init(BGLView * bglview, GLcontext * ctx, GLvisual * visual, GLframebuffer * framebuffer) +void MesaDriver::Init(BGLView * bglview, struct gl_context * ctx, struct gl_config * visual, struct gl_framebuffer * framebuffer) { m_bglview = bglview; m_glcontext = ctx; @@ -815,14 +815,14 @@ void MesaDriver::Draw(BRect updateRect) const } -void MesaDriver::Error(GLcontext *ctx) +void MesaDriver::Error(struct gl_context *ctx) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; if (md && md->m_bglview) md->m_bglview->ErrorCallback((unsigned long) ctx->ErrorValue); } -void MesaDriver::UpdateState( GLcontext *ctx, GLuint new_state ) +void MesaDriver::UpdateState( struct gl_context *ctx, GLuint new_state ) { struct swrast_device_driver * swdd = _swrast_GetDeviceDriverReference( ctx ); @@ -868,14 +868,14 @@ void MesaDriver::UpdateState( GLcontext *ctx, GLuint new_state ) } -void MesaDriver::ClearIndex(GLcontext *ctx, GLuint index) +void MesaDriver::ClearIndex(struct gl_context *ctx, GLuint index) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; md->m_clear_index = index; } -void MesaDriver::ClearColor(GLcontext *ctx, const GLfloat color[4]) +void MesaDriver::ClearColor(struct gl_context *ctx, const GLfloat color[4]) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; CLAMPED_FLOAT_TO_CHAN(md->m_clear_color[BE_RCOMP], color[0]); @@ -886,7 +886,7 @@ void MesaDriver::ClearColor(GLcontext *ctx, const GLfloat color[4]) } -void MesaDriver::Clear(GLcontext *ctx, GLbitfield mask, +void MesaDriver::Clear(struct gl_context *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height) { @@ -903,7 +903,7 @@ void MesaDriver::Clear(GLcontext *ctx, GLbitfield mask, } -void MesaDriver::ClearFront(GLcontext *ctx, +void MesaDriver::ClearFront(struct gl_context *ctx, GLboolean all, GLint x, GLint y, GLint width, GLint height) { @@ -947,7 +947,7 @@ void MesaDriver::ClearFront(GLcontext *ctx, } -void MesaDriver::ClearBack(GLcontext *ctx, +void MesaDriver::ClearBack(struct gl_context *ctx, GLboolean all, GLint x, GLint y, GLint width, GLint height) { @@ -984,7 +984,7 @@ void MesaDriver::ClearBack(GLcontext *ctx, } -void MesaDriver::SetBuffer(GLcontext *ctx, GLframebuffer *buffer, +void MesaDriver::SetBuffer(struct gl_context *ctx, struct gl_framebuffer *buffer, GLenum mode) { /* TODO */ @@ -993,7 +993,7 @@ void MesaDriver::SetBuffer(GLcontext *ctx, GLframebuffer *buffer, (void) mode; } -void MesaDriver::GetBufferSize(GLframebuffer * framebuffer, GLuint *width, +void MesaDriver::GetBufferSize(struct gl_framebuffer * framebuffer, GLuint *width, GLuint *height) { GET_CURRENT_CONTEXT(ctx); @@ -1028,14 +1028,14 @@ void MesaDriver::GetBufferSize(GLframebuffer * framebuffer, GLuint *width, } -void MesaDriver::Viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) +void MesaDriver::Viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { /* poll for window size change and realloc software Z/stencil/etc if needed */ _mesa_ResizeBuffersMESA(); } -const GLubyte *MesaDriver::GetString(GLcontext *ctx, GLenum name) +const GLubyte *MesaDriver::GetString(struct gl_context *ctx, GLenum name) { switch (name) { case GL_RENDERER: @@ -1057,7 +1057,7 @@ inline void Plot(BGLView *bglview, int x, int y) } -void MesaDriver::WriteRGBASpanFront(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteRGBASpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][4], const GLubyte mask[]) @@ -1082,7 +1082,7 @@ void MesaDriver::WriteRGBASpanFront(const GLcontext *ctx, GLuint n, } } -void MesaDriver::WriteRGBSpanFront(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteRGBSpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][3], const GLubyte mask[]) @@ -1107,7 +1107,7 @@ void MesaDriver::WriteRGBSpanFront(const GLcontext *ctx, GLuint n, } } -void MesaDriver::WriteMonoRGBASpanFront(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoRGBASpanFront(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]) @@ -1131,7 +1131,7 @@ void MesaDriver::WriteMonoRGBASpanFront(const GLcontext *ctx, GLuint n, } } -void MesaDriver::WriteRGBAPixelsFront(const GLcontext *ctx, +void MesaDriver::WriteRGBAPixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], CONST GLubyte rgba[][4], const GLubyte mask[] ) @@ -1156,7 +1156,7 @@ void MesaDriver::WriteRGBAPixelsFront(const GLcontext *ctx, } -void MesaDriver::WriteMonoRGBAPixelsFront(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoRGBAPixelsFront(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[]) @@ -1181,21 +1181,21 @@ void MesaDriver::WriteMonoRGBAPixelsFront(const GLcontext *ctx, GLuint n, } -void MesaDriver::WriteCI32SpanFront( const GLcontext *ctx, GLuint n, GLint x, GLint y, +void MesaDriver::WriteCI32SpanFront( const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLuint index[], const GLubyte mask[] ) { printf("WriteCI32SpanFront() not implemented yet!\n"); // TODO } -void MesaDriver::WriteCI8SpanFront( const GLcontext *ctx, GLuint n, GLint x, GLint y, +void MesaDriver::WriteCI8SpanFront( const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLubyte index[], const GLubyte mask[] ) { printf("WriteCI8SpanFront() not implemented yet!\n"); // TODO } -void MesaDriver::WriteMonoCISpanFront( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoCISpanFront( const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint colorIndex, const GLubyte mask[] ) { @@ -1204,7 +1204,7 @@ void MesaDriver::WriteMonoCISpanFront( const GLcontext *ctx, GLuint n, } -void MesaDriver::WriteCI32PixelsFront( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteCI32PixelsFront( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLuint index[], const GLubyte mask[] ) { @@ -1212,7 +1212,7 @@ void MesaDriver::WriteCI32PixelsFront( const GLcontext *ctx, GLuint n, // TODO } -void MesaDriver::WriteMonoCIPixelsFront( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoCIPixelsFront( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint colorIndex, const GLubyte mask[] ) { @@ -1221,7 +1221,7 @@ void MesaDriver::WriteMonoCIPixelsFront( const GLcontext *ctx, GLuint n, } -void MesaDriver::ReadCI32SpanFront( const GLcontext *ctx, +void MesaDriver::ReadCI32SpanFront( const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint index[] ) { printf("ReadCI32SpanFront() not implemented yet!\n"); @@ -1229,7 +1229,7 @@ void MesaDriver::ReadCI32SpanFront( const GLcontext *ctx, } -void MesaDriver::ReadRGBASpanFront( const GLcontext *ctx, GLuint n, +void MesaDriver::ReadRGBASpanFront( const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ) { printf("ReadRGBASpanFront() not implemented yet!\n"); @@ -1237,7 +1237,7 @@ void MesaDriver::ReadRGBASpanFront( const GLcontext *ctx, GLuint n, } -void MesaDriver::ReadCI32PixelsFront( const GLcontext *ctx, +void MesaDriver::ReadCI32PixelsFront( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint indx[], const GLubyte mask[] ) { @@ -1246,7 +1246,7 @@ void MesaDriver::ReadCI32PixelsFront( const GLcontext *ctx, } -void MesaDriver::ReadRGBAPixelsFront( const GLcontext *ctx, +void MesaDriver::ReadRGBAPixelsFront( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] ) { @@ -1257,7 +1257,7 @@ void MesaDriver::ReadRGBAPixelsFront( const GLcontext *ctx, -void MesaDriver::WriteRGBASpanBack(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteRGBASpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgba[][4], const GLubyte mask[]) @@ -1287,7 +1287,7 @@ void MesaDriver::WriteRGBASpanBack(const GLcontext *ctx, GLuint n, } -void MesaDriver::WriteRGBSpanBack(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteRGBSpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, CONST GLubyte rgb[][3], const GLubyte mask[]) @@ -1319,7 +1319,7 @@ void MesaDriver::WriteRGBSpanBack(const GLcontext *ctx, GLuint n, -void MesaDriver::WriteMonoRGBASpanBack(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoRGBASpanBack(const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]) { @@ -1347,7 +1347,7 @@ void MesaDriver::WriteMonoRGBASpanBack(const GLcontext *ctx, GLuint n, } -void MesaDriver::WriteRGBAPixelsBack(const GLcontext *ctx, +void MesaDriver::WriteRGBAPixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], CONST GLubyte rgba[][4], const GLubyte mask[] ) @@ -1394,7 +1394,7 @@ void MesaDriver::WriteRGBAPixelsBack(const GLcontext *ctx, } -void MesaDriver::WriteMonoRGBAPixelsBack(const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoRGBAPixelsBack(const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[]) @@ -1437,7 +1437,7 @@ void MesaDriver::WriteMonoRGBAPixelsBack(const GLcontext *ctx, GLuint n, } -void MesaDriver::WriteCI32SpanBack( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteCI32SpanBack( const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLuint index[], const GLubyte mask[] ) { @@ -1445,7 +1445,7 @@ void MesaDriver::WriteCI32SpanBack( const GLcontext *ctx, GLuint n, // TODO } -void MesaDriver::WriteCI8SpanBack( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteCI8SpanBack( const struct gl_context *ctx, GLuint n, GLint x, GLint y, const GLubyte index[], const GLubyte mask[] ) { @@ -1453,7 +1453,7 @@ void MesaDriver::WriteCI8SpanBack( const GLcontext *ctx, GLuint n, // TODO } -void MesaDriver::WriteMonoCISpanBack( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoCISpanBack( const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint colorIndex, const GLubyte mask[] ) { @@ -1462,7 +1462,7 @@ void MesaDriver::WriteMonoCISpanBack( const GLcontext *ctx, GLuint n, } -void MesaDriver::WriteCI32PixelsBack( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteCI32PixelsBack( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], const GLuint index[], const GLubyte mask[] ) { @@ -1470,7 +1470,7 @@ void MesaDriver::WriteCI32PixelsBack( const GLcontext *ctx, GLuint n, // TODO } -void MesaDriver::WriteMonoCIPixelsBack( const GLcontext *ctx, GLuint n, +void MesaDriver::WriteMonoCIPixelsBack( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint colorIndex, const GLubyte mask[] ) { @@ -1479,7 +1479,7 @@ void MesaDriver::WriteMonoCIPixelsBack( const GLcontext *ctx, GLuint n, } -void MesaDriver::ReadCI32SpanBack( const GLcontext *ctx, +void MesaDriver::ReadCI32SpanBack( const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLuint index[] ) { printf("ReadCI32SpanBack() not implemented yet!\n"); @@ -1487,7 +1487,7 @@ void MesaDriver::ReadCI32SpanBack( const GLcontext *ctx, } -void MesaDriver::ReadRGBASpanBack( const GLcontext *ctx, GLuint n, +void MesaDriver::ReadRGBASpanBack( const struct gl_context *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ) { MesaDriver *md = (MesaDriver *) ctx->DriverCtx; @@ -1507,7 +1507,7 @@ void MesaDriver::ReadRGBASpanBack( const GLcontext *ctx, GLuint n, } -void MesaDriver::ReadCI32PixelsBack( const GLcontext *ctx, +void MesaDriver::ReadCI32PixelsBack( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLuint indx[], const GLubyte mask[] ) { @@ -1516,7 +1516,7 @@ void MesaDriver::ReadCI32PixelsBack( const GLcontext *ctx, } -void MesaDriver::ReadRGBAPixelsBack( const GLcontext *ctx, +void MesaDriver::ReadRGBAPixelsBack( const struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] ) { diff --git a/src/mesa/drivers/common/driverfuncs.c b/src/mesa/drivers/common/driverfuncs.c index aee73b53bb..fc67bee98c 100644 --- a/src/mesa/drivers/common/driverfuncs.c +++ b/src/mesa/drivers/common/driverfuncs.c @@ -224,7 +224,7 @@ _mesa_init_driver_functions(struct dd_function_table *driver) * Only the Intel drivers use this so far. */ void -_mesa_init_driver_state(GLcontext *ctx) +_mesa_init_driver_state(struct gl_context *ctx) { ctx->Driver.AlphaFunc(ctx, ctx->Color.AlphaFunc, ctx->Color.AlphaRef); diff --git a/src/mesa/drivers/common/driverfuncs.h b/src/mesa/drivers/common/driverfuncs.h index 4c90ed12f6..212f307424 100644 --- a/src/mesa/drivers/common/driverfuncs.h +++ b/src/mesa/drivers/common/driverfuncs.h @@ -31,7 +31,7 @@ _mesa_init_driver_functions(struct dd_function_table *driver); extern void -_mesa_init_driver_state(GLcontext *ctx); +_mesa_init_driver_state(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 16ca42f7b5..9946bf1990 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -284,7 +284,7 @@ struct gl_meta_state * To be called once during context creation. */ void -_mesa_meta_init(GLcontext *ctx) +_mesa_meta_init(struct gl_context *ctx) { ASSERT(!ctx->Meta); @@ -297,7 +297,7 @@ _mesa_meta_init(GLcontext *ctx) * To be called once during context destruction. */ void -_mesa_meta_free(GLcontext *ctx) +_mesa_meta_free(struct gl_context *ctx) { /* Note: Any textures, VBOs, etc, that we allocate should get * freed by the normal context destruction code. But this would be @@ -316,7 +316,7 @@ _mesa_meta_free(GLcontext *ctx) * to save and reset to their defaults */ static void -_mesa_meta_begin(GLcontext *ctx, GLbitfield state) +_mesa_meta_begin(struct gl_context *ctx, GLbitfield state) { struct save_state *save = &ctx->Meta->Save; @@ -557,7 +557,7 @@ _mesa_meta_begin(GLcontext *ctx, GLbitfield state) * Leave meta state. This is like a light-weight version of glPopAttrib(). */ static void -_mesa_meta_end(GLcontext *ctx) +_mesa_meta_end(struct gl_context *ctx) { struct save_state *save = &ctx->Meta->Save; const GLbitfield state = save->SavedState; @@ -824,7 +824,7 @@ invert_z(GLfloat normZ) * Choose tex target, compute max tex size, etc. */ static void -init_temp_texture(GLcontext *ctx, struct temp_texture *tex) +init_temp_texture(struct gl_context *ctx, struct temp_texture *tex) { /* prefer texture rectangle */ if (ctx->Extensions.NV_texture_rectangle) { @@ -850,7 +850,7 @@ init_temp_texture(GLcontext *ctx, struct temp_texture *tex) * This does some one-time init if needed. */ static struct temp_texture * -get_temp_texture(GLcontext *ctx) +get_temp_texture(struct gl_context *ctx) { struct temp_texture *tex = &ctx->Meta->TempTex; @@ -868,7 +868,7 @@ get_temp_texture(GLcontext *ctx) * allocation/deallocation. */ static struct temp_texture * -get_bitmap_temp_texture(GLcontext *ctx) +get_bitmap_temp_texture(struct gl_context *ctx) { struct temp_texture *tex = &ctx->Meta->Bitmap.Tex; @@ -984,7 +984,7 @@ setup_copypix_texture(struct temp_texture *tex, * Setup/load texture for glDrawPixels. */ static void -setup_drawpix_texture(GLcontext *ctx, +setup_drawpix_texture(struct gl_context *ctx, struct temp_texture *tex, GLboolean newTex, GLenum texIntFormat, @@ -1035,7 +1035,7 @@ setup_drawpix_texture(GLcontext *ctx, * One-time init for drawing depth pixels. */ static void -init_blit_depth_pixels(GLcontext *ctx) +init_blit_depth_pixels(struct gl_context *ctx) { static const char *program = "!!ARBfp1.0\n" @@ -1072,7 +1072,7 @@ init_blit_depth_pixels(GLcontext *ctx) * normal path. */ static GLbitfield -blitframebuffer_texture(GLcontext *ctx, +blitframebuffer_texture(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) @@ -1201,7 +1201,7 @@ blitframebuffer_texture(GLcontext *ctx, * of texture mapping and polygon rendering. */ void -_mesa_meta_BlitFramebuffer(GLcontext *ctx, +_mesa_meta_BlitFramebuffer(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) @@ -1362,7 +1362,7 @@ _mesa_meta_BlitFramebuffer(GLcontext *ctx, * Meta implementation of ctx->Driver.Clear() in terms of polygon rendering. */ void -_mesa_meta_Clear(GLcontext *ctx, GLbitfield buffers) +_mesa_meta_Clear(struct gl_context *ctx, GLbitfield buffers) { struct clear_state *clear = &ctx->Meta->Clear; struct vertex { @@ -1480,7 +1480,7 @@ _mesa_meta_Clear(GLcontext *ctx, GLbitfield buffers) * of texture mapping and polygon rendering. */ void -_mesa_meta_CopyPixels(GLcontext *ctx, GLint srcX, GLint srcY, +_mesa_meta_CopyPixels(struct gl_context *ctx, GLint srcX, GLint srcY, GLsizei width, GLsizei height, GLint dstX, GLint dstY, GLenum type) { @@ -1594,7 +1594,7 @@ _mesa_meta_CopyPixels(GLcontext *ctx, GLint srcX, GLint srcY, * into tiles which fit into the max texture size. */ static void -tiled_draw_pixels(GLcontext *ctx, +tiled_draw_pixels(struct gl_context *ctx, GLint tileSize, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1630,7 +1630,7 @@ tiled_draw_pixels(GLcontext *ctx, * One-time init for drawing stencil pixels. */ static void -init_draw_stencil_pixels(GLcontext *ctx) +init_draw_stencil_pixels(struct gl_context *ctx) { /* This program is run eight times, once for each stencil bit. * The stencil values to draw are found in an 8-bit alpha texture. @@ -1694,7 +1694,7 @@ init_draw_stencil_pixels(GLcontext *ctx) * One-time init for drawing depth pixels. */ static void -init_draw_depth_pixels(GLcontext *ctx) +init_draw_depth_pixels(struct gl_context *ctx) { static const char *program = "!!ARBfp1.0\n" @@ -1729,7 +1729,7 @@ init_draw_depth_pixels(GLcontext *ctx) * of texture mapping and polygon rendering. */ void -_mesa_meta_DrawPixels(GLcontext *ctx, +_mesa_meta_DrawPixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -1962,7 +1962,7 @@ _mesa_meta_DrawPixels(GLcontext *ctx, * improve performance a lot. */ void -_mesa_meta_Bitmap(GLcontext *ctx, +_mesa_meta_Bitmap(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap1) @@ -2111,7 +2111,7 @@ _mesa_meta_Bitmap(GLcontext *ctx, * \return GL_TRUE if a fallback is needed, GL_FALSE otherwise */ GLboolean -_mesa_meta_check_generate_mipmap_fallback(GLcontext *ctx, GLenum target, +_mesa_meta_check_generate_mipmap_fallback(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { const GLuint fboSave = ctx->DrawBuffer->Name; @@ -2177,7 +2177,7 @@ _mesa_meta_check_generate_mipmap_fallback(GLcontext *ctx, GLenum target, * Note: texture borders and 3D texture support not yet complete. */ void -_mesa_meta_GenerateMipmap(GLcontext *ctx, GLenum target, +_mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { struct gen_mipmap_state *mipmap = &ctx->Meta->Mipmap; @@ -2494,7 +2494,7 @@ _mesa_meta_GenerateMipmap(GLcontext *ctx, GLenum target, * ReadPixels() and passed to Tex[Sub]Image(). */ static GLenum -get_temp_image_type(GLcontext *ctx, GLenum baseFormat) +get_temp_image_type(struct gl_context *ctx, GLenum baseFormat) { switch (baseFormat) { case GL_RGBA: @@ -2525,7 +2525,7 @@ get_temp_image_type(GLcontext *ctx, GLenum baseFormat) * Have to be careful with locking and meta state for pixel transfer. */ static void -copy_tex_image(GLcontext *ctx, GLuint dims, GLenum target, GLint level, +copy_tex_image(struct gl_context *ctx, GLuint dims, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { @@ -2603,7 +2603,7 @@ copy_tex_image(GLcontext *ctx, GLuint dims, GLenum target, GLint level, void -_mesa_meta_CopyTexImage1D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexImage1D(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border) { @@ -2613,7 +2613,7 @@ _mesa_meta_CopyTexImage1D(GLcontext *ctx, GLenum target, GLint level, void -_mesa_meta_CopyTexImage2D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexImage2D(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { @@ -2628,7 +2628,7 @@ _mesa_meta_CopyTexImage2D(GLcontext *ctx, GLenum target, GLint level, * Have to be careful with locking and meta state for pixel transfer. */ static void -copy_tex_sub_image(GLcontext *ctx, GLuint dims, GLenum target, GLint level, +copy_tex_sub_image(struct gl_context *ctx, GLuint dims, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) @@ -2699,7 +2699,7 @@ copy_tex_sub_image(GLcontext *ctx, GLuint dims, GLenum target, GLint level, void -_mesa_meta_CopyTexSubImage1D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexSubImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) { @@ -2709,7 +2709,7 @@ _mesa_meta_CopyTexSubImage1D(GLcontext *ctx, GLenum target, GLint level, void -_mesa_meta_CopyTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) @@ -2720,7 +2720,7 @@ _mesa_meta_CopyTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, void -_mesa_meta_CopyTexSubImage3D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexSubImage3D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) @@ -2731,7 +2731,7 @@ _mesa_meta_CopyTexSubImage3D(GLcontext *ctx, GLenum target, GLint level, void -_mesa_meta_CopyColorTable(GLcontext *ctx, +_mesa_meta_CopyColorTable(struct gl_context *ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) { @@ -2759,7 +2759,7 @@ _mesa_meta_CopyColorTable(GLcontext *ctx, void -_mesa_meta_CopyColorSubTable(GLcontext *ctx,GLenum target, GLsizei start, +_mesa_meta_CopyColorSubTable(struct gl_context *ctx,GLenum target, GLsizei start, GLint x, GLint y, GLsizei width) { GLfloat *buf; diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h index 6225b94189..b0797d3d91 100644 --- a/src/mesa/drivers/common/meta.h +++ b/src/mesa/drivers/common/meta.h @@ -28,89 +28,89 @@ extern void -_mesa_meta_init(GLcontext *ctx); +_mesa_meta_init(struct gl_context *ctx); extern void -_mesa_meta_free(GLcontext *ctx); +_mesa_meta_free(struct gl_context *ctx); extern void -_mesa_meta_BlitFramebuffer(GLcontext *ctx, +_mesa_meta_BlitFramebuffer(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); extern void -_mesa_meta_Clear(GLcontext *ctx, GLbitfield buffers); +_mesa_meta_Clear(struct gl_context *ctx, GLbitfield buffers); extern void -_mesa_meta_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, +_mesa_meta_CopyPixels(struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type); extern void -_mesa_meta_DrawPixels(GLcontext *ctx, +_mesa_meta_DrawPixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels); extern void -_mesa_meta_Bitmap(GLcontext *ctx, +_mesa_meta_Bitmap(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap); extern GLboolean -_mesa_meta_check_generate_mipmap_fallback(GLcontext *ctx, GLenum target, +_mesa_meta_check_generate_mipmap_fallback(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj); extern void -_mesa_meta_GenerateMipmap(GLcontext *ctx, GLenum target, +_mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj); extern void -_mesa_meta_CopyTexImage1D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexImage1D(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); extern void -_mesa_meta_CopyTexImage2D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexImage2D(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); extern void -_mesa_meta_CopyTexSubImage1D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexSubImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); extern void -_mesa_meta_CopyTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); extern void -_mesa_meta_CopyTexSubImage3D(GLcontext *ctx, GLenum target, GLint level, +_mesa_meta_CopyTexSubImage3D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); extern void -_mesa_meta_CopyColorTable(GLcontext *ctx, +_mesa_meta_CopyColorTable(struct gl_context *ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); extern void -_mesa_meta_CopyColorSubTable(GLcontext *ctx,GLenum target, GLsizei start, +_mesa_meta_CopyColorSubTable(struct gl_context *ctx,GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); extern void -_mesa_meta_CopyConvolutionFilter1D(GLcontext *ctx, GLenum target, +_mesa_meta_CopyConvolutionFilter1D(struct gl_context *ctx, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width); extern void -_mesa_meta_CopyConvolutionFilter2D(GLcontext *ctx, GLenum target, +_mesa_meta_CopyConvolutionFilter2D(struct gl_context *ctx, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height); diff --git a/src/mesa/drivers/dri/common/depthtmp.h b/src/mesa/drivers/dri/common/depthtmp.h index fd2dab3b42..81bec9c5ff 100644 --- a/src/mesa/drivers/dri/common/depthtmp.h +++ b/src/mesa/drivers/dri/common/depthtmp.h @@ -21,7 +21,7 @@ #define HAVE_HW_DEPTH_PIXELS 0 #endif -static void TAG(WriteDepthSpan)( GLcontext *ctx, +static void TAG(WriteDepthSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, @@ -72,7 +72,7 @@ static void TAG(WriteDepthSpan)( GLcontext *ctx, #if HAVE_HW_DEPTH_SPANS /* implement MonoWriteDepthSpan() in terms of WriteDepthSpan() */ static void -TAG(WriteMonoDepthSpan)( GLcontext *ctx, struct gl_renderbuffer *rb, +TAG(WriteMonoDepthSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, const GLubyte mask[] ) { @@ -84,7 +84,7 @@ TAG(WriteMonoDepthSpan)( GLcontext *ctx, struct gl_renderbuffer *rb, TAG(WriteDepthSpan)(ctx, rb, n, x, y, depths, mask); } #else -static void TAG(WriteMonoDepthSpan)( GLcontext *ctx, +static void TAG(WriteMonoDepthSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, @@ -124,7 +124,7 @@ static void TAG(WriteMonoDepthSpan)( GLcontext *ctx, #endif -static void TAG(WriteDepthPixels)( GLcontext *ctx, +static void TAG(WriteDepthPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], @@ -173,7 +173,7 @@ static void TAG(WriteDepthPixels)( GLcontext *ctx, /* Read depth spans and pixels */ -static void TAG(ReadDepthSpan)( GLcontext *ctx, +static void TAG(ReadDepthSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values ) @@ -207,7 +207,7 @@ static void TAG(ReadDepthSpan)( GLcontext *ctx, HW_READ_UNLOCK(); } -static void TAG(ReadDepthPixels)( GLcontext *ctx, +static void TAG(ReadDepthPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], diff --git a/src/mesa/drivers/dri/common/dri_metaops.c b/src/mesa/drivers/dri/common/dri_metaops.c index a2f404b616..e0bc3b88ec 100644 --- a/src/mesa/drivers/dri/common/dri_metaops.c +++ b/src/mesa/drivers/dri/common/dri_metaops.c @@ -41,7 +41,7 @@ void meta_set_passthrough_transform(struct dri_metaops *meta) { - GLcontext *ctx = meta->ctx; + struct gl_context *ctx = meta->ctx; meta->saved_vp_x = ctx->Viewport.X; meta->saved_vp_y = ctx->Viewport.Y; @@ -87,7 +87,7 @@ meta_restore_transform(struct dri_metaops *meta) void meta_set_passthrough_vertex_program(struct dri_metaops *meta) { - GLcontext *ctx = meta->ctx; + struct gl_context *ctx = meta->ctx; static const char *vp = "!!ARBvp1.0\n" "TEMP vertexClip;\n" @@ -133,7 +133,7 @@ meta_set_passthrough_vertex_program(struct dri_metaops *meta) void meta_restore_vertex_program(struct dri_metaops *meta) { - GLcontext *ctx = meta->ctx; + struct gl_context *ctx = meta->ctx; FLUSH_VERTICES(ctx, _NEW_PROGRAM); _mesa_reference_vertprog(ctx, &ctx->VertexProgram.Current, @@ -155,7 +155,7 @@ meta_set_fragment_program(struct dri_metaops *meta, struct gl_fragment_program **prog, const char *prog_string) { - GLcontext *ctx = meta->ctx; + struct gl_context *ctx = meta->ctx; assert(meta->saved_fp == NULL); _mesa_reference_fragprog(ctx, &meta->saved_fp, @@ -187,7 +187,7 @@ meta_set_fragment_program(struct dri_metaops *meta, void meta_restore_fragment_program(struct dri_metaops *meta) { - GLcontext *ctx = meta->ctx; + struct gl_context *ctx = meta->ctx; FLUSH_VERTICES(ctx, _NEW_PROGRAM); _mesa_reference_fragprog(ctx, &ctx->FragmentProgram.Current, @@ -208,7 +208,7 @@ static const float default_texcoords[4][2] = { { 0.0, 0.0 }, void meta_set_default_texrect(struct dri_metaops *meta) { - GLcontext *ctx = meta->ctx; + struct gl_context *ctx = meta->ctx; struct gl_client_array *old_texcoord_array; meta->saved_active_texture = ctx->Texture.CurrentUnit; @@ -249,7 +249,7 @@ meta_set_default_texrect(struct dri_metaops *meta) void meta_restore_texcoords(struct dri_metaops *meta) { - GLcontext *ctx = meta->ctx; + struct gl_context *ctx = meta->ctx; /* Restore the old TexCoordPointer */ if (meta->saved_texcoord_vbo) { @@ -280,7 +280,7 @@ meta_restore_texcoords(struct dri_metaops *meta) } -void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta) +void meta_init_metaops(struct gl_context *ctx, struct dri_metaops *meta) { meta->ctx = ctx; } diff --git a/src/mesa/drivers/dri/common/dri_metaops.h b/src/mesa/drivers/dri/common/dri_metaops.h index 2487145326..aa7d4baa6e 100644 --- a/src/mesa/drivers/dri/common/dri_metaops.h +++ b/src/mesa/drivers/dri/common/dri_metaops.h @@ -31,7 +31,7 @@ struct dri_metaops { - GLcontext *ctx; + struct gl_context *ctx; GLboolean internal_viewport_call; struct gl_fragment_program *bitmap_fp; struct gl_vertex_program *passthrough_vp; @@ -75,7 +75,7 @@ void meta_set_default_texrect(struct dri_metaops *meta); void meta_restore_texcoords(struct dri_metaops *meta); -void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta); +void meta_init_metaops(struct gl_context *ctx, struct dri_metaops *meta); void meta_destroy_metaops(struct dri_metaops *meta); #endif diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index d46f622d57..a5b71bd40a 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -444,8 +444,7 @@ driCreateNewDrawable(__DRIscreen *psp, const __DRIconfig *config, pdp->driScreenPriv = psp; - if (!(*psp->DriverAPI.CreateBuffer)(psp, pdp, &config->modes, - renderType == GLX_PIXMAP_BIT)) { + if (!(*psp->DriverAPI.CreateBuffer)(psp, pdp, &config->modes, 0)) { free(pdp); return NULL; } @@ -635,7 +634,7 @@ dri2CreateNewContextForAPI(__DRIscreen *screen, int api, __DRIcontext *shared, void *data) { __DRIcontext *context; - const __GLcontextModes *modes = (config != NULL) ? &config->modes : NULL; + const struct gl_config *modes = (config != NULL) ? &config->modes : NULL; void *shareCtx = (shared != NULL) ? shared->driverPrivate : NULL; gl_api mesa_api; @@ -755,7 +754,7 @@ setupLoaderExtensions(__DRIscreen *psp, * This is the bootstrap function for the driver. libGL supplies all of the * requisite information about the system, and the driver initializes itself. * This routine also fills in the linked list pointed to by \c driver_modes - * with the \c __GLcontextModes that the driver can support for windows or + * with the \c struct gl_config that the driver can support for windows or * pbuffers. * * For legacy DRI. diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h index 785beacd81..ffffb99b30 100644 --- a/src/mesa/drivers/dri/common/dri_util.h +++ b/src/mesa/drivers/dri/common/dri_util.h @@ -54,7 +54,6 @@ #include "xmlconfig.h" #include "main/glheader.h" #include "main/mtypes.h" -#include "GL/internal/glcore.h" #include "GL/internal/dri_interface.h" #define GLX_BAD_CONTEXT 5 @@ -149,7 +148,7 @@ struct __DriverAPIRec { * Context creation callback */ GLboolean (*CreateContext)(gl_api api, - const __GLcontextModes *glVis, + const struct gl_config *glVis, __DRIcontext *driContextPriv, void *sharedContextPrivate); @@ -163,7 +162,7 @@ struct __DriverAPIRec { */ GLboolean (*CreateBuffer)(__DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *glVis, + const struct gl_config *glVis, GLboolean pixmapBuffer); /** diff --git a/src/mesa/drivers/dri/common/drirenderbuffer.c b/src/mesa/drivers/dri/common/drirenderbuffer.c index c9ce6e3cb6..7ac1ab169e 100644 --- a/src/mesa/drivers/dri/common/drirenderbuffer.c +++ b/src/mesa/drivers/dri/common/drirenderbuffer.c @@ -16,7 +16,7 @@ * be used. */ static GLboolean -driRenderbufferStorage(GLcontext *ctx, struct gl_renderbuffer *rb, +driRenderbufferStorage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { rb->Width = width; @@ -187,7 +187,7 @@ driFlipRenderbuffers(struct gl_framebuffer *fb, GLboolean flipped) * gl_framebuffer object. */ void -driUpdateFramebufferSize(GLcontext *ctx, const __DRIdrawable *dPriv) +driUpdateFramebufferSize(struct gl_context *ctx, const __DRIdrawable *dPriv) { struct gl_framebuffer *fb = (struct gl_framebuffer *) dPriv->driverPrivate; if (fb && (dPriv->w != fb->Width || dPriv->h != fb->Height)) { diff --git a/src/mesa/drivers/dri/common/drirenderbuffer.h b/src/mesa/drivers/dri/common/drirenderbuffer.h index 677511334d..0cae7309df 100644 --- a/src/mesa/drivers/dri/common/drirenderbuffer.h +++ b/src/mesa/drivers/dri/common/drirenderbuffer.h @@ -73,7 +73,7 @@ driFlipRenderbuffers(struct gl_framebuffer *fb, GLboolean flipped); extern void -driUpdateFramebufferSize(GLcontext *ctx, const __DRIdrawable *dPriv); +driUpdateFramebufferSize(struct gl_context *ctx, const __DRIdrawable *dPriv); #endif /* DRIRENDERBUFFER_H */ diff --git a/src/mesa/drivers/dri/common/drisw_util.h b/src/mesa/drivers/dri/common/drisw_util.h index 9c3d01c99c..d43f5235aa 100644 --- a/src/mesa/drivers/dri/common/drisw_util.h +++ b/src/mesa/drivers/dri/common/drisw_util.h @@ -39,7 +39,6 @@ #include "main/mtypes.h" #include <GL/gl.h> -#include <GL/internal/glcore.h> #include <GL/internal/dri_interface.h> typedef struct _drmLock drmLock; @@ -60,7 +59,7 @@ struct __DriverAPIRec { void (*DestroyScreen)(__DRIscreen *driScrnPriv); GLboolean (*CreateContext)(gl_api glapi, - const __GLcontextModes *glVis, + const struct gl_config *glVis, __DRIcontext *driContextPriv, void *sharedContextPrivate); @@ -68,7 +67,7 @@ struct __DriverAPIRec { GLboolean (*CreateBuffer)(__DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *glVis, + const struct gl_config *glVis, GLboolean pixmapBuffer); void (*DestroyBuffer)(__DRIdrawable *driDrawPriv); diff --git a/src/mesa/drivers/dri/common/spantmp.h b/src/mesa/drivers/dri/common/spantmp.h index cdc4f422ce..f0af5b1c58 100644 --- a/src/mesa/drivers/dri/common/spantmp.h +++ b/src/mesa/drivers/dri/common/spantmp.h @@ -42,7 +42,7 @@ #endif -static void TAG(WriteRGBASpan)( GLcontext *ctx, +static void TAG(WriteRGBASpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, const GLubyte mask[] ) @@ -85,7 +85,7 @@ static void TAG(WriteRGBASpan)( GLcontext *ctx, HW_WRITE_UNLOCK(); } -static void TAG(WriteRGBSpan)( GLcontext *ctx, +static void TAG(WriteRGBSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, const GLubyte mask[] ) @@ -124,7 +124,7 @@ static void TAG(WriteRGBSpan)( GLcontext *ctx, HW_WRITE_UNLOCK(); } -static void TAG(WriteRGBAPixels)( GLcontext *ctx, +static void TAG(WriteRGBAPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const void *values, const GLubyte mask[] ) @@ -170,7 +170,7 @@ static void TAG(WriteRGBAPixels)( GLcontext *ctx, } -static void TAG(WriteMonoRGBASpan)( GLcontext *ctx, +static void TAG(WriteMonoRGBASpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, @@ -210,7 +210,7 @@ static void TAG(WriteMonoRGBASpan)( GLcontext *ctx, } -static void TAG(WriteMonoRGBAPixels)( GLcontext *ctx, +static void TAG(WriteMonoRGBAPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -252,7 +252,7 @@ static void TAG(WriteMonoRGBAPixels)( GLcontext *ctx, } -static void TAG(ReadRGBASpan)( GLcontext *ctx, +static void TAG(ReadRGBASpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) @@ -280,7 +280,7 @@ static void TAG(ReadRGBASpan)( GLcontext *ctx, } -static void TAG(ReadRGBAPixels)( GLcontext *ctx, +static void TAG(ReadRGBAPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], void *values ) diff --git a/src/mesa/drivers/dri/common/spantmp2.h b/src/mesa/drivers/dri/common/spantmp2.h index 1dab7336b9..abd79562f9 100644 --- a/src/mesa/drivers/dri/common/spantmp2.h +++ b/src/mesa/drivers/dri/common/spantmp2.h @@ -460,7 +460,7 @@ #include "x86/common_x86_asm.h" #endif -static void TAG(WriteRGBASpan)( GLcontext *ctx, +static void TAG(WriteRGBASpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, const GLubyte mask[] ) @@ -503,7 +503,7 @@ static void TAG(WriteRGBASpan)( GLcontext *ctx, HW_WRITE_UNLOCK(); } -static void TAG(WriteRGBSpan)( GLcontext *ctx, +static void TAG(WriteRGBSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, const GLubyte mask[] ) @@ -542,7 +542,7 @@ static void TAG(WriteRGBSpan)( GLcontext *ctx, HW_WRITE_UNLOCK(); } -static void TAG(WriteRGBAPixels)( GLcontext *ctx, +static void TAG(WriteRGBAPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const void *values, const GLubyte mask[] ) @@ -588,7 +588,7 @@ static void TAG(WriteRGBAPixels)( GLcontext *ctx, } -static void TAG(WriteMonoRGBASpan)( GLcontext *ctx, +static void TAG(WriteMonoRGBASpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, const GLubyte mask[] ) @@ -627,7 +627,7 @@ static void TAG(WriteMonoRGBASpan)( GLcontext *ctx, } -static void TAG(WriteMonoRGBAPixels)( GLcontext *ctx, +static void TAG(WriteMonoRGBAPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -669,7 +669,7 @@ static void TAG(WriteMonoRGBAPixels)( GLcontext *ctx, } -static void TAG(ReadRGBASpan)( GLcontext *ctx, +static void TAG(ReadRGBASpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) { @@ -702,7 +702,7 @@ static void TAG(ReadRGBASpan)( GLcontext *ctx, (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV)) || \ ((SPANTMP_PIXEL_FMT == GL_RGB) && \ (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_SHORT_5_6_5))) -static void TAG2(ReadRGBASpan,_MMX)( GLcontext *ctx, +static void TAG2(ReadRGBASpan,_MMX)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) { @@ -752,7 +752,7 @@ static void TAG2(ReadRGBASpan,_MMX)( GLcontext *ctx, defined(USE_SSE_ASM) && \ (SPANTMP_PIXEL_FMT == GL_BGRA) && \ (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV) -static void TAG2(ReadRGBASpan,_SSE2)( GLcontext *ctx, +static void TAG2(ReadRGBASpan,_SSE2)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) @@ -787,7 +787,7 @@ static void TAG2(ReadRGBASpan,_SSE2)( GLcontext *ctx, defined(USE_SSE_ASM) && \ (SPANTMP_PIXEL_FMT == GL_BGRA) && \ (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV) -static void TAG2(ReadRGBASpan,_SSE)( GLcontext *ctx, +static void TAG2(ReadRGBASpan,_SSE)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) @@ -829,7 +829,7 @@ static void TAG2(ReadRGBASpan,_SSE)( GLcontext *ctx, #endif -static void TAG(ReadRGBAPixels)( GLcontext *ctx, +static void TAG(ReadRGBAPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], void *values ) diff --git a/src/mesa/drivers/dri/common/stenciltmp.h b/src/mesa/drivers/dri/common/stenciltmp.h index 2b10b9ecfe..fef0972089 100644 --- a/src/mesa/drivers/dri/common/stenciltmp.h +++ b/src/mesa/drivers/dri/common/stenciltmp.h @@ -13,7 +13,7 @@ #define HAVE_HW_STENCIL_PIXELS 0 #endif -static void TAG(WriteStencilSpan)( GLcontext *ctx, +static void TAG(WriteStencilSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, const GLubyte mask[] ) @@ -64,7 +64,7 @@ static void TAG(WriteStencilSpan)( GLcontext *ctx, #if HAVE_HW_STENCIL_SPANS /* implement MonoWriteDepthSpan() in terms of WriteDepthSpan() */ static void -TAG(WriteMonoStencilSpan)( GLcontext *ctx, struct gl_renderbuffer *rb, +TAG(WriteMonoStencilSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, const GLubyte mask[] ) { @@ -76,7 +76,7 @@ TAG(WriteMonoStencilSpan)( GLcontext *ctx, struct gl_renderbuffer *rb, TAG(WriteStencilSpan)(ctx, rb, n, x, y, stens, mask); } #else /* HAVE_HW_STENCIL_SPANS */ -static void TAG(WriteMonoStencilSpan)( GLcontext *ctx, +static void TAG(WriteMonoStencilSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, @@ -118,7 +118,7 @@ static void TAG(WriteMonoStencilSpan)( GLcontext *ctx, #endif /* !HAVE_HW_STENCIL_SPANS */ -static void TAG(WriteStencilPixels)( GLcontext *ctx, +static void TAG(WriteStencilPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -157,7 +157,7 @@ static void TAG(WriteStencilPixels)( GLcontext *ctx, /* Read stencil spans and pixels */ -static void TAG(ReadStencilSpan)( GLcontext *ctx, +static void TAG(ReadStencilSpan)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) @@ -190,7 +190,7 @@ static void TAG(ReadStencilSpan)( GLcontext *ctx, HW_READ_UNLOCK(); } -static void TAG(ReadStencilPixels)( GLcontext *ctx, +static void TAG(ReadStencilPixels)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], void *values ) diff --git a/src/mesa/drivers/dri/common/texmem.c b/src/mesa/drivers/dri/common/texmem.c index 895139b55b..8eec07d5bc 100644 --- a/src/mesa/drivers/dri/common/texmem.c +++ b/src/mesa/drivers/dri/common/texmem.c @@ -89,7 +89,7 @@ driLog2( GLuint n ) */ GLboolean -driIsTextureResident( GLcontext * ctx, +driIsTextureResident( struct gl_context * ctx, struct gl_texture_object * texObj ) { driTextureObject * t; @@ -1047,7 +1047,7 @@ driCalculateMaxTextureLevels( driTexHeap * const * heaps, * \param targets Bit-mask of value texture targets */ -void driInitTextureObjects( GLcontext *ctx, driTextureObject * swapped, +void driInitTextureObjects( struct gl_context *ctx, driTextureObject * swapped, GLuint targets ) { struct gl_texture_object *texObj; diff --git a/src/mesa/drivers/dri/common/texmem.h b/src/mesa/drivers/dri/common/texmem.h index 725ba2e119..6dd07b8a1d 100644 --- a/src/mesa/drivers/dri/common/texmem.h +++ b/src/mesa/drivers/dri/common/texmem.h @@ -277,7 +277,7 @@ void driDestroyTextureObject( driTextureObject * t ); int driAllocateTexture( driTexHeap * const * heap_array, unsigned nr_heaps, driTextureObject * t ); -GLboolean driIsTextureResident( GLcontext * ctx, +GLboolean driIsTextureResident( struct gl_context * ctx, struct gl_texture_object * texObj ); driTexHeap * driCreateTextureHeap( unsigned heap_id, void * context, @@ -309,7 +309,7 @@ driSetTextureSwapCounterLocation( driTexHeap * heap, unsigned * counter ); #define DRI_TEXMGR_DO_TEXTURE_CUBE 0x0008 #define DRI_TEXMGR_DO_TEXTURE_RECT 0x0010 -void driInitTextureObjects( GLcontext *ctx, driTextureObject * swapped, +void driInitTextureObjects( struct gl_context *ctx, driTextureObject * swapped, GLuint targets ); GLboolean driValidateTextureHeaps( driTexHeap * const * texture_heaps, diff --git a/src/mesa/drivers/dri/common/utils.c b/src/mesa/drivers/dri/common/utils.c index 0685d2f0e6..c195c4fd8f 100644 --- a/src/mesa/drivers/dri/common/utils.c +++ b/src/mesa/drivers/dri/common/utils.c @@ -198,7 +198,7 @@ static const struct dri_extension all_mesa_extensions[] = { * we need to add entry-points (via \c driInitSingleExtension) for those * new functions here. */ -void driInitExtensions( GLcontext * ctx, +void driInitExtensions( struct gl_context * ctx, const struct dri_extension * extensions_to_enable, GLboolean enable_imaging ) { @@ -239,7 +239,7 @@ void driInitExtensions( GLcontext * ctx, * * \sa driInitExtensions, _mesa_enable_extension, _mesa_map_function_array */ -void driInitSingleExtension( GLcontext * ctx, +void driInitSingleExtension( struct gl_context * ctx, const struct dri_extension * ext ) { if ( ext->functions != NULL ) { @@ -337,7 +337,7 @@ driCheckDriDdxDrmVersions2(const char * driver_name, drmActual, drmExpected); } -GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, +GLboolean driClipRectToFramebuffer( const struct gl_framebuffer *buffer, GLint *x, GLint *y, GLsizei *width, GLsizei *height ) { @@ -371,14 +371,14 @@ GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, } /** - * Creates a set of \c __GLcontextModes that a driver will expose. + * Creates a set of \c struct gl_config that a driver will expose. * - * A set of \c __GLcontextModes will be created based on the supplied + * A set of \c struct gl_config will be created based on the supplied * parameters. The number of modes processed will be 2 * * \c num_depth_stencil_bits * \c num_db_modes. * * For the most part, data is just copied from \c depth_bits, \c stencil_bits, - * \c db_modes, and \c visType into each \c __GLcontextModes element. + * \c db_modes, and \c visType into each \c struct gl_config element. * However, the meanings of \c fb_format and \c fb_type require further * explanation. The \c fb_format specifies which color components are in * each pixel and what the default order is. For example, \c GL_RGB specifies @@ -391,7 +391,7 @@ GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, * * One sublte issue is the combination of \c GL_RGB or \c GL_BGR and either * of the \c GL_UNSIGNED_INT_8_8_8_8 modes. The resulting mask values in the - * \c __GLcontextModes structure is \b identical to the \c GL_RGBA or + * \c struct gl_config structure is \b identical to the \c GL_RGBA or * \c GL_BGRA case, except the \c alphaMask is zero. This means that, as * far as this routine is concerned, \c GL_RGB with \c GL_UNSIGNED_INT_8_8_8_8 * still uses 32-bits. @@ -399,7 +399,7 @@ GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, * If in doubt, look at the tables used in the function. * * \param ptr_to_modes Pointer to a pointer to a linked list of - * \c __GLcontextModes. Upon completion, a pointer to + * \c struct gl_config. Upon completion, a pointer to * the next element to be process will be stored here. * If the function fails and returns \c GL_FALSE, this * value will be unmodified, but some elements in the @@ -505,7 +505,7 @@ driCreateConfigs(GLenum fb_format, GLenum fb_type, const uint32_t * masks; int index; __DRIconfig **configs, **c; - __GLcontextModes *modes; + struct gl_config *modes; unsigned i, j, k, h; unsigned num_modes; unsigned num_accum_bits = (enable_accum) ? 2 : 1; @@ -620,9 +620,6 @@ driCreateConfigs(GLenum fb_format, GLenum fb_type, modes->transparentBlue = GLX_DONT_CARE; modes->transparentAlpha = GLX_DONT_CARE; modes->transparentIndex = GLX_DONT_CARE; - modes->visualType = GLX_DONT_CARE; - modes->renderType = GLX_RGBA_BIT; - modes->drawableType = GLX_WINDOW_BIT; modes->rgbMode = GL_TRUE; if ( db_modes[i] == GLX_NONE ) { @@ -688,7 +685,7 @@ __DRIconfig **driConcatConfigs(__DRIconfig **a, } #define __ATTRIB(attrib, field) \ - { attrib, offsetof(__GLcontextModes, field) } + { attrib, offsetof(struct gl_config, field) } static const struct { unsigned int attrib, offset; } attribMap[] = { __ATTRIB(__DRI_ATTRIB_BUFFER_SIZE, rgbBits), diff --git a/src/mesa/drivers/dri/common/utils.h b/src/mesa/drivers/dri/common/utils.h index de6070c398..6349fb4b95 100644 --- a/src/mesa/drivers/dri/common/utils.h +++ b/src/mesa/drivers/dri/common/utils.h @@ -78,10 +78,10 @@ extern unsigned driParseDebugString( const char * debug, extern unsigned driGetRendererString( char * buffer, const char * hardware_name, const char * driver_date, GLuint agp_mode ); -extern void driInitExtensions( GLcontext * ctx, +extern void driInitExtensions( struct gl_context * ctx, const struct dri_extension * card_extensions, GLboolean enable_imaging ); -extern void driInitSingleExtension( GLcontext * ctx, +extern void driInitSingleExtension( struct gl_context * ctx, const struct dri_extension * ext ); extern GLboolean driCheckDriDdxDrmVersions2(const char * driver_name, @@ -94,12 +94,12 @@ extern GLboolean driCheckDriDdxDrmVersions3(const char * driver_name, const __DRIversion * ddxActual, const __DRIutilversion2 * ddxExpected, const __DRIversion * drmActual, const __DRIversion * drmExpected); -extern GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, +extern GLboolean driClipRectToFramebuffer( const struct gl_framebuffer *buffer, GLint *x, GLint *y, GLsizei *width, GLsizei *height ); struct __DRIconfigRec { - __GLcontextModes modes; + struct gl_config modes; }; extern __DRIconfig ** diff --git a/src/mesa/drivers/dri/common/vblank.h b/src/mesa/drivers/dri/common/vblank.h index 29d1ad8003..067fb5ed8d 100644 --- a/src/mesa/drivers/dri/common/vblank.h +++ b/src/mesa/drivers/dri/common/vblank.h @@ -61,10 +61,6 @@ extern int driWaitForVBlank( __DRIdrawable *priv, #include <unistd.h> /* for usleep() */ #include <sched.h> /* for sched_yield() */ -#ifdef linux -#include <sched.h> /* for sched_yield() */ -#endif - #define DO_USLEEP(nr) \ do { \ if (0) fprintf(stderr, "%s: usleep for %u\n", __FUNCTION__, nr ); \ diff --git a/src/mesa/drivers/dri/i810/i810context.c b/src/mesa/drivers/dri/i810/i810context.c index 8f52c20c2d..dc58e91e8c 100644 --- a/src/mesa/drivers/dri/i810/i810context.c +++ b/src/mesa/drivers/dri/i810/i810context.c @@ -69,7 +69,7 @@ const GLuint __driNConfigOptions = 0; #define DRIVER_DATE "20050821" -static const GLubyte *i810GetString( GLcontext *ctx, GLenum name ) +static const GLubyte *i810GetString( struct gl_context *ctx, GLenum name ) { static char buffer[128]; @@ -96,7 +96,7 @@ static const GLubyte *i810GetString( GLcontext *ctx, GLenum name ) } } -static void i810BufferSize(GLframebuffer *buffer, GLuint *width, GLuint *height) +static void i810BufferSize(struct gl_framebuffer *buffer, GLuint *width, GLuint *height) { GET_CURRENT_CONTEXT(ctx); i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -166,11 +166,11 @@ static const struct dri_debug_control debug_control[] = GLboolean i810CreateContext( gl_api api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate ) { - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; i810ContextPtr imesa; __DRIscreen *sPriv = driContextPriv->driScreenPriv; i810ScreenPrivate *i810Screen = (i810ScreenPrivate *)sPriv->private; @@ -268,7 +268,7 @@ i810CreateContext( gl_api api, ctx->Const.PointSizeGranularity = 1.0; /* reinitialize the context point state. - * It depend on constants in __GLcontextRec::Const + * It depend on constants in __struct gl_contextRec::Const */ _mesa_init_point(ctx); @@ -453,8 +453,8 @@ i810MakeCurrent(__DRIcontext *driContextPriv, imesa->driDrawable = driDrawPriv; _mesa_make_current(imesa->glCtx, - (GLframebuffer *) driDrawPriv->driverPrivate, - (GLframebuffer *) driReadPriv->driverPrivate); + (struct gl_framebuffer *) driDrawPriv->driverPrivate, + (struct gl_framebuffer *) driReadPriv->driverPrivate); /* Are these necessary? */ @@ -470,7 +470,7 @@ i810MakeCurrent(__DRIcontext *driContextPriv, static void i810UpdatePageFlipping( i810ContextPtr imesa ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; int front = 0; /* Determine current color drawing buffer */ @@ -552,7 +552,7 @@ i810SwapBuffers( __DRIdrawable *dPriv ) { if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) { i810ContextPtr imesa; - GLcontext *ctx; + struct gl_context *ctx; imesa = (i810ContextPtr) dPriv->driContextPriv->driverPrivate; ctx = imesa->glCtx; if (ctx->Visual.doubleBufferMode) { diff --git a/src/mesa/drivers/dri/i810/i810context.h b/src/mesa/drivers/dri/i810/i810context.h index 19529db020..93c7eda7b3 100644 --- a/src/mesa/drivers/dri/i810/i810context.h +++ b/src/mesa/drivers/dri/i810/i810context.h @@ -79,7 +79,7 @@ typedef void (*i810_point_func)( i810ContextPtr, i810Vertex * ); struct i810_context_t { GLint refcount; - GLcontext *glCtx; + struct gl_context *glCtx; /* Texture object bookkeeping */ @@ -146,7 +146,7 @@ struct i810_context_t { /* DRI stuff */ GLuint needClip; - GLframebuffer *glBuffer; + struct gl_framebuffer *glBuffer; GLboolean doPageFlip; /* These refer to the current draw (front vs. back) buffer: diff --git a/src/mesa/drivers/dri/i810/i810ioctl.c b/src/mesa/drivers/dri/i810/i810ioctl.c index c631543d93..4b004d54c6 100644 --- a/src/mesa/drivers/dri/i810/i810ioctl.c +++ b/src/mesa/drivers/dri/i810/i810ioctl.c @@ -47,7 +47,7 @@ static drmBufPtr i810_get_buffer_ioctl( i810ContextPtr imesa ) #define DEPTH_SCALE ((1<<16)-1) -static void i810Clear( GLcontext *ctx, GLbitfield mask ) +static void i810Clear( struct gl_context *ctx, GLbitfield mask ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); __DRIdrawable *dPriv = imesa->driDrawable; @@ -499,13 +499,13 @@ int i810_check_copy(int fd) return(drmCommandNone(fd, DRM_I810_DOCOPY)); } -static void i810Flush( GLcontext *ctx ) +static void i810Flush( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); I810_FIREVERTICES( imesa ); } -static void i810Finish( GLcontext *ctx ) +static void i810Finish( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); i810DmaFinish( imesa ); diff --git a/src/mesa/drivers/dri/i810/i810render.c b/src/mesa/drivers/dri/i810/i810render.c index 205f0cebc1..45f0954bbe 100644 --- a/src/mesa/drivers/dri/i810/i810render.c +++ b/src/mesa/drivers/dri/i810/i810render.c @@ -124,7 +124,7 @@ static const GLenum reduced_prim[GL_POLYGON+1] = { /**********************************************************************/ -static GLboolean i810_run_render( GLcontext *ctx, +static GLboolean i810_run_render( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { i810ContextPtr imesa = I810_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/i810/i810screen.c b/src/mesa/drivers/dri/i810/i810screen.c index 56708c97cb..fc56b61b4e 100644 --- a/src/mesa/drivers/dri/i810/i810screen.c +++ b/src/mesa/drivers/dri/i810/i810screen.c @@ -55,7 +55,7 @@ i810FillInModes( __DRIscreen *psp, unsigned stencil_bits, GLboolean have_back_buffer ) { __DRIconfig **configs; - __GLcontextModes * m; + struct gl_config * m; unsigned depth_buffer_factor; unsigned back_buffer_factor; unsigned i; @@ -272,7 +272,7 @@ i810DestroyScreen(__DRIscreen *sPriv) static GLboolean i810CreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap ) { i810ScreenPrivate *screen = (i810ScreenPrivate *) driScrnPriv->private; @@ -333,7 +333,7 @@ i810CreateBuffer( __DRIscreen *driScrnPriv, static void i810DestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } const struct __DriverAPIRec driDriverAPI = { diff --git a/src/mesa/drivers/dri/i810/i810screen.h b/src/mesa/drivers/dri/i810/i810screen.h index fe6db7e6e1..25c1072ce0 100644 --- a/src/mesa/drivers/dri/i810/i810screen.h +++ b/src/mesa/drivers/dri/i810/i810screen.h @@ -79,7 +79,7 @@ typedef struct { extern GLboolean i810CreateContext( gl_api api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate ); diff --git a/src/mesa/drivers/dri/i810/i810span.c b/src/mesa/drivers/dri/i810/i810span.c index 6576f6745e..dddab8bb51 100644 --- a/src/mesa/drivers/dri/i810/i810span.c +++ b/src/mesa/drivers/dri/i810/i810span.c @@ -81,7 +81,7 @@ do { \ /* Move locking out to get reasonable span performance. */ -void i810SpanRenderStart( GLcontext *ctx ) +void i810SpanRenderStart( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT(ctx); I810_FIREVERTICES(imesa); @@ -89,14 +89,14 @@ void i810SpanRenderStart( GLcontext *ctx ) i810RegetLockQuiescent( imesa ); } -void i810SpanRenderFinish( GLcontext *ctx ) +void i810SpanRenderFinish( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); _swrast_flush( ctx ); UNLOCK_HARDWARE( imesa ); } -void i810InitSpanFuncs( GLcontext *ctx ) +void i810InitSpanFuncs( struct gl_context *ctx ) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = i810SpanRenderStart; @@ -109,7 +109,7 @@ void i810InitSpanFuncs( GLcontext *ctx ) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -i810SetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis) +i810SetSpanFunctions(driRenderbuffer *drb, const struct gl_config *vis) { if (drb->Base.InternalFormat == GL_RGBA) { /* always 565 RGB */ diff --git a/src/mesa/drivers/dri/i810/i810span.h b/src/mesa/drivers/dri/i810/i810span.h index 9aed253bd5..184a37a103 100644 --- a/src/mesa/drivers/dri/i810/i810span.h +++ b/src/mesa/drivers/dri/i810/i810span.h @@ -3,12 +3,12 @@ #include "drirenderbuffer.h" -extern void i810InitSpanFuncs( GLcontext *ctx ); +extern void i810InitSpanFuncs( struct gl_context *ctx ); -extern void i810SpanRenderFinish( GLcontext *ctx ); -extern void i810SpanRenderStart( GLcontext *ctx ); +extern void i810SpanRenderFinish( struct gl_context *ctx ); +extern void i810SpanRenderStart( struct gl_context *ctx ); extern void -i810SetSpanFunctions(driRenderbuffer *rb, const GLvisual *vis); +i810SetSpanFunctions(driRenderbuffer *rb, const struct gl_config *vis); #endif diff --git a/src/mesa/drivers/dri/i810/i810state.c b/src/mesa/drivers/dri/i810/i810state.c index 0c68e120b0..7c3fbb1424 100644 --- a/src/mesa/drivers/dri/i810/i810state.c +++ b/src/mesa/drivers/dri/i810/i810state.c @@ -43,7 +43,7 @@ static INLINE GLuint i810PackColor(GLuint format, } -static void i810AlphaFunc(GLcontext *ctx, GLenum func, GLfloat ref) +static void i810AlphaFunc(struct gl_context *ctx, GLenum func, GLfloat ref) { i810ContextPtr imesa = I810_CONTEXT(ctx); GLuint a = (ZA_UPDATE_ALPHAFUNC|ZA_UPDATE_ALPHAREF); @@ -70,7 +70,7 @@ static void i810AlphaFunc(GLcontext *ctx, GLenum func, GLfloat ref) imesa->Setup[I810_CTXREG_ZA] |= a; } -static void i810BlendEquationSeparate(GLcontext *ctx, +static void i810BlendEquationSeparate(struct gl_context *ctx, GLenum modeRGB, GLenum modeA) { assert( modeRGB == modeA ); @@ -87,7 +87,7 @@ static void i810BlendEquationSeparate(GLcontext *ctx, ctx->Color.LogicOp != GL_COPY)); } -static void i810BlendFuncSeparate( GLcontext *ctx, GLenum sfactorRGB, +static void i810BlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -156,7 +156,7 @@ static void i810BlendFuncSeparate( GLcontext *ctx, GLenum sfactorRGB, -static void i810DepthFunc(GLcontext *ctx, GLenum func) +static void i810DepthFunc(struct gl_context *ctx, GLenum func) { i810ContextPtr imesa = I810_CONTEXT(ctx); int zmode; @@ -178,7 +178,7 @@ static void i810DepthFunc(GLcontext *ctx, GLenum func) imesa->Setup[I810_CTXREG_LCS] |= zmode; } -static void i810DepthMask(GLcontext *ctx, GLboolean flag) +static void i810DepthMask(struct gl_context *ctx, GLboolean flag) { i810ContextPtr imesa = I810_CONTEXT(ctx); I810_STATECHANGE(imesa, I810_UPLOAD_CTX); @@ -196,7 +196,7 @@ static void i810DepthMask(GLcontext *ctx, GLboolean flag) * The i810 supports a 4x4 stipple natively, GL wants 32x32. * Fortunately stipple is usually a repeating pattern. */ -static void i810PolygonStipple( GLcontext *ctx, const GLubyte *mask ) +static void i810PolygonStipple( struct gl_context *ctx, const GLubyte *mask ) { i810ContextPtr imesa = I810_CONTEXT(ctx); const GLubyte *m = mask; @@ -250,7 +250,7 @@ static void i810PolygonStipple( GLcontext *ctx, const GLubyte *mask ) */ -static void i810Scissor( GLcontext *ctx, GLint x, GLint y, +static void i810Scissor( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -267,7 +267,7 @@ static void i810Scissor( GLcontext *ctx, GLint x, GLint y, } -static void i810LogicOp( GLcontext *ctx, GLenum opcode ) +static void i810LogicOp( struct gl_context *ctx, GLenum opcode ) { i810ContextPtr imesa = I810_CONTEXT(ctx); FALLBACK( imesa, I810_FALLBACK_LOGICOP, @@ -276,14 +276,14 @@ static void i810LogicOp( GLcontext *ctx, GLenum opcode ) /* Fallback to swrast for select and feedback. */ -static void i810RenderMode( GLcontext *ctx, GLenum mode ) +static void i810RenderMode( struct gl_context *ctx, GLenum mode ) { i810ContextPtr imesa = I810_CONTEXT(ctx); FALLBACK( imesa, I810_FALLBACK_RENDERMODE, (mode != GL_RENDER) ); } -void i810DrawBuffer(GLcontext *ctx, GLenum mode ) +void i810DrawBuffer(struct gl_context *ctx, GLenum mode ) { i810ContextPtr imesa = I810_CONTEXT(ctx); int front = 0; @@ -328,13 +328,13 @@ void i810DrawBuffer(GLcontext *ctx, GLenum mode ) } -static void i810ReadBuffer(GLcontext *ctx, GLenum mode ) +static void i810ReadBuffer(struct gl_context *ctx, GLenum mode ) { /* XXX anything? */ } -static void i810ClearColor(GLcontext *ctx, const GLfloat color[4] ) +static void i810ClearColor(struct gl_context *ctx, const GLfloat color[4] ) { i810ContextPtr imesa = I810_CONTEXT(ctx); GLubyte c[4]; @@ -351,7 +351,7 @@ static void i810ClearColor(GLcontext *ctx, const GLfloat color[4] ) * Culling - the i810 isn't quite as clean here as the rest of * its interfaces, but it's not bad. */ -static void i810CullFaceFrontFace(GLcontext *ctx, GLenum unused) +static void i810CullFaceFrontFace(struct gl_context *ctx, GLenum unused) { i810ContextPtr imesa = I810_CONTEXT(ctx); GLuint mode = LCS_CULL_BOTH; @@ -375,7 +375,7 @@ static void i810CullFaceFrontFace(GLcontext *ctx, GLenum unused) } -static void i810LineWidth( GLcontext *ctx, GLfloat widthf ) +static void i810LineWidth( struct gl_context *ctx, GLfloat widthf ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); /* AA, non-AA limits are same */ @@ -394,7 +394,7 @@ static void i810LineWidth( GLcontext *ctx, GLfloat widthf ) } } -static void i810PointSize( GLcontext *ctx, GLfloat sz ) +static void i810PointSize( struct gl_context *ctx, GLfloat sz ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); /* AA, non-AA limits are same */ @@ -417,7 +417,7 @@ static void i810PointSize( GLcontext *ctx, GLfloat sz ) * Color masks */ -static void i810ColorMask(GLcontext *ctx, +static void i810ColorMask(struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -444,7 +444,7 @@ static void i810ColorMask(GLcontext *ctx, /* Seperate specular not fully implemented on the i810. */ -static void i810LightModelfv(GLcontext *ctx, GLenum pname, +static void i810LightModelfv(struct gl_context *ctx, GLenum pname, const GLfloat *param) { if (pname == GL_LIGHT_MODEL_COLOR_CONTROL) @@ -458,7 +458,7 @@ static void i810LightModelfv(GLcontext *ctx, GLenum pname, /* But the 815 has it... */ -static void i810LightModelfv_i815(GLcontext *ctx, GLenum pname, +static void i810LightModelfv_i815(struct gl_context *ctx, GLenum pname, const GLfloat *param) { if (pname == GL_LIGHT_MODEL_COLOR_CONTROL) @@ -475,7 +475,7 @@ static void i810LightModelfv_i815(GLcontext *ctx, GLenum pname, /* In Mesa 3.5 we can reliably do native flatshading. */ -static void i810ShadeModel(GLcontext *ctx, GLenum mode) +static void i810ShadeModel(struct gl_context *ctx, GLenum mode) { i810ContextPtr imesa = I810_CONTEXT(ctx); I810_STATECHANGE(imesa, I810_UPLOAD_CTX); @@ -490,7 +490,7 @@ static void i810ShadeModel(GLcontext *ctx, GLenum mode) /* ============================================================= * Fog */ -static void i810Fogfv(GLcontext *ctx, GLenum pname, const GLfloat *param) +static void i810Fogfv(struct gl_context *ctx, GLenum pname, const GLfloat *param) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -508,7 +508,7 @@ static void i810Fogfv(GLcontext *ctx, GLenum pname, const GLfloat *param) /* ============================================================= */ -static void i810Enable(GLcontext *ctx, GLenum cap, GLboolean state) +static void i810Enable(struct gl_context *ctx, GLenum cap, GLboolean state) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -672,7 +672,7 @@ void i810EmitDrawingRectangle( i810ContextPtr imesa ) -static void i810CalcViewport( GLcontext *ctx ) +static void i810CalcViewport( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -689,14 +689,14 @@ static void i810CalcViewport( GLcontext *ctx ) m[MAT_TZ] = v[MAT_TZ] * (1.0 / 0xffff); } -static void i810Viewport( GLcontext *ctx, +static void i810Viewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { i810CalcViewport( ctx ); } -static void i810DepthRange( GLcontext *ctx, +static void i810DepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { i810CalcViewport( ctx ); @@ -718,7 +718,7 @@ void i810PrintDirty( const char *msg, GLuint state ) -void i810InitState( GLcontext *ctx ) +void i810InitState( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT(ctx); i810ScreenPrivate *i810Screen = imesa->i810Screen; @@ -953,7 +953,7 @@ void i810InitState( GLcontext *ctx ) } -static void i810InvalidateState( GLcontext *ctx, GLuint new_state ) +static void i810InvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -963,7 +963,7 @@ static void i810InvalidateState( GLcontext *ctx, GLuint new_state ) } -void i810InitStateFuncs(GLcontext *ctx) +void i810InitStateFuncs(struct gl_context *ctx) { /* Callbacks for internal Mesa events. */ diff --git a/src/mesa/drivers/dri/i810/i810state.h b/src/mesa/drivers/dri/i810/i810state.h index 118b075491..96af123765 100644 --- a/src/mesa/drivers/dri/i810/i810state.h +++ b/src/mesa/drivers/dri/i810/i810state.h @@ -3,10 +3,10 @@ #include "i810context.h" -extern void i810InitState( GLcontext *ctx ); -extern void i810InitStateFuncs( GLcontext *ctx ); +extern void i810InitState( struct gl_context *ctx ); +extern void i810InitStateFuncs( struct gl_context *ctx ); extern void i810PrintDirty( const char *msg, GLuint state ); -extern void i810DrawBuffer(GLcontext *ctx, GLenum mode ); +extern void i810DrawBuffer(struct gl_context *ctx, GLenum mode ); extern void i810Fallback( i810ContextPtr imesa, GLuint bit, GLboolean mode ); #define FALLBACK( imesa, bit, mode ) i810Fallback( imesa, bit, mode ) diff --git a/src/mesa/drivers/dri/i810/i810tex.c b/src/mesa/drivers/dri/i810/i810tex.c index 2ccb9562e9..49364aeb22 100644 --- a/src/mesa/drivers/dri/i810/i810tex.c +++ b/src/mesa/drivers/dri/i810/i810tex.c @@ -31,7 +31,6 @@ #include "main/teximage.h" #include "main/texobj.h" #include "main/colormac.h" -#include "main/texobj.h" #include "main/mm.h" #include "texmem.h" @@ -167,7 +166,7 @@ i810SetTexBorderColor( i810TextureObjectPtr t, const GLfloat color[4] ) static i810TextureObjectPtr -i810AllocTexObj( GLcontext *ctx, struct gl_texture_object *texObj ) +i810AllocTexObj( struct gl_context *ctx, struct gl_texture_object *texObj ) { i810TextureObjectPtr t; i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -215,7 +214,7 @@ i810AllocTexObj( GLcontext *ctx, struct gl_texture_object *texObj ) } -static void i810TexParameter( GLcontext *ctx, GLenum target, +static void i810TexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj, GLenum pname, const GLfloat *params ) { @@ -286,7 +285,7 @@ static void i810TexParameter( GLcontext *ctx, GLenum target, * Determine whether or not \c param can be used instead of * \c texUnit->EnvColor in the \c GL_TEXTURE_ENV_COLOR case. */ -static void i810TexEnv( GLcontext *ctx, GLenum target, +static void i810TexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); @@ -334,7 +333,7 @@ static void i810TexEnv( GLcontext *ctx, GLenum target, #if 0 -static void i810TexImage1D( GLcontext *ctx, GLenum target, GLint level, +static void i810TexImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, @@ -349,7 +348,7 @@ static void i810TexImage1D( GLcontext *ctx, GLenum target, GLint level, } } -static void i810TexSubImage1D( GLcontext *ctx, +static void i810TexSubImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -364,7 +363,7 @@ static void i810TexSubImage1D( GLcontext *ctx, #endif -static void i810TexImage2D( GLcontext *ctx, GLenum target, GLint level, +static void i810TexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -389,7 +388,7 @@ static void i810TexImage2D( GLcontext *ctx, GLenum target, GLint level, pixels, packing, texObj, texImage ); } -static void i810TexSubImage2D( GLcontext *ctx, +static void i810TexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -411,14 +410,14 @@ static void i810TexSubImage2D( GLcontext *ctx, } -static void i810BindTexture( GLcontext *ctx, GLenum target, +static void i810BindTexture( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj ) { assert( (target != GL_TEXTURE_2D) || (tObj->DriverData != NULL) ); } -static void i810DeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj ) +static void i810DeleteTexture( struct gl_context *ctx, struct gl_texture_object *tObj ) { driTextureObject * t = (driTextureObject *) tObj->DriverData; if (t) { @@ -438,7 +437,7 @@ static void i810DeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj ) * makes this routine pretty simple. */ static gl_format -i810ChooseTextureFormat( GLcontext *ctx, GLint internalFormat, +i810ChooseTextureFormat( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { switch ( internalFormat ) { @@ -525,7 +524,7 @@ i810ChooseTextureFormat( GLcontext *ctx, GLint internalFormat, * texture object from the core mesa gl_texture_object. Not done at this time. */ static struct gl_texture_object * -i810NewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +i810NewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; obj = _mesa_new_texture_object(ctx, name, target); diff --git a/src/mesa/drivers/dri/i810/i810tex.h b/src/mesa/drivers/dri/i810/i810tex.h index 28958dcb4b..b396848b79 100644 --- a/src/mesa/drivers/dri/i810/i810tex.h +++ b/src/mesa/drivers/dri/i810/i810tex.h @@ -68,7 +68,7 @@ struct i810_texture_object_t { }; -void i810UpdateTextureState( GLcontext *ctx ); +void i810UpdateTextureState( struct gl_context *ctx ); void i810InitTextureFuncs( struct dd_function_table *functions ); void i810DestroyTexObj( i810ContextPtr imesa, i810TextureObjectPtr t ); diff --git a/src/mesa/drivers/dri/i810/i810texstate.c b/src/mesa/drivers/dri/i810/i810texstate.c index bff28c11c8..5b505e71a4 100644 --- a/src/mesa/drivers/dri/i810/i810texstate.c +++ b/src/mesa/drivers/dri/i810/i810texstate.c @@ -191,7 +191,7 @@ static const unsigned operand_modifiers[] = { * a reasonable place to make note of it. */ static GLboolean -i810UpdateTexEnvCombine( GLcontext *ctx, GLuint unit, +i810UpdateTexEnvCombine( struct gl_context *ctx, GLuint unit, int * color_stage, int * alpha_stage ) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -533,7 +533,7 @@ i810UpdateTexEnvCombine( GLcontext *ctx, GLuint unit, return GL_TRUE; } -static GLboolean enable_tex_common( GLcontext *ctx, GLuint unit ) +static GLboolean enable_tex_common( struct gl_context *ctx, GLuint unit ) { i810ContextPtr imesa = I810_CONTEXT(ctx); struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -570,7 +570,7 @@ static GLboolean enable_tex_common( GLcontext *ctx, GLuint unit ) return GL_TRUE; } -static GLboolean enable_tex_rect( GLcontext *ctx, GLuint unit ) +static GLboolean enable_tex_rect( struct gl_context *ctx, GLuint unit ) { i810ContextPtr imesa = I810_CONTEXT(ctx); struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -590,7 +590,7 @@ static GLboolean enable_tex_rect( GLcontext *ctx, GLuint unit ) return GL_TRUE; } -static GLboolean enable_tex_2d( GLcontext *ctx, GLuint unit ) +static GLboolean enable_tex_2d( struct gl_context *ctx, GLuint unit ) { i810ContextPtr imesa = I810_CONTEXT(ctx); struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -610,7 +610,7 @@ static GLboolean enable_tex_2d( GLcontext *ctx, GLuint unit ) return GL_TRUE; } -static void disable_tex( GLcontext *ctx, GLuint unit ) +static void disable_tex( struct gl_context *ctx, GLuint unit ) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -627,7 +627,7 @@ static void disable_tex( GLcontext *ctx, GLuint unit ) * 1D textures should be supported! Just use a 2D texture with the second * texture coordinate value fixed at 0.0. */ -static void i810UpdateTexUnit( GLcontext *ctx, GLuint unit, +static void i810UpdateTexUnit( struct gl_context *ctx, GLuint unit, int * next_color_stage, int * next_alpha_stage ) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -664,7 +664,7 @@ static void i810UpdateTexUnit( GLcontext *ctx, GLuint unit, } -void i810UpdateTextureState( GLcontext *ctx ) +void i810UpdateTextureState( struct gl_context *ctx ) { static const unsigned color_pass[3] = { GFX_OP_MAP_COLOR_STAGES | MC_STAGE_0 | MC_UPDATE_DEST | MC_DEST_CURRENT diff --git a/src/mesa/drivers/dri/i810/i810tris.c b/src/mesa/drivers/dri/i810/i810tris.c index 1492f711c9..ec22a3deb3 100644 --- a/src/mesa/drivers/dri/i810/i810tris.c +++ b/src/mesa/drivers/dri/i810/i810tris.c @@ -49,7 +49,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "i810vb.h" #include "i810ioctl.h" -static void i810RenderPrimitive( GLcontext *ctx, GLenum prim ); +static void i810RenderPrimitive( struct gl_context *ctx, GLenum prim ); /*********************************************************************** * Emit primitives as inline vertices * @@ -407,7 +407,7 @@ i810_fallback_tri( i810ContextPtr imesa, i810Vertex *v1, i810Vertex *v2 ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; SWvertex v[3]; i810_translate_vertex( ctx, v0, &v[0] ); i810_translate_vertex( ctx, v1, &v[1] ); @@ -421,7 +421,7 @@ i810_fallback_line( i810ContextPtr imesa, i810Vertex *v0, i810Vertex *v1 ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; SWvertex v[2]; i810_translate_vertex( ctx, v0, &v[0] ); i810_translate_vertex( ctx, v1, &v[1] ); @@ -433,7 +433,7 @@ static void i810_fallback_point( i810ContextPtr imesa, i810Vertex *v0 ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; SWvertex v[1]; i810_translate_vertex( ctx, v0, &v[0] ); _swrast_Point( ctx, &v[0] ); @@ -478,7 +478,7 @@ i810_fallback_point( i810ContextPtr imesa, -static void i810RenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void i810RenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -502,13 +502,13 @@ static void i810RenderClippedPoly( GLcontext *ctx, const GLuint *elts, tnl->Driver.Render.PrimitiveNotify( ctx, prim ); } -static void i810RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +static void i810RenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); } -static void i810FastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void i810FastRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); @@ -549,7 +549,7 @@ static void i810FastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, DD_TRI_STIPPLE) #define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED) -static void i810ChooseRenderState(GLcontext *ctx) +static void i810ChooseRenderState(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -640,7 +640,7 @@ static const GLenum reduced_prim[GL_POLYGON+1] = { * which renders strips as strips, the equivalent calculations are * performed in i810render.c. */ -static void i810RenderPrimitive( GLcontext *ctx, GLenum prim ) +static void i810RenderPrimitive( struct gl_context *ctx, GLenum prim ) { i810ContextPtr imesa = I810_CONTEXT(ctx); GLuint rprim = reduced_prim[prim]; @@ -656,7 +656,7 @@ static void i810RenderPrimitive( GLcontext *ctx, GLenum prim ) } } -static void i810RunPipeline( GLcontext *ctx ) +static void i810RunPipeline( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT(ctx); @@ -678,7 +678,7 @@ static void i810RunPipeline( GLcontext *ctx ) _tnl_run_pipeline( ctx ); } -static void i810RenderStart( GLcontext *ctx ) +static void i810RenderStart( struct gl_context *ctx ) { /* Check for projective textureing. Make sure all texcoord * pointers point to something. (fix in mesa?) @@ -686,7 +686,7 @@ static void i810RenderStart( GLcontext *ctx ) i810CheckTexSizes( ctx ); } -static void i810RenderFinish( GLcontext *ctx ) +static void i810RenderFinish( struct gl_context *ctx ) { if (I810_CONTEXT(ctx)->RenderIndex & I810_FALLBACK_BIT) _swrast_flush( ctx ); @@ -698,7 +698,7 @@ static void i810RenderFinish( GLcontext *ctx ) /* System to flush dma and emit state changes based on the rasterized * primitive. */ -void i810RasterPrimitive( GLcontext *ctx, +void i810RasterPrimitive( struct gl_context *ctx, GLenum rprim, GLuint hwprim ) { @@ -815,7 +815,7 @@ static char *getFallbackString(GLuint bit) void i810Fallback( i810ContextPtr imesa, GLuint bit, GLboolean mode ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; TNLcontext *tnl = TNL_CONTEXT(ctx); GLuint oldfallback = imesa->Fallback; @@ -853,7 +853,7 @@ void i810Fallback( i810ContextPtr imesa, GLuint bit, GLboolean mode ) /**********************************************************************/ -void i810InitTriFuncs( GLcontext *ctx ) +void i810InitTriFuncs( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); static int firsttime = 1; diff --git a/src/mesa/drivers/dri/i810/i810tris.h b/src/mesa/drivers/dri/i810/i810tris.h index ab026be0a5..07a0ebf69f 100644 --- a/src/mesa/drivers/dri/i810/i810tris.h +++ b/src/mesa/drivers/dri/i810/i810tris.h @@ -29,7 +29,7 @@ #include "main/mtypes.h" extern void i810PrintRenderState( const char *msg, GLuint state ); -extern void i810InitTriFuncs( GLcontext *ctx ); -extern void i810RasterPrimitive( GLcontext *ctx, GLenum rprim, GLuint hwprim ); +extern void i810InitTriFuncs( struct gl_context *ctx ); +extern void i810RasterPrimitive( struct gl_context *ctx, GLenum rprim, GLuint hwprim ); #endif diff --git a/src/mesa/drivers/dri/i810/i810vb.c b/src/mesa/drivers/dri/i810/i810vb.c index 70301a2d2e..333e07c0ea 100644 --- a/src/mesa/drivers/dri/i810/i810vb.c +++ b/src/mesa/drivers/dri/i810/i810vb.c @@ -51,10 +51,10 @@ #define I810_MAX_SETUP 0x80 static struct { - void (*emit)( GLcontext *, GLuint, GLuint, void *, GLuint ); + void (*emit)( struct gl_context *, GLuint, GLuint, void *, GLuint ); tnl_interp_func interp; tnl_copy_pv_func copy_pv; - GLboolean (*check_tex_sizes)( GLcontext *ctx ); + GLboolean (*check_tex_sizes)( struct gl_context *ctx ); GLuint vertex_size; GLuint vertex_format; } setup_tab[I810_MAX_SETUP]; @@ -335,7 +335,7 @@ static void i810PrintSetupFlags(const char *msg, GLuint flags ) -void i810CheckTexSizes( GLcontext *ctx ) +void i810CheckTexSizes( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); i810ContextPtr imesa = I810_CONTEXT( ctx ); @@ -357,7 +357,7 @@ void i810CheckTexSizes( GLcontext *ctx ) } } -void i810BuildVertices( GLcontext *ctx, +void i810BuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ) @@ -405,7 +405,7 @@ void i810BuildVertices( GLcontext *ctx, } } -void i810ChooseVertexState( GLcontext *ctx ) +void i810ChooseVertexState( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); i810ContextPtr imesa = I810_CONTEXT( ctx ); @@ -446,7 +446,7 @@ void i810ChooseVertexState( GLcontext *ctx ) -void *i810_emit_contiguous_verts( GLcontext *ctx, +void *i810_emit_contiguous_verts( struct gl_context *ctx, GLuint start, GLuint count, void *dest ) @@ -459,7 +459,7 @@ void *i810_emit_contiguous_verts( GLcontext *ctx, -void i810InitVB( GLcontext *ctx ) +void i810InitVB( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT(ctx); GLuint size = TNL_CONTEXT(ctx)->vb.Size; @@ -476,7 +476,7 @@ void i810InitVB( GLcontext *ctx ) } -void i810FreeVB( GLcontext *ctx ) +void i810FreeVB( struct gl_context *ctx ) { i810ContextPtr imesa = I810_CONTEXT(ctx); if (imesa->verts) { diff --git a/src/mesa/drivers/dri/i810/i810vb.h b/src/mesa/drivers/dri/i810/i810vb.h index 1f704e4569..e321518507 100644 --- a/src/mesa/drivers/dri/i810/i810vb.h +++ b/src/mesa/drivers/dri/i810/i810vb.h @@ -36,24 +36,24 @@ _NEW_FOG) -extern void i810ChooseVertexState( GLcontext *ctx ); -extern void i810CheckTexSizes( GLcontext *ctx ); -extern void i810BuildVertices( GLcontext *ctx, +extern void i810ChooseVertexState( struct gl_context *ctx ); +extern void i810CheckTexSizes( struct gl_context *ctx ); +extern void i810BuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ); -extern void *i810_emit_contiguous_verts( GLcontext *ctx, +extern void *i810_emit_contiguous_verts( struct gl_context *ctx, GLuint start, GLuint count, void *dest ); -extern void i810_translate_vertex( GLcontext *ctx, +extern void i810_translate_vertex( struct gl_context *ctx, const i810Vertex *src, SWvertex *dst ); -extern void i810InitVB( GLcontext *ctx ); -extern void i810FreeVB( GLcontext *ctx ); +extern void i810InitVB( struct gl_context *ctx ); +extern void i810FreeVB( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/i915/i830_context.c b/src/mesa/drivers/dri/i915/i830_context.c index 8ddce6d82a..abfb32be3a 100644 --- a/src/mesa/drivers/dri/i915/i830_context.c +++ b/src/mesa/drivers/dri/i915/i830_context.c @@ -48,14 +48,14 @@ i830InitDriverFunctions(struct dd_function_table *functions) extern const struct tnl_pipeline_stage *intel_pipeline[]; GLboolean -i830CreateContext(const __GLcontextModes * mesaVis, +i830CreateContext(const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate) { struct dd_function_table functions; struct i830_context *i830 = CALLOC_STRUCT(i830_context); struct intel_context *intel = &i830->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; if (!i830) return GL_FALSE; diff --git a/src/mesa/drivers/dri/i915/i830_context.h b/src/mesa/drivers/dri/i915/i830_context.h index 2100ffe6d9..4d568fc0f1 100644 --- a/src/mesa/drivers/dri/i915/i830_context.h +++ b/src/mesa/drivers/dri/i915/i830_context.h @@ -178,7 +178,7 @@ i830_state_draw_region(struct intel_context *intel, /* i830_context.c */ extern GLboolean -i830CreateContext(const __GLcontextModes * mesaVis, +i830CreateContext(const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate); @@ -205,14 +205,14 @@ extern void i830InitStateFuncs(struct dd_function_table *functions); extern void i830EmitState(struct i830_context *i830); extern void i830InitState(struct i830_context *i830); -extern void i830_update_provoking_vertex(GLcontext *ctx); +extern void i830_update_provoking_vertex(struct gl_context *ctx); /*====================================================================== * Inline conversion functions. These are better-typed than the * macros used previously: */ static INLINE struct i830_context * -i830_context(GLcontext * ctx) +i830_context(struct gl_context * ctx) { return (struct i830_context *) ctx; } diff --git a/src/mesa/drivers/dri/i915/i830_state.c b/src/mesa/drivers/dri/i915/i830_state.c index 38e524e183..147192adc7 100644 --- a/src/mesa/drivers/dri/i915/i830_state.c +++ b/src/mesa/drivers/dri/i915/i830_state.c @@ -47,7 +47,7 @@ #define FILE_DEBUG_FLAG DEBUG_STATE static void -i830StencilFuncSeparate(GLcontext * ctx, GLenum face, GLenum func, GLint ref, +i830StencilFuncSeparate(struct gl_context * ctx, GLenum face, GLenum func, GLint ref, GLuint mask) { struct i830_context *i830 = i830_context(ctx); @@ -72,7 +72,7 @@ i830StencilFuncSeparate(GLcontext * ctx, GLenum face, GLenum func, GLint ref, } static void -i830StencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) +i830StencilMaskSeparate(struct gl_context * ctx, GLenum face, GLuint mask) { struct i830_context *i830 = i830_context(ctx); @@ -87,7 +87,7 @@ i830StencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) } static void -i830StencilOpSeparate(GLcontext * ctx, GLenum face, GLenum fail, GLenum zfail, +i830StencilOpSeparate(struct gl_context * ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { struct i830_context *i830 = i830_context(ctx); @@ -199,7 +199,7 @@ i830StencilOpSeparate(GLcontext * ctx, GLenum face, GLenum fail, GLenum zfail, } static void -i830AlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) +i830AlphaFunc(struct gl_context * ctx, GLenum func, GLfloat ref) { struct i830_context *i830 = i830_context(ctx); int test = intel_translate_compare_func(func); @@ -228,7 +228,7 @@ i830AlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) * I'm not sure which is correct. */ static void -i830EvalLogicOpBlendState(GLcontext * ctx) +i830EvalLogicOpBlendState(struct gl_context * ctx) { struct i830_context *i830 = i830_context(ctx); @@ -255,7 +255,7 @@ i830EvalLogicOpBlendState(GLcontext * ctx) } static void -i830BlendColor(GLcontext * ctx, const GLfloat color[4]) +i830BlendColor(struct gl_context * ctx, const GLfloat color[4]) { struct i830_context *i830 = i830_context(ctx); GLubyte r, g, b, a; @@ -279,7 +279,7 @@ i830BlendColor(GLcontext * ctx, const GLfloat color[4]) * change the interpretation of the blend function. */ static void -i830_set_blend_state(GLcontext * ctx) +i830_set_blend_state(struct gl_context * ctx) { struct i830_context *i830 = i830_context(ctx); int funcA; @@ -385,7 +385,7 @@ i830_set_blend_state(GLcontext * ctx) static void -i830BlendEquationSeparate(GLcontext * ctx, GLenum modeRGB, GLenum modeA) +i830BlendEquationSeparate(struct gl_context * ctx, GLenum modeRGB, GLenum modeA) { DBG("%s -> %s, %s\n", __FUNCTION__, _mesa_lookup_enum_by_nr(modeRGB), @@ -398,7 +398,7 @@ i830BlendEquationSeparate(GLcontext * ctx, GLenum modeRGB, GLenum modeA) static void -i830BlendFuncSeparate(GLcontext * ctx, GLenum sfactorRGB, +i830BlendFuncSeparate(struct gl_context * ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA) { DBG("%s -> RGB(%s, %s) A(%s, %s)\n", __FUNCTION__, @@ -417,7 +417,7 @@ i830BlendFuncSeparate(GLcontext * ctx, GLenum sfactorRGB, static void -i830DepthFunc(GLcontext * ctx, GLenum func) +i830DepthFunc(struct gl_context * ctx, GLenum func) { struct i830_context *i830 = i830_context(ctx); int test = intel_translate_compare_func(func); @@ -431,7 +431,7 @@ i830DepthFunc(GLcontext * ctx, GLenum func) } static void -i830DepthMask(GLcontext * ctx, GLboolean flag) +i830DepthMask(struct gl_context * ctx, GLboolean flag) { struct i830_context *i830 = i830_context(ctx); @@ -449,7 +449,7 @@ i830DepthMask(GLcontext * ctx, GLboolean flag) /** Called from ctx->Driver.Viewport() */ static void -i830Viewport(GLcontext * ctx, +i830Viewport(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height) { intelCalcViewport(ctx); @@ -458,7 +458,7 @@ i830Viewport(GLcontext * ctx, /** Called from ctx->Driver.DepthRange() */ static void -i830DepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval) +i830DepthRange(struct gl_context * ctx, GLclampd nearval, GLclampd farval) { intelCalcViewport(ctx); } @@ -470,7 +470,7 @@ i830DepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval) * Fortunately stipple is usually a repeating pattern. */ static void -i830PolygonStipple(GLcontext * ctx, const GLubyte * mask) +i830PolygonStipple(struct gl_context * ctx, const GLubyte * mask) { struct i830_context *i830 = i830_context(ctx); const GLubyte *m = mask; @@ -526,7 +526,7 @@ i830PolygonStipple(GLcontext * ctx, const GLubyte * mask) * Hardware clipping */ static void -i830Scissor(GLcontext * ctx, GLint x, GLint y, GLsizei w, GLsizei h) +i830Scissor(struct gl_context * ctx, GLint x, GLint y, GLsizei w, GLsizei h) { struct i830_context *i830 = i830_context(ctx); int x1, y1, x2, y2; @@ -566,7 +566,7 @@ i830Scissor(GLcontext * ctx, GLint x, GLint y, GLsizei w, GLsizei h) } static void -i830LogicOp(GLcontext * ctx, GLenum opcode) +i830LogicOp(struct gl_context * ctx, GLenum opcode) { struct i830_context *i830 = i830_context(ctx); int tmp = intel_translate_logic_op(opcode); @@ -581,7 +581,7 @@ i830LogicOp(GLcontext * ctx, GLenum opcode) static void -i830CullFaceFrontFace(GLcontext * ctx, GLenum unused) +i830CullFaceFrontFace(struct gl_context * ctx, GLenum unused) { struct i830_context *i830 = i830_context(ctx); GLuint mode; @@ -609,7 +609,7 @@ i830CullFaceFrontFace(GLcontext * ctx, GLenum unused) } static void -i830LineWidth(GLcontext * ctx, GLfloat widthf) +i830LineWidth(struct gl_context * ctx, GLfloat widthf) { struct i830_context *i830 = i830_context(ctx); int width; @@ -630,7 +630,7 @@ i830LineWidth(GLcontext * ctx, GLfloat widthf) } static void -i830PointSize(GLcontext * ctx, GLfloat size) +i830PointSize(struct gl_context * ctx, GLfloat size) { struct i830_context *i830 = i830_context(ctx); GLint point_size = (int) size; @@ -650,7 +650,7 @@ i830PointSize(GLcontext * ctx, GLfloat size) */ static void -i830ColorMask(GLcontext * ctx, +i830ColorMask(struct gl_context * ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a) { struct i830_context *i830 = i830_context(ctx); @@ -672,7 +672,7 @@ i830ColorMask(GLcontext * ctx, } static void -update_specular(GLcontext * ctx) +update_specular(struct gl_context * ctx) { struct i830_context *i830 = i830_context(ctx); @@ -686,7 +686,7 @@ update_specular(GLcontext * ctx) } static void -i830LightModelfv(GLcontext * ctx, GLenum pname, const GLfloat * param) +i830LightModelfv(struct gl_context * ctx, GLenum pname, const GLfloat * param) { DBG("%s\n", __FUNCTION__); @@ -698,7 +698,7 @@ i830LightModelfv(GLcontext * ctx, GLenum pname, const GLfloat * param) /* In Mesa 3.5 we can reliably do native flatshading. */ static void -i830ShadeModel(GLcontext * ctx, GLenum mode) +i830ShadeModel(struct gl_context * ctx, GLenum mode) { struct i830_context *i830 = i830_context(ctx); I830_STATECHANGE(i830, I830_UPLOAD_CTX); @@ -727,7 +727,7 @@ i830ShadeModel(GLcontext * ctx, GLenum mode) * Fog */ static void -i830Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) +i830Fogfv(struct gl_context * ctx, GLenum pname, const GLfloat * param) { struct i830_context *i830 = i830_context(ctx); @@ -748,7 +748,7 @@ i830Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) */ static void -i830Enable(GLcontext * ctx, GLenum cap, GLboolean state) +i830Enable(struct gl_context * ctx, GLenum cap, GLboolean state) { struct i830_context *i830 = i830_context(ctx); @@ -1067,7 +1067,7 @@ i830_init_packets(struct i830_context *i830) } void -i830_update_provoking_vertex(GLcontext * ctx) +i830_update_provoking_vertex(struct gl_context * ctx) { struct i830_context *i830 = i830_context(ctx); @@ -1119,7 +1119,7 @@ i830InitStateFuncs(struct dd_function_table *functions) void i830InitState(struct i830_context *i830) { - GLcontext *ctx = &i830->intel.ctx; + struct gl_context *ctx = &i830->intel.ctx; i830_init_packets(i830); diff --git a/src/mesa/drivers/dri/i915/i830_texblend.c b/src/mesa/drivers/dri/i915/i830_texblend.c index 3f64be8c96..fec86c56fd 100644 --- a/src/mesa/drivers/dri/i915/i830_texblend.c +++ b/src/mesa/drivers/dri/i915/i830_texblend.c @@ -440,7 +440,7 @@ emit_passthrough(struct i830_context *i830) void i830EmitTextureBlend(struct i830_context *i830) { - GLcontext *ctx = &i830->intel.ctx; + struct gl_context *ctx = &i830->intel.ctx; GLuint unit, last_stage = 0, blendunit = 0; I830_ACTIVESTATE(i830, I830_UPLOAD_TEXBLEND_ALL, GL_FALSE); diff --git a/src/mesa/drivers/dri/i915/i830_texstate.c b/src/mesa/drivers/dri/i915/i830_texstate.c index ace44430d9..b3bb8837cc 100644 --- a/src/mesa/drivers/dri/i915/i830_texstate.c +++ b/src/mesa/drivers/dri/i915/i830_texstate.c @@ -113,7 +113,7 @@ translate_wrap_mode(GLenum wrap) static GLboolean i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; struct i830_context *i830 = i830_context(ctx); struct gl_texture_unit *tUnit = &ctx->Texture.Unit[unit]; struct gl_texture_object *tObj = tUnit->_Current; diff --git a/src/mesa/drivers/dri/i915/i830_vtbl.c b/src/mesa/drivers/dri/i915/i830_vtbl.c index 0775d7fe94..f7fdb78d05 100644 --- a/src/mesa/drivers/dri/i915/i830_vtbl.c +++ b/src/mesa/drivers/dri/i915/i830_vtbl.c @@ -69,7 +69,7 @@ i830_render_prevalidate(struct intel_context *intel) static void i830_render_start(struct intel_context *intel) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; struct i830_context *i830 = i830_context(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -591,7 +591,7 @@ i830_set_draw_region(struct intel_context *intel, GLuint num_regions) { struct i830_context *i830 = i830_context(&intel->ctx); - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0]; struct intel_renderbuffer *irb = intel_renderbuffer(rb); GLuint value; @@ -703,6 +703,7 @@ i830_assert_not_dirty( struct intel_context *intel ) { struct i830_context *i830 = i830_context(&intel->ctx); assert(!get_dirty(&i830->state)); + (void) i830; } static void diff --git a/src/mesa/drivers/dri/i915/i915_context.c b/src/mesa/drivers/dri/i915/i915_context.c index bf6762d666..f943f81dd0 100644 --- a/src/mesa/drivers/dri/i915/i915_context.c +++ b/src/mesa/drivers/dri/i915/i915_context.c @@ -40,7 +40,6 @@ #include "i915_reg.h" #include "i915_program.h" -#include "intel_tris.h" #include "intel_span.h" /*************************************** @@ -50,7 +49,7 @@ /* Override intel default. */ static void -i915InvalidateState(GLcontext * ctx, GLuint new_state) +i915InvalidateState(struct gl_context * ctx, GLuint new_state) { _swrast_InvalidateState(ctx, new_state); _swsetup_InvalidateState(ctx, new_state); @@ -95,7 +94,7 @@ extern const struct tnl_pipeline_stage *intel_pipeline[]; GLboolean i915CreateContext(int api, - const __GLcontextModes * mesaVis, + const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate) { @@ -103,7 +102,7 @@ i915CreateContext(int api, struct i915_context *i915 = (struct i915_context *) CALLOC_STRUCT(i915_context); struct intel_context *intel = &i915->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; if (!i915) return GL_FALSE; diff --git a/src/mesa/drivers/dri/i915/i915_context.h b/src/mesa/drivers/dri/i915/i915_context.h index 33dad9a195..2c80ded075 100644 --- a/src/mesa/drivers/dri/i915/i915_context.h +++ b/src/mesa/drivers/dri/i915/i915_context.h @@ -158,7 +158,7 @@ struct i915_fragment_program /* TODO: split between the stored representation of a program and * the state used to build that representation. */ - GLcontext *ctx; + struct gl_context *ctx; /* declarations contains the packet header. */ GLuint declarations[I915_MAX_DECL_INSN * 3 + 1]; @@ -320,7 +320,7 @@ do { \ * i915_context.c */ extern GLboolean i915CreateContext(int api, - const __GLcontextModes * mesaVis, + const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate); @@ -337,9 +337,9 @@ extern void i915_print_ureg(const char *msg, GLuint ureg); */ extern void i915InitStateFunctions(struct dd_function_table *functions); extern void i915InitState(struct i915_context *i915); -extern void i915_update_fog(GLcontext * ctx); -extern void i915_update_stencil(GLcontext * ctx); -extern void i915_update_provoking_vertex(GLcontext *ctx); +extern void i915_update_fog(struct gl_context * ctx); +extern void i915_update_stencil(struct gl_context * ctx); +extern void i915_update_provoking_vertex(struct gl_context *ctx); /*====================================================================== @@ -359,7 +359,7 @@ extern void i915InitFragProgFuncs(struct dd_function_table *functions); * macros used previously: */ static INLINE struct i915_context * -i915_context(GLcontext * ctx) +i915_context(struct gl_context * ctx) { return (struct i915_context *) ctx; } diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c index 31988f3d81..c00ee415b6 100644 --- a/src/mesa/drivers/dri/i915/i915_fragprog.c +++ b/src/mesa/drivers/dri/i915/i915_fragprog.c @@ -1186,7 +1186,7 @@ track_params(struct i915_fragment_program *p) static void -i915BindProgram(GLcontext * ctx, GLenum target, struct gl_program *prog) +i915BindProgram(struct gl_context * ctx, GLenum target, struct gl_program *prog) { if (target == GL_FRAGMENT_PROGRAM_ARB) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -1209,7 +1209,7 @@ i915BindProgram(GLcontext * ctx, GLenum target, struct gl_program *prog) } static struct gl_program * -i915NewProgram(GLcontext * ctx, GLenum target, GLuint id) +i915NewProgram(struct gl_context * ctx, GLenum target, GLuint id) { switch (target) { case GL_VERTEX_PROGRAM_ARB: @@ -1237,7 +1237,7 @@ i915NewProgram(GLcontext * ctx, GLenum target, GLuint id) } static void -i915DeleteProgram(GLcontext * ctx, struct gl_program *prog) +i915DeleteProgram(struct gl_context * ctx, struct gl_program *prog) { if (prog->Target == GL_FRAGMENT_PROGRAM_ARB) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -1252,7 +1252,7 @@ i915DeleteProgram(GLcontext * ctx, struct gl_program *prog) static GLboolean -i915IsProgramNative(GLcontext * ctx, GLenum target, struct gl_program *prog) +i915IsProgramNative(struct gl_context * ctx, GLenum target, struct gl_program *prog) { if (target == GL_FRAGMENT_PROGRAM_ARB) { struct i915_fragment_program *p = (struct i915_fragment_program *) prog; @@ -1267,7 +1267,7 @@ i915IsProgramNative(GLcontext * ctx, GLenum target, struct gl_program *prog) } static GLboolean -i915ProgramStringNotify(GLcontext * ctx, +i915ProgramStringNotify(struct gl_context * ctx, GLenum target, struct gl_program *prog) { if (target == GL_FRAGMENT_PROGRAM_ARB) { @@ -1291,7 +1291,7 @@ i915ProgramStringNotify(GLcontext * ctx, } void -i915_update_program(GLcontext *ctx) +i915_update_program(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); struct i915_context *i915 = i915_context(&intel->ctx); @@ -1316,7 +1316,7 @@ i915_update_program(GLcontext *ctx) void i915ValidateFragmentProgram(struct i915_context *i915) { - GLcontext *ctx = &i915->intel.ctx; + struct gl_context *ctx = &i915->intel.ctx; struct intel_context *intel = intel_context(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; diff --git a/src/mesa/drivers/dri/i915/i915_program.c b/src/mesa/drivers/dri/i915/i915_program.c index 670c713785..ca1949b223 100644 --- a/src/mesa/drivers/dri/i915/i915_program.c +++ b/src/mesa/drivers/dri/i915/i915_program.c @@ -457,7 +457,7 @@ i915_program_error(struct i915_fragment_program *p, const char *fmt, ...) void i915_init_program(struct i915_context *i915, struct i915_fragment_program *p) { - GLcontext *ctx = &i915->intel.ctx; + struct gl_context *ctx = &i915->intel.ctx; p->translated = 0; p->params_uptodate = 0; diff --git a/src/mesa/drivers/dri/i915/i915_program.h b/src/mesa/drivers/dri/i915/i915_program.h index 0d17d04865..20a1354a41 100644 --- a/src/mesa/drivers/dri/i915/i915_program.h +++ b/src/mesa/drivers/dri/i915/i915_program.h @@ -155,6 +155,6 @@ extern void i915_upload_program(struct i915_context *i915, extern void i915_fini_program(struct i915_fragment_program *p); -extern void i915_update_program(GLcontext *ctx); +extern void i915_update_program(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/i915/i915_state.c b/src/mesa/drivers/dri/i915/i915_state.c index 26d387f383..9508fbaf94 100644 --- a/src/mesa/drivers/dri/i915/i915_state.c +++ b/src/mesa/drivers/dri/i915/i915_state.c @@ -49,7 +49,7 @@ #define FILE_DEBUG_FLAG DEBUG_STATE void -i915_update_stencil(GLcontext * ctx) +i915_update_stencil(struct gl_context * ctx) { struct i915_context *i915 = I915_CONTEXT(ctx); GLuint front_ref, front_writemask, front_mask; @@ -147,24 +147,24 @@ i915_update_stencil(GLcontext * ctx) } static void -i915StencilFuncSeparate(GLcontext * ctx, GLenum face, GLenum func, GLint ref, +i915StencilFuncSeparate(struct gl_context * ctx, GLenum face, GLenum func, GLint ref, GLuint mask) { } static void -i915StencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) +i915StencilMaskSeparate(struct gl_context * ctx, GLenum face, GLuint mask) { } static void -i915StencilOpSeparate(GLcontext * ctx, GLenum face, GLenum fail, GLenum zfail, +i915StencilOpSeparate(struct gl_context * ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { } static void -i915AlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) +i915AlphaFunc(struct gl_context * ctx, GLenum func, GLfloat ref) { struct i915_context *i915 = I915_CONTEXT(ctx); int test = intel_translate_compare_func(func); @@ -187,7 +187,7 @@ i915AlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) * calls to glEnable. */ static void -i915EvalLogicOpBlendState(GLcontext * ctx) +i915EvalLogicOpBlendState(struct gl_context * ctx) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -210,7 +210,7 @@ i915EvalLogicOpBlendState(GLcontext * ctx) } static void -i915BlendColor(GLcontext * ctx, const GLfloat color[4]) +i915BlendColor(struct gl_context * ctx, const GLfloat color[4]) { struct i915_context *i915 = I915_CONTEXT(ctx); GLubyte r, g, b, a; @@ -255,7 +255,7 @@ translate_blend_equation(GLenum mode) } static void -i915UpdateBlendState(GLcontext * ctx) +i915UpdateBlendState(struct gl_context * ctx) { struct i915_context *i915 = I915_CONTEXT(ctx); GLuint iab = (i915->state.Ctx[I915_CTXREG_IAB] & @@ -306,7 +306,7 @@ i915UpdateBlendState(GLcontext * ctx) static void -i915BlendFuncSeparate(GLcontext * ctx, GLenum srcRGB, +i915BlendFuncSeparate(struct gl_context * ctx, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA) { i915UpdateBlendState(ctx); @@ -314,14 +314,14 @@ i915BlendFuncSeparate(GLcontext * ctx, GLenum srcRGB, static void -i915BlendEquationSeparate(GLcontext * ctx, GLenum eqRGB, GLenum eqA) +i915BlendEquationSeparate(struct gl_context * ctx, GLenum eqRGB, GLenum eqA) { i915UpdateBlendState(ctx); } static void -i915DepthFunc(GLcontext * ctx, GLenum func) +i915DepthFunc(struct gl_context * ctx, GLenum func) { struct i915_context *i915 = I915_CONTEXT(ctx); int test = intel_translate_compare_func(func); @@ -334,7 +334,7 @@ i915DepthFunc(GLcontext * ctx, GLenum func) } static void -i915DepthMask(GLcontext * ctx, GLboolean flag) +i915DepthMask(struct gl_context * ctx, GLboolean flag) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -357,7 +357,7 @@ i915DepthMask(GLcontext * ctx, GLboolean flag) * - window pos/size or FBO size */ void -intelCalcViewport(GLcontext * ctx) +intelCalcViewport(struct gl_context * ctx) { struct intel_context *intel = intel_context(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -390,7 +390,7 @@ intelCalcViewport(GLcontext * ctx) /** Called from ctx->Driver.Viewport() */ static void -i915Viewport(GLcontext * ctx, +i915Viewport(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height) { intelCalcViewport(ctx); @@ -399,7 +399,7 @@ i915Viewport(GLcontext * ctx, /** Called from ctx->Driver.DepthRange() */ static void -i915DepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval) +i915DepthRange(struct gl_context * ctx, GLclampd nearval, GLclampd farval) { intelCalcViewport(ctx); } @@ -412,7 +412,7 @@ i915DepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval) * Fortunately stipple is usually a repeating pattern. */ static void -i915PolygonStipple(GLcontext * ctx, const GLubyte * mask) +i915PolygonStipple(struct gl_context * ctx, const GLubyte * mask) { struct i915_context *i915 = I915_CONTEXT(ctx); const GLubyte *m; @@ -474,7 +474,7 @@ i915PolygonStipple(GLcontext * ctx, const GLubyte * mask) * Hardware clipping */ static void -i915Scissor(GLcontext * ctx, GLint x, GLint y, GLsizei w, GLsizei h) +i915Scissor(struct gl_context * ctx, GLint x, GLint y, GLsizei w, GLsizei h) { struct i915_context *i915 = I915_CONTEXT(ctx); int x1, y1, x2, y2; @@ -514,7 +514,7 @@ i915Scissor(GLcontext * ctx, GLint x, GLint y, GLsizei w, GLsizei h) } static void -i915LogicOp(GLcontext * ctx, GLenum opcode) +i915LogicOp(struct gl_context * ctx, GLenum opcode) { struct i915_context *i915 = I915_CONTEXT(ctx); int tmp = intel_translate_logic_op(opcode); @@ -529,7 +529,7 @@ i915LogicOp(GLcontext * ctx, GLenum opcode) static void -i915CullFaceFrontFace(GLcontext * ctx, GLenum unused) +i915CullFaceFrontFace(struct gl_context * ctx, GLenum unused) { struct i915_context *i915 = I915_CONTEXT(ctx); GLuint mode; @@ -560,7 +560,7 @@ i915CullFaceFrontFace(GLcontext * ctx, GLenum unused) } static void -i915LineWidth(GLcontext * ctx, GLfloat widthf) +i915LineWidth(struct gl_context * ctx, GLfloat widthf) { struct i915_context *i915 = I915_CONTEXT(ctx); int lis4 = i915->state.Ctx[I915_CTXREG_LIS4] & ~S4_LINE_WIDTH_MASK; @@ -579,7 +579,7 @@ i915LineWidth(GLcontext * ctx, GLfloat widthf) } static void -i915PointSize(GLcontext * ctx, GLfloat size) +i915PointSize(struct gl_context * ctx, GLfloat size) { struct i915_context *i915 = I915_CONTEXT(ctx); int lis4 = i915->state.Ctx[I915_CTXREG_LIS4] & ~S4_POINT_WIDTH_MASK; @@ -598,7 +598,7 @@ i915PointSize(GLcontext * ctx, GLfloat size) static void -i915PointParameterfv(GLcontext * ctx, GLenum pname, const GLfloat *params) +i915PointParameterfv(struct gl_context * ctx, GLenum pname, const GLfloat *params) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -620,7 +620,7 @@ i915PointParameterfv(GLcontext * ctx, GLenum pname, const GLfloat *params) */ static void -i915ColorMask(GLcontext * ctx, +i915ColorMask(struct gl_context * ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -645,7 +645,7 @@ i915ColorMask(GLcontext * ctx, } static void -update_specular(GLcontext * ctx) +update_specular(struct gl_context * ctx) { /* A hack to trigger the rebuild of the fragment program. */ @@ -653,7 +653,7 @@ update_specular(GLcontext * ctx) } static void -i915LightModelfv(GLcontext * ctx, GLenum pname, const GLfloat * param) +i915LightModelfv(struct gl_context * ctx, GLenum pname, const GLfloat * param) { DBG("%s\n", __FUNCTION__); @@ -663,7 +663,7 @@ i915LightModelfv(GLcontext * ctx, GLenum pname, const GLfloat * param) } static void -i915ShadeModel(GLcontext * ctx, GLenum mode) +i915ShadeModel(struct gl_context * ctx, GLenum mode) { struct i915_context *i915 = I915_CONTEXT(ctx); I915_STATECHANGE(i915, I915_UPLOAD_CTX); @@ -684,7 +684,7 @@ i915ShadeModel(GLcontext * ctx, GLenum mode) * Fog */ void -i915_update_fog(GLcontext * ctx) +i915_update_fog(struct gl_context * ctx) { struct i915_context *i915 = I915_CONTEXT(ctx); GLenum mode; @@ -780,7 +780,7 @@ i915_update_fog(GLcontext * ctx) } static void -i915Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) +i915Fogfv(struct gl_context * ctx, GLenum pname, const GLfloat * param) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -820,7 +820,7 @@ i915Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) } static void -i915Hint(GLcontext * ctx, GLenum target, GLenum state) +i915Hint(struct gl_context * ctx, GLenum target, GLenum state) { switch (target) { case GL_FOG_HINT: @@ -834,7 +834,7 @@ i915Hint(GLcontext * ctx, GLenum target, GLenum state) */ static void -i915Enable(GLcontext * ctx, GLenum cap, GLboolean state) +i915Enable(struct gl_context * ctx, GLenum cap, GLboolean state) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -1093,7 +1093,7 @@ i915_init_packets(struct i915_context *i915) } void -i915_update_provoking_vertex(GLcontext * ctx) +i915_update_provoking_vertex(struct gl_context * ctx) { struct i915_context *i915 = I915_CONTEXT(ctx); @@ -1150,7 +1150,7 @@ i915InitStateFunctions(struct dd_function_table *functions) void i915InitState(struct i915_context *i915) { - GLcontext *ctx = &i915->intel.ctx; + struct gl_context *ctx = &i915->intel.ctx; i915_init_packets(i915); diff --git a/src/mesa/drivers/dri/i915/i915_texstate.c b/src/mesa/drivers/dri/i915/i915_texstate.c index e0e7f3bc3d..c724a21496 100644 --- a/src/mesa/drivers/dri/i915/i915_texstate.c +++ b/src/mesa/drivers/dri/i915/i915_texstate.c @@ -130,7 +130,7 @@ translate_wrap_mode(GLenum wrap) static GLboolean i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; struct i915_context *i915 = i915_context(ctx); struct gl_texture_unit *tUnit = &ctx->Texture.Unit[unit]; struct gl_texture_object *tObj = tUnit->_Current; diff --git a/src/mesa/drivers/dri/i915/i915_vtbl.c b/src/mesa/drivers/dri/i915/i915_vtbl.c index d7828a296a..59dfe08563 100644 --- a/src/mesa/drivers/dri/i915/i915_vtbl.c +++ b/src/mesa/drivers/dri/i915/i915_vtbl.c @@ -530,7 +530,7 @@ i915_set_draw_region(struct intel_context *intel, GLuint num_regions) { struct i915_context *i915 = i915_context(&intel->ctx); - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0]; struct intel_renderbuffer *irb = intel_renderbuffer(rb); GLuint value; @@ -669,6 +669,7 @@ i915_assert_not_dirty( struct intel_context *intel ) struct i915_context *i915 = i915_context(&intel->ctx); GLuint dirty = get_dirty(&i915->state); assert(!dirty); + (void) dirty; } void diff --git a/src/mesa/drivers/dri/i915/intel_render.c b/src/mesa/drivers/dri/i915/intel_render.c index dc6bc9a71c..0d8ab4b507 100644 --- a/src/mesa/drivers/dri/i915/intel_render.c +++ b/src/mesa/drivers/dri/i915/intel_render.c @@ -216,7 +216,7 @@ choose_render(struct intel_context *intel, struct vertex_buffer *VB) static GLboolean -intel_run_render(GLcontext * ctx, struct tnl_pipeline_stage *stage) +intel_run_render(struct gl_context * ctx, struct tnl_pipeline_stage *stage) { struct intel_context *intel = intel_context(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/i915/intel_tris.c b/src/mesa/drivers/dri/i915/intel_tris.c index ede111b87a..b9a8aeb12f 100644 --- a/src/mesa/drivers/dri/i915/intel_tris.c +++ b/src/mesa/drivers/dri/i915/intel_tris.c @@ -55,8 +55,8 @@ #include "i830_context.h" #include "i830_reg.h" -static void intelRenderPrimitive(GLcontext * ctx, GLenum prim); -static void intelRasterPrimitive(GLcontext * ctx, GLenum rprim, +static void intelRenderPrimitive(struct gl_context * ctx, GLenum prim); +static void intelRasterPrimitive(struct gl_context * ctx, GLenum rprim, GLuint hwprim); static void @@ -427,7 +427,7 @@ intel_draw_point(struct intel_context *intel, intelVertexPtr v0) static void intel_atten_point(struct intel_context *intel, intelVertexPtr v0) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; GLfloat psz[4], col[4], restore_psz, restore_alpha; _tnl_get_attr(ctx, v0, _TNL_ATTRIB_POINTSIZE, psz); @@ -784,7 +784,7 @@ static void intel_fallback_tri(struct intel_context *intel, intelVertex * v0, intelVertex * v1, intelVertex * v2) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; SWvertex v[3]; if (0) @@ -805,7 +805,7 @@ static void intel_fallback_line(struct intel_context *intel, intelVertex * v0, intelVertex * v1) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; SWvertex v[2]; if (0) @@ -824,7 +824,7 @@ static void intel_fallback_point(struct intel_context *intel, intelVertex * v0) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; SWvertex v[1]; if (0) @@ -877,7 +877,7 @@ intel_fallback_point(struct intel_context *intel, static void -intelRenderClippedPoly(GLcontext * ctx, const GLuint * elts, GLuint n) +intelRenderClippedPoly(struct gl_context * ctx, const GLuint * elts, GLuint n) { struct intel_context *intel = intel_context(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -901,7 +901,7 @@ intelRenderClippedPoly(GLcontext * ctx, const GLuint * elts, GLuint n) } static void -intelRenderClippedLine(GLcontext * ctx, GLuint ii, GLuint jj) +intelRenderClippedLine(struct gl_context * ctx, GLuint ii, GLuint jj) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -909,7 +909,7 @@ intelRenderClippedLine(GLcontext * ctx, GLuint ii, GLuint jj) } static void -intelFastRenderClippedPoly(GLcontext * ctx, const GLuint * elts, GLuint n) +intelFastRenderClippedPoly(struct gl_context * ctx, const GLuint * elts, GLuint n) { struct intel_context *intel = intel_context(ctx); const GLuint vertsize = intel->vertex_size; @@ -936,7 +936,7 @@ intelFastRenderClippedPoly(GLcontext * ctx, const GLuint * elts, GLuint n) #define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE | DD_TRI_OFFSET | DD_TRI_UNFILLED) void -intelChooseRenderState(GLcontext * ctx) +intelChooseRenderState(struct gl_context * ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct intel_context *intel = intel_context(ctx); @@ -1049,7 +1049,7 @@ static const GLenum reduced_prim[GL_POLYGON + 1] = { static void -intelRunPipeline(GLcontext * ctx) +intelRunPipeline(struct gl_context * ctx) { struct intel_context *intel = intel_context(ctx); @@ -1079,7 +1079,7 @@ intelRunPipeline(GLcontext * ctx) } static void -intelRenderStart(GLcontext * ctx) +intelRenderStart(struct gl_context * ctx) { struct intel_context *intel = intel_context(ctx); @@ -1089,7 +1089,7 @@ intelRenderStart(GLcontext * ctx) } static void -intelRenderFinish(GLcontext * ctx) +intelRenderFinish(struct gl_context * ctx) { struct intel_context *intel = intel_context(ctx); @@ -1106,7 +1106,7 @@ intelRenderFinish(GLcontext * ctx) * primitive. */ static void -intelRasterPrimitive(GLcontext * ctx, GLenum rprim, GLuint hwprim) +intelRasterPrimitive(struct gl_context * ctx, GLenum rprim, GLuint hwprim) { struct intel_context *intel = intel_context(ctx); @@ -1129,7 +1129,7 @@ intelRasterPrimitive(GLcontext * ctx, GLenum rprim, GLuint hwprim) /* */ static void -intelRenderPrimitive(GLcontext * ctx, GLenum prim) +intelRenderPrimitive(struct gl_context * ctx, GLenum prim) { struct intel_context *intel = intel_context(ctx); @@ -1201,7 +1201,7 @@ getFallbackString(GLuint bit) void intelFallback(struct intel_context *intel, GLbitfield bit, GLboolean mode) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; TNLcontext *tnl = TNL_CONTEXT(ctx); const GLbitfield oldfallback = intel->Fallback; @@ -1253,7 +1253,7 @@ union fi void -intelInitTriFuncs(GLcontext * ctx) +intelInitTriFuncs(struct gl_context * ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); static int firsttime = 1; diff --git a/src/mesa/drivers/dri/i915/intel_tris.h b/src/mesa/drivers/dri/i915/intel_tris.h index 55b60a47f9..ad84de828b 100644 --- a/src/mesa/drivers/dri/i915/intel_tris.h +++ b/src/mesa/drivers/dri/i915/intel_tris.h @@ -42,9 +42,9 @@ _NEW_PROGRAM | \ _NEW_POLYGONSTIPPLE) -extern void intelInitTriFuncs(GLcontext * ctx); +extern void intelInitTriFuncs(struct gl_context * ctx); -extern void intelChooseRenderState(GLcontext * ctx); +extern void intelChooseRenderState(struct gl_context * ctx); void intel_set_prim(struct intel_context *intel, uint32_t prim); GLuint *intel_get_prim_space(struct intel_context *intel, unsigned int count); diff --git a/src/mesa/drivers/dri/i965/Makefile b/src/mesa/drivers/dri/i965/Makefile index bea48e1313..917d39061d 100644 --- a/src/mesa/drivers/dri/i965/Makefile +++ b/src/mesa/drivers/dri/i965/Makefile @@ -105,6 +105,7 @@ C_SOURCES = \ $(DRIVER_SOURCES) CXX_SOURCES = \ + brw_cubemap_normalize.cpp \ brw_fs.cpp \ brw_fs_channel_expressions.cpp \ brw_fs_vector_splitting.cpp diff --git a/src/mesa/drivers/dri/i965/brw_cc.c b/src/mesa/drivers/dri/i965/brw_cc.c index 8430ee0cfa..00418760da 100644 --- a/src/mesa/drivers/dri/i965/brw_cc.c +++ b/src/mesa/drivers/dri/i965/brw_cc.c @@ -39,7 +39,7 @@ void brw_update_cc_vp(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_cc_viewport ccv; memset(&ccv, 0, sizeof(ccv)); @@ -91,7 +91,7 @@ static void prepare_cc_unit(struct brw_context *brw) static void upload_cc_unit(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_cc_unit_state cc; void *map; diff --git a/src/mesa/drivers/dri/i965/brw_clip.c b/src/mesa/drivers/dri/i965/brw_clip.c index a1e9dae915..15e60bf3ce 100644 --- a/src/mesa/drivers/dri/i965/brw_clip.c +++ b/src/mesa/drivers/dri/i965/brw_clip.c @@ -159,7 +159,7 @@ static void compile_clip_prog( struct brw_context *brw, static void upload_clip_prog(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; struct brw_clip_prog_key key; memset(&key, 0, sizeof(key)); diff --git a/src/mesa/drivers/dri/i965/brw_clip_state.c b/src/mesa/drivers/dri/i965/brw_clip_state.c index 856d8f0c6c..885167da90 100644 --- a/src/mesa/drivers/dri/i965/brw_clip_state.c +++ b/src/mesa/drivers/dri/i965/brw_clip_state.c @@ -49,7 +49,7 @@ struct brw_clip_unit_key { static void clip_unit_populate_key(struct brw_context *brw, struct brw_clip_unit_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; memset(key, 0, sizeof(*key)); /* CACHE_NEW_CLIP_PROG */ diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 4b44e2adec..3c4ae8a7a4 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -57,14 +57,14 @@ static void brwInitDriverFunctions( struct dd_function_table *functions ) } GLboolean brwCreateContext( int api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate) { struct dd_function_table functions; struct brw_context *brw = (struct brw_context *) CALLOC_STRUCT(brw_context); struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; unsigned i; if (!brw) { @@ -122,6 +122,9 @@ GLboolean brwCreateContext( int api, (i == MESA_SHADER_FRAGMENT); ctx->ShaderCompilerOptions[i].EmitNoIndirectTemp = (i == MESA_SHADER_FRAGMENT); + + if (intel->gen == 6) + ctx->ShaderCompilerOptions[i].EmitNoIfs = GL_TRUE; } ctx->Const.VertexProgram.MaxNativeInstructions = (16 * 1024); diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 703a7de78d..f205c07a72 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -719,7 +719,7 @@ void brwInitVtbl( struct brw_context *brw ); * brw_context.c */ GLboolean brwCreateContext( int api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate); @@ -763,15 +763,15 @@ void brw_upload_cs_urb_state(struct brw_context *brw); int brw_disasm (FILE *file, struct brw_instruction *inst, int gen); /* brw_state.c */ -void brw_enable(GLcontext * ctx, GLenum cap, GLboolean state); -void brw_depth_range(GLcontext *ctx, GLclampd nearval, GLclampd farval); +void brw_enable(struct gl_context * ctx, GLenum cap, GLboolean state); +void brw_depth_range(struct gl_context *ctx, GLclampd nearval, GLclampd farval); /*====================================================================== * Inline conversion functions. These are better-typed than the * macros used previously: */ static INLINE struct brw_context * -brw_context( GLcontext *ctx ) +brw_context( struct gl_context *ctx ) { return (struct brw_context *)ctx; } @@ -800,5 +800,7 @@ brw_fragment_program_const(const struct gl_fragment_program *p) return (const struct brw_fragment_program *) p; } +GLboolean brw_do_cubemap_normalize(struct exec_list *instructions); + #endif diff --git a/src/mesa/drivers/dri/i965/brw_cubemap_normalize.cpp b/src/mesa/drivers/dri/i965/brw_cubemap_normalize.cpp new file mode 100644 index 0000000000..35bea68121 --- /dev/null +++ b/src/mesa/drivers/dri/i965/brw_cubemap_normalize.cpp @@ -0,0 +1,110 @@ +/* + * Copyright © 2010 Intel Corporation + * + * 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 (including the next + * paragraph) 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 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/** + * \file brw_cubemap_normalize.cpp + * + * IR lower pass to perform the normalization of the cubemap coordinates to + * have the largest magnitude component be -1.0 or 1.0. + * + * \author Eric Anholt <eric@anholt.net> + */ + +#include "../glsl/glsl_types.h" +#include "../glsl/ir.h" + +class brw_cubemap_normalize_visitor : public ir_hierarchical_visitor { +public: + brw_cubemap_normalize_visitor() + { + progress = false; + } + + ir_visitor_status visit_leave(ir_texture *ir); + + bool progress; +}; + +ir_visitor_status +brw_cubemap_normalize_visitor::visit_leave(ir_texture *ir) +{ + if (ir->sampler->type->sampler_dimensionality != GLSL_SAMPLER_DIM_CUBE) + return visit_continue; + + void *mem_ctx = talloc_parent(ir); + + ir_variable *var = new(mem_ctx) ir_variable(ir->coordinate->type, + "coordinate", ir_var_auto); + base_ir->insert_before(var); + ir_dereference *deref = new(mem_ctx) ir_dereference_variable(var); + ir_assignment *assign = new(mem_ctx) ir_assignment(deref, ir->coordinate, + NULL); + base_ir->insert_before(assign); + + deref = new(mem_ctx) ir_dereference_variable(var); + ir_rvalue *swiz0 = new(mem_ctx) ir_swizzle(deref, 0, 0, 0, 0, 1); + deref = new(mem_ctx) ir_dereference_variable(var); + ir_rvalue *swiz1 = new(mem_ctx) ir_swizzle(deref, 1, 0, 0, 0, 1); + deref = new(mem_ctx) ir_dereference_variable(var); + ir_rvalue *swiz2 = new(mem_ctx) ir_swizzle(deref, 2, 0, 0, 0, 1); + + swiz0 = new(mem_ctx) ir_expression(ir_unop_abs, swiz0->type, swiz0, NULL); + swiz1 = new(mem_ctx) ir_expression(ir_unop_abs, swiz1->type, swiz1, NULL); + swiz2 = new(mem_ctx) ir_expression(ir_unop_abs, swiz2->type, swiz2, NULL); + + ir_expression *expr; + expr = new(mem_ctx) ir_expression(ir_binop_max, + glsl_type::float_type, + swiz0, swiz1); + + expr = new(mem_ctx) ir_expression(ir_binop_max, + glsl_type::float_type, + expr, swiz2); + + expr = new(mem_ctx) ir_expression(ir_unop_rcp, + glsl_type::float_type, + expr, NULL); + + deref = new(mem_ctx) ir_dereference_variable(var); + ir->coordinate = new(mem_ctx) ir_expression(ir_binop_mul, + ir->coordinate->type, + deref, + expr); + + progress = true; + return visit_continue; +} + +extern "C" { + +GLboolean +brw_do_cubemap_normalize(exec_list *instructions) +{ + brw_cubemap_normalize_visitor v; + + visit_list_elements(&v, instructions); + + return v.progress; +} + +} diff --git a/src/mesa/drivers/dri/i965/brw_curbe.c b/src/mesa/drivers/dri/i965/brw_curbe.c index 8196d8ca62..9ce0d8decd 100644 --- a/src/mesa/drivers/dri/i965/brw_curbe.c +++ b/src/mesa/drivers/dri/i965/brw_curbe.c @@ -55,7 +55,7 @@ */ static void calculate_curbe_offsets( struct brw_context *brw ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; /* CACHE_NEW_WM_PROG */ const GLuint nr_fp_regs = (brw->wm.prog_data->nr_params + 15) / 16; @@ -179,7 +179,7 @@ static GLfloat fixed_plane[6][4] = { */ static void prepare_constant_buffer(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; const struct brw_vertex_program *vp = brw_vertex_program_const(brw->vertex_program); const GLuint sz = brw->curbe.total_size; diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h index f9c12e1555..9633c95ff5 100644 --- a/src/mesa/drivers/dri/i965/brw_defines.h +++ b/src/mesa/drivers/dri/i965/brw_defines.h @@ -501,9 +501,26 @@ #define BRW_MASK_ENABLE 0 #define BRW_MASK_DISABLE 1 -/* Sandybridge is WECtrl (Write enable control) */ +/** @{ + * + * Gen6 has replaced "mask enable/disable" with WECtrl, which is + * effectively the same but much simpler to think about. Now, there + * are two contributors ANDed together to whether channels are + * executed: The predication on the instruction, and the channel write + * enable. + */ +/** + * This is the default value. It means that a channel's write enable is set + * if the per-channel IP is pointing at this instruction. + */ #define BRW_WE_NORMAL 0 -#define BRW_WE_KILL_PRED 1 +/** + * This is used like BRW_MASK_DISABLE, and causes all channels to have + * their write enable set. Note that predication still contributes to + * whether the channel actually gets written. + */ +#define BRW_WE_ALL 1 +/** @} */ #define BRW_OPCODE_MOV 1 #define BRW_OPCODE_SEL 2 diff --git a/src/mesa/drivers/dri/i965/brw_disasm.c b/src/mesa/drivers/dri/i965/brw_disasm.c index 90520824f6..12b8f2e467 100644 --- a/src/mesa/drivers/dri/i965/brw_disasm.c +++ b/src/mesa/drivers/dri/i965/brw_disasm.c @@ -165,8 +165,8 @@ char *accwr[2] = { }; char *wectrl[2] = { - [0] = "WEnormal", - [1] = "WEpredicted" + [0] = "WE_normal", + [1] = "WE_all" }; char *exec_size[8] = { @@ -886,13 +886,18 @@ int brw_disasm (FILE *file, struct brw_instruction *inst, int gen) string (file, ")"); } - if (inst->header.opcode == BRW_OPCODE_SEND) + if (inst->header.opcode == BRW_OPCODE_SEND && gen < 6) format (file, " %d", inst->header.destreg__conditionalmod); if (opcode[inst->header.opcode].ndst > 0) { pad (file, 16); err |= dest (file, inst); + } else if (gen >= 6 && (inst->header.opcode == BRW_OPCODE_IF || + inst->header.opcode == BRW_OPCODE_ELSE || + inst->header.opcode == BRW_OPCODE_ENDIF)) { + format (file, " %d", inst->bits1.branch_gen6.jump_count); } + if (opcode[inst->header.opcode].nsrc > 0) { pad (file, 32); err |= src0 (file, inst); diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 16331cc3ac..04bc8cb2db 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -80,7 +80,7 @@ static const GLenum reduced_prim[GL_POLYGON+1] = { static GLuint brw_set_prim(struct brw_context *brw, const struct _mesa_prim *prim) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; GLenum mode = prim->mode; if (INTEL_DEBUG & DEBUG_PRIMS) @@ -201,7 +201,7 @@ static GLboolean check_fallbacks( struct brw_context *brw, const struct _mesa_prim *prim, GLuint nr_prims ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; GLuint i; /* If we don't require strict OpenGL conformance, never @@ -293,7 +293,7 @@ static GLboolean check_fallbacks( struct brw_context *brw, /* May fail if out of video memory for texture or vbo upload, or on * fallback conditions. */ -static GLboolean brw_try_draw_prims( GLcontext *ctx, +static GLboolean brw_try_draw_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -416,7 +416,7 @@ static GLboolean brw_try_draw_prims( GLcontext *ctx, return retval; } -void brw_draw_prims( GLcontext *ctx, +void brw_draw_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -434,7 +434,7 @@ void brw_draw_prims( GLcontext *ctx, /* Decide if we want to rebase. If so we end up recursing once * only into this function. */ - if (min_index != 0) { + if (min_index != 0 && !vbo_any_varyings_in_vbos(arrays)) { vbo_rebase_prims(ctx, arrays, prim, nr_prims, ib, min_index, max_index, @@ -460,7 +460,7 @@ void brw_draw_prims( GLcontext *ctx, void brw_draw_init( struct brw_context *brw ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct vbo_context *vbo = vbo_context(ctx); /* Register our drawing function: diff --git a/src/mesa/drivers/dri/i965/brw_draw.h b/src/mesa/drivers/dri/i965/brw_draw.h index 2a14db217f..1fe417296f 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.h +++ b/src/mesa/drivers/dri/i965/brw_draw.h @@ -28,13 +28,13 @@ #ifndef BRW_DRAW_H #define BRW_DRAW_H -#include "main/mtypes.h" /* for GLcontext... */ +#include "main/mtypes.h" /* for struct gl_context... */ #include "vbo/vbo.h" struct brw_context; -void brw_draw_prims( GLcontext *ctx, +void brw_draw_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prims, GLuint nr_prims, @@ -48,7 +48,7 @@ void brw_draw_destroy( struct brw_context *brw ); /* brw_draw_current.c */ -void brw_init_current_values(GLcontext *ctx, +void brw_init_current_values(struct gl_context *ctx, struct gl_client_array *arrays); #endif diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c index 249e874ab1..c4654360d4 100644 --- a/src/mesa/drivers/dri/i965/brw_draw_upload.c +++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c @@ -313,7 +313,7 @@ copy_array_to_vbo_array( struct brw_context *brw, static void brw_prepare_vertices(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct intel_context *intel = intel_context(ctx); GLbitfield vs_inputs = brw->vs.prog_data->inputs_read; GLuint i; @@ -383,7 +383,7 @@ static void brw_prepare_vertices(struct brw_context *brw) */ assert(input->offset < input->bo->size); } else { - input->count = input->glarray->StrideB ? max_index + 1 - min_index : 1; + input->count = input->glarray->StrideB ? max_index + 1 : 1; if (input->bo != NULL) { /* Already-uploaded vertex data is present from a previous * prepare_vertices, but we had to re-validate state due to @@ -414,15 +414,6 @@ static void brw_prepare_vertices(struct brw_context *brw) } upload[nr_uploads++] = input; - - /* We rebase drawing to start at element zero only when - * varyings are not in vbos, which means we can end up - * uploading non-varying arrays (stride != 0) when min_index - * is zero. This doesn't matter as the amount to upload is - * the same for these arrays whether the draw call is rebased - * or not - we just have to upload the one element. - */ - assert(min_index == 0 || input->glarray->StrideB == 0); } } @@ -460,7 +451,7 @@ static void brw_prepare_vertices(struct brw_context *brw) static void brw_emit_vertices(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct intel_context *intel = intel_context(ctx); GLuint i; @@ -592,7 +583,7 @@ const struct brw_tracked_state brw_vertices = { static void brw_prepare_indices(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct intel_context *intel = &brw->intel; const struct _mesa_index_buffer *index_buffer = brw->ib.ib; GLuint ib_size; diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h index c0deb238c2..8ffa7c760a 100644 --- a/src/mesa/drivers/dri/i965/brw_eu.h +++ b/src/mesa/drivers/dri/i965/brw_eu.h @@ -789,6 +789,10 @@ struct brw_instruction *brw_##OP(struct brw_compile *p, \ struct brw_reg src0, \ struct brw_reg src1); +#define ROUND(OP) \ +void brw_##OP(struct brw_compile *p, struct brw_reg dest, struct brw_reg src0); + + ALU1(MOV) ALU2(SEL) ALU1(NOT) @@ -805,7 +809,6 @@ ALU2(ADD) ALU2(MUL) ALU1(FRC) ALU1(RNDD) -ALU1(RNDZ) ALU2(MAC) ALU2(MACH) ALU1(LZD) @@ -816,9 +819,12 @@ ALU2(DP2) ALU2(LINE) ALU2(PLN) +ROUND(RNDZ) +ROUND(RNDE) + #undef ALU1 #undef ALU2 - +#undef ROUND /* Helpers for SEND instruction: @@ -921,6 +927,8 @@ void brw_dp_WRITE_16( struct brw_compile *p, */ struct brw_instruction *brw_IF(struct brw_compile *p, GLuint execute_size); +struct brw_instruction *brw_IF_gen6(struct brw_compile *p, uint32_t conditional, + struct brw_reg src0, struct brw_reg src1); struct brw_instruction *brw_ELSE(struct brw_compile *p, struct brw_instruction *if_insn); diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c index 09cc8b2bd5..399b99c960 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c @@ -448,6 +448,7 @@ static void brw_set_dp_write_message( struct brw_context *brw, GLuint msg_control, GLuint msg_type, GLuint msg_length, + GLboolean header_present, GLuint pixel_scoreboard_clear, GLuint response_length, GLuint end_of_thread, @@ -462,7 +463,7 @@ static void brw_set_dp_write_message( struct brw_context *brw, insn->bits3.dp_render_cache.pixel_scoreboard_clear = pixel_scoreboard_clear; insn->bits3.dp_render_cache.msg_type = msg_type; insn->bits3.dp_render_cache.send_commit_msg = send_commit_msg; - insn->bits3.dp_render_cache.header_present = 0; /* XXX */ + insn->bits3.dp_render_cache.header_present = header_present; insn->bits3.dp_render_cache.response_length = response_length; insn->bits3.dp_render_cache.msg_length = msg_length; insn->bits3.dp_render_cache.end_of_thread = end_of_thread; @@ -476,7 +477,7 @@ static void brw_set_dp_write_message( struct brw_context *brw, insn->bits3.dp_write_gen5.pixel_scoreboard_clear = pixel_scoreboard_clear; insn->bits3.dp_write_gen5.msg_type = msg_type; insn->bits3.dp_write_gen5.send_commit_msg = send_commit_msg; - insn->bits3.dp_write_gen5.header_present = 1; + insn->bits3.dp_write_gen5.header_present = header_present; insn->bits3.dp_write_gen5.response_length = response_length; insn->bits3.dp_write_gen5.msg_length = msg_length; insn->bits3.dp_write_gen5.end_of_thread = end_of_thread; @@ -653,6 +654,26 @@ struct brw_instruction *brw_##OP(struct brw_compile *p, \ return brw_alu2(p, BRW_OPCODE_##OP, dest, src0, src1); \ } +/* Rounding operations (other than RNDD) require two instructions - the first + * stores a rounded value (possibly the wrong way) in the dest register, but + * also sets a per-channel "increment bit" in the flag register. A predicated + * add of 1.0 fixes dest to contain the desired result. + */ +#define ROUND(OP) \ +void brw_##OP(struct brw_compile *p, \ + struct brw_reg dest, \ + struct brw_reg src) \ +{ \ + struct brw_instruction *rnd, *add; \ + rnd = next_insn(p, BRW_OPCODE_##OP); \ + brw_set_dest(rnd, dest); \ + brw_set_src0(rnd, src); \ + rnd->header.destreg__conditionalmod = 0x7; /* turn on round-increments */ \ + \ + add = brw_ADD(p, dest, dest, brw_imm_f(1.0f)); \ + add->header.predicate_control = BRW_PREDICATE_NORMAL; \ +} + ALU1(MOV) ALU2(SEL) @@ -667,7 +688,6 @@ ALU2(RSL) ALU2(ASR) ALU1(FRC) ALU1(RNDD) -ALU1(RNDZ) ALU2(MAC) ALU2(MACH) ALU1(LZD) @@ -678,6 +698,11 @@ ALU2(DP2) ALU2(LINE) ALU2(PLN) + +ROUND(RNDZ) +ROUND(RNDE) + + struct brw_instruction *brw_ADD(struct brw_compile *p, struct brw_reg dest, struct brw_reg src0, @@ -786,6 +811,7 @@ struct brw_instruction *brw_JMPI(struct brw_compile *p, */ struct brw_instruction *brw_IF(struct brw_compile *p, GLuint execute_size) { + struct intel_context *intel = &p->brw->intel; struct brw_instruction *insn; if (p->single_program_flow) { @@ -799,9 +825,16 @@ struct brw_instruction *brw_IF(struct brw_compile *p, GLuint execute_size) /* Override the defaults for this instruction: */ - brw_set_dest(insn, brw_ip_reg()); - brw_set_src0(insn, brw_ip_reg()); - brw_set_src1(insn, brw_imm_d(0x0)); + if (intel->gen < 6) { + brw_set_dest(insn, brw_ip_reg()); + brw_set_src0(insn, brw_ip_reg()); + brw_set_src1(insn, brw_imm_d(0x0)); + } else { + brw_set_dest(insn, brw_imm_w(0)); + insn->bits1.branch_gen6.jump_count = 0; + brw_set_src0(insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D)); + brw_set_src1(insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D)); + } insn->header.execution_size = execute_size; insn->header.compression_control = BRW_COMPRESSION_NONE; @@ -815,6 +848,29 @@ struct brw_instruction *brw_IF(struct brw_compile *p, GLuint execute_size) return insn; } +struct brw_instruction * +brw_IF_gen6(struct brw_compile *p, uint32_t conditional, + struct brw_reg src0, struct brw_reg src1) +{ + struct brw_instruction *insn; + + insn = next_insn(p, BRW_OPCODE_IF); + + brw_set_dest(insn, brw_imm_w(0)); + insn->header.execution_size = BRW_EXECUTE_8; + insn->bits1.branch_gen6.jump_count = 0; + brw_set_src0(insn, src0); + brw_set_src1(insn, src1); + + assert(insn->header.compression_control == BRW_COMPRESSION_NONE); + assert(insn->header.predicate_control == BRW_PREDICATE_NONE); + insn->header.destreg__conditionalmod = conditional; + + if (!p->single_program_flow) + insn->header.thread_control = BRW_THREAD_SWITCH; + + return insn; +} struct brw_instruction *brw_ELSE(struct brw_compile *p, struct brw_instruction *if_insn) @@ -834,9 +890,16 @@ struct brw_instruction *brw_ELSE(struct brw_compile *p, insn = next_insn(p, BRW_OPCODE_ELSE); } - brw_set_dest(insn, brw_ip_reg()); - brw_set_src0(insn, brw_ip_reg()); - brw_set_src1(insn, brw_imm_d(0x0)); + if (intel->gen < 6) { + brw_set_dest(insn, brw_ip_reg()); + brw_set_src0(insn, brw_ip_reg()); + brw_set_src1(insn, brw_imm_d(0x0)); + } else { + brw_set_dest(insn, brw_imm_w(0)); + insn->bits1.branch_gen6.jump_count = 0; + brw_set_src0(insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D)); + brw_set_src1(insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D)); + } insn->header.compression_control = BRW_COMPRESSION_NONE; insn->header.execution_size = if_insn->header.execution_size; @@ -853,9 +916,13 @@ struct brw_instruction *brw_ELSE(struct brw_compile *p, } else { assert(if_insn->header.opcode == BRW_OPCODE_IF); - if_insn->bits3.if_else.jump_count = br * (insn - if_insn); - if_insn->bits3.if_else.pop_count = 0; - if_insn->bits3.if_else.pad0 = 0; + if (intel->gen < 6) { + if_insn->bits3.if_else.jump_count = br * (insn - if_insn); + if_insn->bits3.if_else.pop_count = 0; + if_insn->bits3.if_else.pad0 = 0; + } else { + if_insn->bits1.branch_gen6.jump_count = br * (insn - if_insn + 1); + } } return insn; @@ -883,40 +950,66 @@ void brw_ENDIF(struct brw_compile *p, } else { struct brw_instruction *insn = next_insn(p, BRW_OPCODE_ENDIF); - brw_set_dest(insn, retype(brw_vec4_grf(0,0), BRW_REGISTER_TYPE_UD)); - brw_set_src0(insn, retype(brw_vec4_grf(0,0), BRW_REGISTER_TYPE_UD)); - brw_set_src1(insn, brw_imm_d(0x0)); + if (intel->gen < 6) { + brw_set_dest(insn, retype(brw_vec4_grf(0,0), BRW_REGISTER_TYPE_UD)); + brw_set_src0(insn, retype(brw_vec4_grf(0,0), BRW_REGISTER_TYPE_UD)); + brw_set_src1(insn, brw_imm_d(0x0)); + } else { + brw_set_dest(insn, retype(brw_vec4_grf(0,0), BRW_REGISTER_TYPE_W)); + brw_set_src0(insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D)); + brw_set_src1(insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D)); + } insn->header.compression_control = BRW_COMPRESSION_NONE; insn->header.execution_size = patch_insn->header.execution_size; insn->header.mask_control = BRW_MASK_ENABLE; insn->header.thread_control = BRW_THREAD_SWITCH; - assert(patch_insn->bits3.if_else.jump_count == 0); + if (intel->gen < 6) + assert(patch_insn->bits3.if_else.jump_count == 0); + else + assert(patch_insn->bits1.branch_gen6.jump_count == 0); /* Patch the if or else instructions to point at this or the next * instruction respectively. */ if (patch_insn->header.opcode == BRW_OPCODE_IF) { - /* Automagically turn it into an IFF: - */ - patch_insn->header.opcode = BRW_OPCODE_IFF; - patch_insn->bits3.if_else.jump_count = br * (insn - patch_insn + 1); - patch_insn->bits3.if_else.pop_count = 0; - patch_insn->bits3.if_else.pad0 = 0; - } else if (patch_insn->header.opcode == BRW_OPCODE_ELSE) { - patch_insn->bits3.if_else.jump_count = br * (insn - patch_insn + 1); - patch_insn->bits3.if_else.pop_count = 1; - patch_insn->bits3.if_else.pad0 = 0; + if (intel->gen < 6) { + /* Turn it into an IFF, which means no mask stack operations for + * all-false and jumping past the ENDIF. + */ + patch_insn->header.opcode = BRW_OPCODE_IFF; + patch_insn->bits3.if_else.jump_count = br * (insn - patch_insn + 1); + patch_insn->bits3.if_else.pop_count = 0; + patch_insn->bits3.if_else.pad0 = 0; + } else { + /* As of gen6, there is no IFF and IF must point to the ENDIF. */ + patch_insn->bits1.branch_gen6.jump_count = br * (insn - patch_insn); + } } else { - assert(0); + assert(patch_insn->header.opcode == BRW_OPCODE_ELSE); + if (intel->gen < 6) { + /* BRW_OPCODE_ELSE pre-gen6 should point just past the + * matching ENDIF. + */ + patch_insn->bits3.if_else.jump_count = br * (insn - patch_insn + 1); + patch_insn->bits3.if_else.pop_count = 1; + patch_insn->bits3.if_else.pad0 = 0; + } else { + /* BRW_OPCODE_ELSE on gen6 should point to the matching ENDIF. */ + patch_insn->bits1.branch_gen6.jump_count = br * (insn - patch_insn); + } } /* Also pop item off the stack in the endif instruction: */ - insn->bits3.if_else.jump_count = 0; - insn->bits3.if_else.pop_count = 1; - insn->bits3.if_else.pad0 = 0; + if (intel->gen < 6) { + insn->bits3.if_else.jump_count = 0; + insn->bits3.if_else.pop_count = 1; + insn->bits3.if_else.pad0 = 0; + } else { + insn->bits1.branch_gen6.jump_count = 2; + } } } @@ -1106,6 +1199,17 @@ void brw_math( struct brw_compile *p, if (intel->gen >= 6) { struct brw_instruction *insn = next_insn(p, BRW_OPCODE_MATH); + assert(dest.file == BRW_GENERAL_REGISTER_FILE); + assert(src.file == BRW_GENERAL_REGISTER_FILE); + + assert(dest.hstride == BRW_HORIZONTAL_STRIDE_1); + assert(src.hstride == BRW_HORIZONTAL_STRIDE_1); + + if (function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT && + function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER) { + assert(src.type == BRW_REGISTER_TYPE_F); + } + /* Math is the same ISA format as other opcodes, except that CondModifier * becomes FC[3:0] and ThreadCtrl becomes FC[5:4]. */ @@ -1149,6 +1253,22 @@ void brw_math2(struct brw_compile *p, struct brw_instruction *insn = next_insn(p, BRW_OPCODE_MATH); assert(intel->gen >= 6); + (void) intel; + + + assert(dest.file == BRW_GENERAL_REGISTER_FILE); + assert(src0.file == BRW_GENERAL_REGISTER_FILE); + assert(src1.file == BRW_GENERAL_REGISTER_FILE); + + assert(dest.hstride == BRW_HORIZONTAL_STRIDE_1); + assert(src0.hstride == BRW_HORIZONTAL_STRIDE_1); + assert(src1.hstride == BRW_HORIZONTAL_STRIDE_1); + + if (function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT && + function != BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER) { + assert(src0.type == BRW_REGISTER_TYPE_F); + assert(src1.type == BRW_REGISTER_TYPE_F); + } /* Math is the same ISA format as other opcodes, except that CondModifier * becomes FC[3:0] and ThreadCtrl becomes FC[5:4]. @@ -1293,6 +1413,7 @@ void brw_dp_WRITE_16( struct brw_compile *p, BRW_DATAPORT_OWORD_BLOCK_4_OWORDS, /* msg_control */ BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE, /* msg_type */ msg_length, + GL_TRUE, /* header_present */ 0, /* pixel scoreboard */ send_commit_msg, /* response_length */ 0, /* eot */ @@ -1530,12 +1651,16 @@ void brw_fb_WRITE(struct brw_compile *p, struct intel_context *intel = &p->brw->intel; struct brw_instruction *insn; GLuint msg_control, msg_type; + GLboolean header_present = GL_TRUE; insn = next_insn(p, BRW_OPCODE_SEND); insn->header.predicate_control = 0; /* XXX */ insn->header.compression_control = BRW_COMPRESSION_NONE; if (intel->gen >= 6) { + if (msg_length == 4) + header_present = GL_FALSE; + /* headerless version, just submit color payload */ src0 = brw_message_reg(msg_reg_nr); @@ -1559,6 +1684,7 @@ void brw_fb_WRITE(struct brw_compile *p, msg_control, msg_type, msg_length, + header_present, 1, /* pixel scoreboard */ response_length, eot, @@ -1774,7 +1900,8 @@ void brw_ff_sync(struct brw_compile *p, if (intel->gen >= 6) { brw_push_insn_state(p); brw_set_mask_control( p, BRW_MASK_DISABLE ); - brw_MOV(p, brw_message_reg(msg_reg_nr), src0); + brw_MOV(p, retype(brw_message_reg(msg_reg_nr), BRW_REGISTER_TYPE_UD), + retype(src0, BRW_REGISTER_TYPE_UD)); brw_pop_insn_state(p); src0 = brw_message_reg(msg_reg_nr); } diff --git a/src/mesa/drivers/dri/i965/brw_fallback.c b/src/mesa/drivers/dri/i965/brw_fallback.c index ba401c215c..6796fb208d 100644 --- a/src/mesa/drivers/dri/i965/brw_fallback.c +++ b/src/mesa/drivers/dri/i965/brw_fallback.c @@ -43,7 +43,7 @@ static GLboolean do_check_fallback(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; GLuint i; if (brw->intel.no_rast) { diff --git a/src/mesa/drivers/dri/i965/brw_fallback.h b/src/mesa/drivers/dri/i965/brw_fallback.h index 50dcdacd17..13b18b52e6 100644 --- a/src/mesa/drivers/dri/i965/brw_fallback.h +++ b/src/mesa/drivers/dri/i965/brw_fallback.h @@ -28,15 +28,15 @@ #ifndef BRW_FALLBACK_H #define BRW_FALLBACK_H -#include "main/mtypes.h" /* for GLcontext... */ +#include "main/mtypes.h" /* for struct gl_context... */ struct brw_context; struct vbo_prim; -void brw_fallback( GLcontext *ctx ); -void brw_unfallback( GLcontext *ctx ); +void brw_fallback( struct gl_context *ctx ); +void brw_unfallback( struct gl_context *ctx ); -void brw_loopback_vertex_list( GLcontext *ctx, +void brw_loopback_vertex_list( struct gl_context *ctx, const GLfloat *buffer, const GLubyte *attrsz, const struct vbo_prim *prim, diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 4a63fc61aa..1a5808f44e 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -31,52 +31,27 @@ extern "C" { #include "main/macros.h" #include "main/shaderobj.h" +#include "main/uniforms.h" #include "program/prog_parameter.h" #include "program/prog_print.h" #include "program/prog_optimize.h" +#include "program/register_allocate.h" +#include "program/sampler.h" #include "program/hash_table.h" #include "brw_context.h" #include "brw_eu.h" #include "brw_wm.h" #include "talloc.h" } +#include "brw_fs.h" #include "../glsl/glsl_types.h" #include "../glsl/ir_optimization.h" #include "../glsl/ir_print_visitor.h" -enum register_file { - ARF = BRW_ARCHITECTURE_REGISTER_FILE, - GRF = BRW_GENERAL_REGISTER_FILE, - MRF = BRW_MESSAGE_REGISTER_FILE, - IMM = BRW_IMMEDIATE_VALUE, - FIXED_HW_REG, /* a struct brw_reg */ - UNIFORM, /* prog_data->params[hw_reg] */ - BAD_FILE -}; - -enum fs_opcodes { - FS_OPCODE_FB_WRITE = 256, - FS_OPCODE_RCP, - FS_OPCODE_RSQ, - FS_OPCODE_SQRT, - FS_OPCODE_EXP2, - FS_OPCODE_LOG2, - FS_OPCODE_POW, - FS_OPCODE_SIN, - FS_OPCODE_COS, - FS_OPCODE_DDX, - FS_OPCODE_DDY, - FS_OPCODE_LINTERP, - FS_OPCODE_TEX, - FS_OPCODE_TXB, - FS_OPCODE_TXL, - FS_OPCODE_DISCARD, -}; - -static int using_new_fs = -1; +static struct brw_reg brw_reg_from_fs_reg(class fs_reg *reg); struct gl_shader * -brw_new_shader(GLcontext *ctx, GLuint name, GLuint type) +brw_new_shader(struct gl_context *ctx, GLuint name, GLuint type) { struct brw_shader *shader; @@ -91,7 +66,7 @@ brw_new_shader(GLcontext *ctx, GLuint name, GLuint type) } struct gl_shader_program * -brw_new_shader_program(GLcontext *ctx, GLuint name) +brw_new_shader_program(struct gl_context *ctx, GLuint name) { struct brw_shader_program *prog; prog = talloc_zero(NULL, struct brw_shader_program); @@ -103,7 +78,7 @@ brw_new_shader_program(GLcontext *ctx, GLuint name) } GLboolean -brw_compile_shader(GLcontext *ctx, struct gl_shader *shader) +brw_compile_shader(struct gl_context *ctx, struct gl_shader *shader) { if (!_mesa_ir_compile_shader(ctx, shader)) return GL_FALSE; @@ -112,58 +87,60 @@ brw_compile_shader(GLcontext *ctx, struct gl_shader *shader) } GLboolean -brw_link_shader(GLcontext *ctx, struct gl_shader_program *prog) +brw_link_shader(struct gl_context *ctx, struct gl_shader_program *prog) { - if (using_new_fs == -1) - using_new_fs = getenv("INTEL_NEW_FS") != NULL; - - for (unsigned i = 0; i < prog->_NumLinkedShaders; i++) { - struct brw_shader *shader = (struct brw_shader *)prog->_LinkedShaders[i]; - - if (using_new_fs && shader->base.Type == GL_FRAGMENT_SHADER) { - void *mem_ctx = talloc_new(NULL); - bool progress; - - if (shader->ir) - talloc_free(shader->ir); - shader->ir = new(shader) exec_list; - clone_ir_list(mem_ctx, shader->ir, shader->base.ir); - - do_mat_op_to_vec(shader->ir); - do_mod_to_fract(shader->ir); - do_div_to_mul_rcp(shader->ir); - do_sub_to_add_neg(shader->ir); - do_explog_to_explog2(shader->ir); - - do { - progress = false; - - brw_do_channel_expressions(shader->ir); - brw_do_vector_splitting(shader->ir); - - progress = do_lower_jumps(shader->ir, true, true, - true, /* main return */ - false, /* continue */ - false /* loops */ - ) || progress; - - progress = do_common_optimization(shader->ir, true, 32) || progress; - - progress = lower_noise(shader->ir) || progress; - progress = - lower_variable_index_to_cond_assign(shader->ir, - GL_TRUE, /* input */ - GL_TRUE, /* output */ - GL_TRUE, /* temp */ - GL_TRUE /* uniform */ - ) || progress; - } while (progress); + struct intel_context *intel = intel_context(ctx); + + struct brw_shader *shader = + (struct brw_shader *)prog->_LinkedShaders[MESA_SHADER_FRAGMENT]; + if (shader != NULL) { + void *mem_ctx = talloc_new(NULL); + bool progress; + + if (shader->ir) + talloc_free(shader->ir); + shader->ir = new(shader) exec_list; + clone_ir_list(mem_ctx, shader->ir, shader->base.ir); + + do_mat_op_to_vec(shader->ir); + do_mod_to_fract(shader->ir); + do_div_to_mul_rcp(shader->ir); + do_sub_to_add_neg(shader->ir); + do_explog_to_explog2(shader->ir); + do_lower_texture_projection(shader->ir); + brw_do_cubemap_normalize(shader->ir); + + do { + progress = false; + + brw_do_channel_expressions(shader->ir); + brw_do_vector_splitting(shader->ir); + + progress = do_lower_jumps(shader->ir, true, true, + true, /* main return */ + false, /* continue */ + false /* loops */ + ) || progress; + + progress = do_common_optimization(shader->ir, true, 32) || progress; + + progress = lower_noise(shader->ir) || progress; + progress = + lower_variable_index_to_cond_assign(shader->ir, + GL_TRUE, /* input */ + GL_TRUE, /* output */ + GL_TRUE, /* temp */ + GL_TRUE /* uniform */ + ) || progress; + if (intel->gen == 6) { + progress = do_if_to_cond_assign(shader->ir) || progress; + } + } while (progress); - validate_ir_tree(shader->ir); + validate_ir_tree(shader->ir); - reparent_ir(shader->ir, shader->ir); - talloc_free(mem_ctx); - } + reparent_ir(shader->ir, shader->ir); + talloc_free(mem_ctx); } if (!_mesa_ir_link_shader(ctx, prog)) @@ -184,7 +161,6 @@ type_size(const struct glsl_type *type) case GLSL_TYPE_BOOL: return type->components(); case GLSL_TYPE_ARRAY: - /* FINISHME: uniform/varying arrays. */ return type_size(type->fields.array) * type->length; case GLSL_TYPE_STRUCT: size = 0; @@ -203,293 +179,27 @@ type_size(const struct glsl_type *type) } } -class fs_reg { -public: - /* Callers of this talloc-based new need not call delete. It's - * easier to just talloc_free 'ctx' (or any of its ancestors). */ - static void* operator new(size_t size, void *ctx) - { - void *node; - - node = talloc_size(ctx, size); - assert(node != NULL); - - return node; - } - - void init() - { - this->reg = 0; - this->reg_offset = 0; - this->negate = 0; - this->abs = 0; - this->hw_reg = -1; - } - - /** Generic unset register constructor. */ - fs_reg() - { - init(); - this->file = BAD_FILE; - } - - /** Immediate value constructor. */ - fs_reg(float f) - { - init(); - this->file = IMM; - this->type = BRW_REGISTER_TYPE_F; - this->imm.f = f; - } - - /** Immediate value constructor. */ - fs_reg(int32_t i) - { - init(); - this->file = IMM; - this->type = BRW_REGISTER_TYPE_D; - this->imm.i = i; - } - - /** Immediate value constructor. */ - fs_reg(uint32_t u) - { - init(); - this->file = IMM; - this->type = BRW_REGISTER_TYPE_UD; - this->imm.u = u; - } - - /** Fixed brw_reg Immediate value constructor. */ - fs_reg(struct brw_reg fixed_hw_reg) - { - init(); - this->file = FIXED_HW_REG; - this->fixed_hw_reg = fixed_hw_reg; - this->type = fixed_hw_reg.type; - } - - fs_reg(enum register_file file, int hw_reg); - fs_reg(class fs_visitor *v, const struct glsl_type *type); - - /** Register file: ARF, GRF, MRF, IMM. */ - enum register_file file; - /** Abstract register number. 0 = fixed hw reg */ - int reg; - /** Offset within the abstract register. */ - int reg_offset; - /** HW register number. Generally unset until register allocation. */ - int hw_reg; - /** Register type. BRW_REGISTER_TYPE_* */ - int type; - bool negate; - bool abs; - struct brw_reg fixed_hw_reg; - - /** Value for file == BRW_IMMMEDIATE_FILE */ - union { - int32_t i; - uint32_t u; - float f; - } imm; -}; - static const fs_reg reg_undef; -static const fs_reg reg_null(ARF, BRW_ARF_NULL); - -class fs_inst : public exec_node { -public: - /* Callers of this talloc-based new need not call delete. It's - * easier to just talloc_free 'ctx' (or any of its ancestors). */ - static void* operator new(size_t size, void *ctx) - { - void *node; - - node = talloc_zero_size(ctx, size); - assert(node != NULL); - - return node; - } - - void init() - { - this->opcode = BRW_OPCODE_NOP; - this->saturate = false; - this->conditional_mod = BRW_CONDITIONAL_NONE; - this->predicated = false; - this->sampler = 0; - this->shadow_compare = false; - } - - fs_inst() - { - init(); - } - - fs_inst(int opcode) - { - init(); - this->opcode = opcode; - } - - fs_inst(int opcode, fs_reg dst, fs_reg src0) - { - init(); - this->opcode = opcode; - this->dst = dst; - this->src[0] = src0; - } +static const fs_reg reg_null_f(ARF, BRW_ARF_NULL, BRW_REGISTER_TYPE_F); +static const fs_reg reg_null_d(ARF, BRW_ARF_NULL, BRW_REGISTER_TYPE_D); - fs_inst(int opcode, fs_reg dst, fs_reg src0, fs_reg src1) - { - init(); - this->opcode = opcode; - this->dst = dst; - this->src[0] = src0; - this->src[1] = src1; - } - - fs_inst(int opcode, fs_reg dst, fs_reg src0, fs_reg src1, fs_reg src2) - { - init(); - this->opcode = opcode; - this->dst = dst; - this->src[0] = src0; - this->src[1] = src1; - this->src[2] = src2; - } - - int opcode; /* BRW_OPCODE_* or FS_OPCODE_* */ - fs_reg dst; - fs_reg src[3]; - bool saturate; - bool predicated; - int conditional_mod; /**< BRW_CONDITIONAL_* */ - - int mlen; /** SEND message length */ - int sampler; - bool shadow_compare; - - /** @{ - * Annotation for the generated IR. One of the two can be set. - */ - ir_instruction *ir; - const char *annotation; - /** @} */ -}; - -class fs_visitor : public ir_visitor -{ -public: - - fs_visitor(struct brw_wm_compile *c, struct brw_shader *shader) - { - this->c = c; - this->p = &c->func; - this->brw = p->brw; - this->intel = &brw->intel; - this->ctx = &intel->ctx; - this->mem_ctx = talloc_new(NULL); - this->shader = shader; - this->fail = false; - this->next_abstract_grf = 1; - this->variable_ht = hash_table_ctor(0, - hash_table_pointer_hash, - hash_table_pointer_compare); - - this->frag_color = NULL; - this->frag_data = NULL; - this->frag_depth = NULL; - this->first_non_payload_grf = 0; - - this->current_annotation = NULL; - this->annotation_string = NULL; - this->annotation_ir = NULL; - this->base_ir = NULL; - } - ~fs_visitor() - { - talloc_free(this->mem_ctx); - hash_table_dtor(this->variable_ht); - } - - fs_reg *variable_storage(ir_variable *var); - - void visit(ir_variable *ir); - void visit(ir_assignment *ir); - void visit(ir_dereference_variable *ir); - void visit(ir_dereference_record *ir); - void visit(ir_dereference_array *ir); - void visit(ir_expression *ir); - void visit(ir_texture *ir); - void visit(ir_if *ir); - void visit(ir_constant *ir); - void visit(ir_swizzle *ir); - void visit(ir_return *ir); - void visit(ir_loop *ir); - void visit(ir_loop_jump *ir); - void visit(ir_discard *ir); - void visit(ir_call *ir); - void visit(ir_function *ir); - void visit(ir_function_signature *ir); - - fs_inst *emit(fs_inst inst); - void assign_curb_setup(); - void assign_urb_setup(); - void assign_regs(); - void generate_code(); - void generate_fb_write(fs_inst *inst); - void generate_linterp(fs_inst *inst, struct brw_reg dst, - struct brw_reg *src); - void generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src); - void generate_math(fs_inst *inst, struct brw_reg dst, struct brw_reg *src); - void generate_discard(fs_inst *inst); - void generate_ddx(fs_inst *inst, struct brw_reg dst, struct brw_reg src); - void generate_ddy(fs_inst *inst, struct brw_reg dst, struct brw_reg src); - - void emit_dummy_fs(); - void emit_interpolation(); - void emit_pinterp(int location); - void emit_fb_writes(); - - struct brw_reg interp_reg(int location, int channel); - int setup_uniform_values(int loc, const glsl_type *type); - - struct brw_context *brw; - struct intel_context *intel; - GLcontext *ctx; - struct brw_wm_compile *c; - struct brw_compile *p; - struct brw_shader *shader; - void *mem_ctx; - exec_list instructions; - int next_abstract_grf; - struct hash_table *variable_ht; - ir_variable *frag_color, *frag_data, *frag_depth; - int first_non_payload_grf; - - /** @{ debug annotation info */ - const char *current_annotation; - ir_instruction *base_ir; - const char **annotation_string; - ir_instruction **annotation_ir; - /** @} */ - - bool fail; - - /* Result of last visit() method. */ - fs_reg result; - - fs_reg pixel_x; - fs_reg pixel_y; - fs_reg pixel_w; - fs_reg delta_x; - fs_reg delta_y; - fs_reg interp_attrs[64]; - - int grf_used; - -}; +int +fs_visitor::virtual_grf_alloc(int size) +{ + if (virtual_grf_array_size <= virtual_grf_next) { + if (virtual_grf_array_size == 0) + virtual_grf_array_size = 16; + else + virtual_grf_array_size *= 2; + virtual_grf_sizes = talloc_realloc(mem_ctx, virtual_grf_sizes, + int, virtual_grf_array_size); + + /* This slot is always unused. */ + virtual_grf_sizes[0] = 0; + } + virtual_grf_sizes[virtual_grf_next] = size; + return virtual_grf_next++; +} /** Fixed HW reg constructor. */ fs_reg::fs_reg(enum register_file file, int hw_reg) @@ -500,6 +210,15 @@ fs_reg::fs_reg(enum register_file file, int hw_reg) this->type = BRW_REGISTER_TYPE_F; } +/** Fixed HW reg constructor. */ +fs_reg::fs_reg(enum register_file file, int hw_reg, uint32_t type) +{ + init(); + this->file = file; + this->hw_reg = hw_reg; + this->type = type; +} + int brw_type_for_base_type(const struct glsl_type *type) { @@ -530,9 +249,8 @@ fs_reg::fs_reg(class fs_visitor *v, const struct glsl_type *type) init(); this->file = GRF; - this->reg = v->next_abstract_grf; + this->reg = v->virtual_grf_alloc(type_size(type)); this->reg_offset = 0; - v->next_abstract_grf += type_size(type); this->type = brw_type_for_base_type(type); } @@ -550,7 +268,6 @@ fs_visitor::variable_storage(ir_variable *var) int fs_visitor::setup_uniform_values(int loc, const glsl_type *type) { - const struct gl_program *fp = &this->brw->fragment_program->Base; unsigned int offset = 0; float *vec_values; @@ -571,7 +288,7 @@ fs_visitor::setup_uniform_values(int loc, const glsl_type *type) case GLSL_TYPE_UINT: case GLSL_TYPE_INT: case GLSL_TYPE_BOOL: - vec_values = fp->Parameters->ParameterValues[loc]; + vec_values = fp->Base.Parameters->ParameterValues[loc]; for (unsigned int i = 0; i < type->vector_elements; i++) { c->prog_data.param[c->prog_data.nr_params++] = &vec_values[i]; } @@ -600,28 +317,316 @@ fs_visitor::setup_uniform_values(int loc, const glsl_type *type) } } + +/* Our support for builtin uniforms is even scarier than non-builtin. + * It sits on top of the PROG_STATE_VAR parameters that are + * automatically updated from GL context state. + */ +void +fs_visitor::setup_builtin_uniform_values(ir_variable *ir) +{ + const struct gl_builtin_uniform_desc *statevar = NULL; + + for (unsigned int i = 0; _mesa_builtin_uniform_desc[i].name; i++) { + statevar = &_mesa_builtin_uniform_desc[i]; + if (strcmp(ir->name, _mesa_builtin_uniform_desc[i].name) == 0) + break; + } + + if (!statevar->name) { + this->fail = true; + printf("Failed to find builtin uniform `%s'\n", ir->name); + return; + } + + int array_count; + if (ir->type->is_array()) { + array_count = ir->type->length; + } else { + array_count = 1; + } + + for (int a = 0; a < array_count; a++) { + for (unsigned int i = 0; i < statevar->num_elements; i++) { + struct gl_builtin_uniform_element *element = &statevar->elements[i]; + int tokens[STATE_LENGTH]; + + memcpy(tokens, element->tokens, sizeof(element->tokens)); + if (ir->type->is_array()) { + tokens[1] = a; + } + + /* This state reference has already been setup by ir_to_mesa, + * but we'll get the same index back here. + */ + int index = _mesa_add_state_reference(this->fp->Base.Parameters, + (gl_state_index *)tokens); + float *vec_values = this->fp->Base.Parameters->ParameterValues[index]; + + /* Add each of the unique swizzles of the element as a + * parameter. This'll end up matching the expected layout of + * the array/matrix/structure we're trying to fill in. + */ + int last_swiz = -1; + for (unsigned int i = 0; i < 4; i++) { + int swiz = GET_SWZ(element->swizzle, i); + if (swiz == last_swiz) + break; + last_swiz = swiz; + + c->prog_data.param[c->prog_data.nr_params++] = &vec_values[swiz]; + } + } + } +} + +fs_reg * +fs_visitor::emit_fragcoord_interpolation(ir_variable *ir) +{ + fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type); + fs_reg wpos = *reg; + fs_reg neg_y = this->pixel_y; + neg_y.negate = true; + + /* gl_FragCoord.x */ + if (ir->pixel_center_integer) { + emit(fs_inst(BRW_OPCODE_MOV, wpos, this->pixel_x)); + } else { + emit(fs_inst(BRW_OPCODE_ADD, wpos, this->pixel_x, fs_reg(0.5f))); + } + wpos.reg_offset++; + + /* gl_FragCoord.y */ + if (ir->origin_upper_left && ir->pixel_center_integer) { + emit(fs_inst(BRW_OPCODE_MOV, wpos, this->pixel_y)); + } else { + fs_reg pixel_y = this->pixel_y; + float offset = (ir->pixel_center_integer ? 0.0 : 0.5); + + if (!ir->origin_upper_left) { + pixel_y.negate = true; + offset += c->key.drawable_height - 1.0; + } + + emit(fs_inst(BRW_OPCODE_ADD, wpos, pixel_y, fs_reg(offset))); + } + wpos.reg_offset++; + + /* gl_FragCoord.z */ + emit(fs_inst(FS_OPCODE_LINTERP, wpos, this->delta_x, this->delta_y, + interp_reg(FRAG_ATTRIB_WPOS, 2))); + wpos.reg_offset++; + + /* gl_FragCoord.w: Already set up in emit_interpolation */ + emit(fs_inst(BRW_OPCODE_MOV, wpos, this->wpos_w)); + + return reg; +} + +fs_reg * +fs_visitor::emit_general_interpolation(ir_variable *ir) +{ + fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type); + /* Interpolation is always in floating point regs. */ + reg->type = BRW_REGISTER_TYPE_F; + fs_reg attr = *reg; + + unsigned int array_elements; + const glsl_type *type; + + if (ir->type->is_array()) { + array_elements = ir->type->length; + if (array_elements == 0) { + this->fail = true; + } + type = ir->type->fields.array; + } else { + array_elements = 1; + type = ir->type; + } + + int location = ir->location; + for (unsigned int i = 0; i < array_elements; i++) { + for (unsigned int j = 0; j < type->matrix_columns; j++) { + if (urb_setup[location] == -1) { + /* If there's no incoming setup data for this slot, don't + * emit interpolation for it. + */ + attr.reg_offset += type->vector_elements; + location++; + continue; + } + + for (unsigned int c = 0; c < type->vector_elements; c++) { + struct brw_reg interp = interp_reg(location, c); + emit(fs_inst(FS_OPCODE_LINTERP, + attr, + this->delta_x, + this->delta_y, + fs_reg(interp))); + attr.reg_offset++; + } + + if (intel->gen < 6) { + attr.reg_offset -= type->vector_elements; + for (unsigned int c = 0; c < type->vector_elements; c++) { + emit(fs_inst(BRW_OPCODE_MUL, + attr, + attr, + this->pixel_w)); + attr.reg_offset++; + } + } + location++; + } + } + + return reg; +} + +fs_reg * +fs_visitor::emit_frontfacing_interpolation(ir_variable *ir) +{ + fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type); + + /* The frontfacing comes in as a bit in the thread payload. */ + if (intel->gen >= 6) { + emit(fs_inst(BRW_OPCODE_ASR, + *reg, + fs_reg(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_D)), + fs_reg(15))); + emit(fs_inst(BRW_OPCODE_NOT, + *reg, + *reg)); + emit(fs_inst(BRW_OPCODE_AND, + *reg, + *reg, + fs_reg(1))); + } else { + fs_reg *reg = new(this->mem_ctx) fs_reg(this, ir->type); + struct brw_reg r1_6ud = retype(brw_vec1_grf(1, 6), BRW_REGISTER_TYPE_UD); + /* bit 31 is "primitive is back face", so checking < (1 << 31) gives + * us front face + */ + fs_inst *inst = emit(fs_inst(BRW_OPCODE_CMP, + *reg, + fs_reg(r1_6ud), + fs_reg(1u << 31))); + inst->conditional_mod = BRW_CONDITIONAL_L; + emit(fs_inst(BRW_OPCODE_AND, *reg, *reg, fs_reg(1u))); + } + + return reg; +} + +fs_inst * +fs_visitor::emit_math(fs_opcodes opcode, fs_reg dst, fs_reg src) +{ + switch (opcode) { + case FS_OPCODE_RCP: + case FS_OPCODE_RSQ: + case FS_OPCODE_SQRT: + case FS_OPCODE_EXP2: + case FS_OPCODE_LOG2: + case FS_OPCODE_SIN: + case FS_OPCODE_COS: + break; + default: + assert(!"not reached: bad math opcode"); + return NULL; + } + + /* Can't do hstride == 0 args to gen6 math, so expand it out. We + * might be able to do better by doing execsize = 1 math and then + * expanding that result out, but we would need to be careful with + * masking. + */ + if (intel->gen >= 6 && src.file == UNIFORM) { + fs_reg expanded = fs_reg(this, glsl_type::float_type); + emit(fs_inst(BRW_OPCODE_MOV, expanded, src)); + src = expanded; + } + + fs_inst *inst = emit(fs_inst(opcode, dst, src)); + + if (intel->gen < 6) { + inst->base_mrf = 2; + inst->mlen = 1; + } + + return inst; +} + +fs_inst * +fs_visitor::emit_math(fs_opcodes opcode, fs_reg dst, fs_reg src0, fs_reg src1) +{ + int base_mrf = 2; + fs_inst *inst; + + assert(opcode == FS_OPCODE_POW); + + if (intel->gen >= 6) { + /* Can't do hstride == 0 args to gen6 math, so expand it out. */ + if (src0.file == UNIFORM) { + fs_reg expanded = fs_reg(this, glsl_type::float_type); + emit(fs_inst(BRW_OPCODE_MOV, expanded, src0)); + src0 = expanded; + } + + if (src1.file == UNIFORM) { + fs_reg expanded = fs_reg(this, glsl_type::float_type); + emit(fs_inst(BRW_OPCODE_MOV, expanded, src1)); + src1 = expanded; + } + + inst = emit(fs_inst(opcode, dst, src0, src1)); + } else { + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + 1), src1)); + inst = emit(fs_inst(opcode, dst, src0, reg_null_f)); + + inst->base_mrf = base_mrf; + inst->mlen = 2; + } + return inst; +} + void fs_visitor::visit(ir_variable *ir) { fs_reg *reg = NULL; + if (variable_storage(ir)) + return; + if (strcmp(ir->name, "gl_FragColor") == 0) { this->frag_color = ir; } else if (strcmp(ir->name, "gl_FragData") == 0) { this->frag_data = ir; } else if (strcmp(ir->name, "gl_FragDepth") == 0) { this->frag_depth = ir; - assert(!"FINISHME: this hangs currently."); } if (ir->mode == ir_var_in) { - reg = &this->interp_attrs[ir->location]; + if (!strcmp(ir->name, "gl_FragCoord")) { + reg = emit_fragcoord_interpolation(ir); + } else if (!strcmp(ir->name, "gl_FrontFacing")) { + reg = emit_frontfacing_interpolation(ir); + } else { + reg = emit_general_interpolation(ir); + } + assert(reg); + hash_table_insert(this->variable_ht, reg, ir); + return; } if (ir->mode == ir_var_uniform) { int param_index = c->prog_data.nr_params; - setup_uniform_values(ir->location, ir->type); + if (!strncmp(ir->name, "gl_", 3)) { + setup_builtin_uniform_values(ir); + } else { + setup_uniform_values(ir->location, ir->type); + } reg = new(this->mem_ctx) fs_reg(UNIFORM, param_index); } @@ -665,12 +670,8 @@ fs_visitor::visit(ir_dereference_array *ir) ir->array->accept(this); index = ir->array_index->as_constant(); - if (ir->type->is_matrix()) { - element_size = ir->type->vector_elements; - } else { - element_size = type_size(ir->type); - this->result.type = brw_type_for_base_type(ir->type); - } + element_size = type_size(ir->type); + this->result.type = brw_type_for_base_type(ir->type); if (index) { assert(this->result.file == UNIFORM || @@ -678,7 +679,7 @@ fs_visitor::visit(ir_dereference_array *ir) this->result.reg != 0)); this->result.reg_offset += index->value.i[0] * element_size; } else { - assert(!"FINISHME: non-constant matrix column"); + assert(!"FINISHME: non-constant array element"); } } @@ -687,7 +688,6 @@ fs_visitor::visit(ir_expression *ir) { unsigned int operand; fs_reg op[2], temp; - fs_reg result; fs_inst *inst; for (operand = 0; operand < ir->get_num_operands(); operand++) { @@ -716,7 +716,10 @@ fs_visitor::visit(ir_expression *ir) switch (ir->operation) { case ir_unop_logic_not: - emit(fs_inst(BRW_OPCODE_ADD, this->result, op[0], fs_reg(-1))); + /* Note that BRW_OPCODE_NOT is not appropriate here, since it is + * ones complement of the whole register, not just bit 0. + */ + emit(fs_inst(BRW_OPCODE_XOR, this->result, op[0], fs_reg(1))); break; case ir_unop_neg: op[0].negate = !op[0].negate; @@ -731,36 +734,36 @@ fs_visitor::visit(ir_expression *ir) emit(fs_inst(BRW_OPCODE_MOV, this->result, fs_reg(0.0f))); - inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null, op[0], fs_reg(0.0f))); + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_f, op[0], fs_reg(0.0f))); inst->conditional_mod = BRW_CONDITIONAL_G; inst = emit(fs_inst(BRW_OPCODE_MOV, this->result, fs_reg(1.0f))); inst->predicated = true; - inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null, op[0], fs_reg(0.0f))); + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_f, op[0], fs_reg(0.0f))); inst->conditional_mod = BRW_CONDITIONAL_L; inst = emit(fs_inst(BRW_OPCODE_MOV, this->result, fs_reg(-1.0f))); inst->predicated = true; break; case ir_unop_rcp: - emit(fs_inst(FS_OPCODE_RCP, this->result, op[0])); + emit_math(FS_OPCODE_RCP, this->result, op[0]); break; case ir_unop_exp2: - emit(fs_inst(FS_OPCODE_EXP2, this->result, op[0])); + emit_math(FS_OPCODE_EXP2, this->result, op[0]); break; case ir_unop_log2: - emit(fs_inst(FS_OPCODE_LOG2, this->result, op[0])); + emit_math(FS_OPCODE_LOG2, this->result, op[0]); break; case ir_unop_exp: case ir_unop_log: assert(!"not reached: should be handled by ir_explog_to_explog2"); break; case ir_unop_sin: - emit(fs_inst(FS_OPCODE_SIN, this->result, op[0])); + emit_math(FS_OPCODE_SIN, this->result, op[0]); break; case ir_unop_cos: - emit(fs_inst(FS_OPCODE_COS, this->result, op[0])); + emit_math(FS_OPCODE_COS, this->result, op[0]); break; case ir_unop_dFdx: @@ -843,18 +846,16 @@ fs_visitor::visit(ir_expression *ir) break; case ir_unop_sqrt: - emit(fs_inst(FS_OPCODE_SQRT, this->result, op[0])); + emit_math(FS_OPCODE_SQRT, this->result, op[0]); break; case ir_unop_rsq: - emit(fs_inst(FS_OPCODE_RSQ, this->result, op[0])); + emit_math(FS_OPCODE_RSQ, this->result, op[0]); break; case ir_unop_i2f: case ir_unop_b2f: case ir_unop_b2i: - emit(fs_inst(BRW_OPCODE_MOV, this->result, op[0])); - break; case ir_unop_f2i: emit(fs_inst(BRW_OPCODE_MOV, this->result, op[0])); break; @@ -862,12 +863,15 @@ fs_visitor::visit(ir_expression *ir) case ir_unop_i2b: inst = emit(fs_inst(BRW_OPCODE_CMP, this->result, op[0], fs_reg(0.0f))); inst->conditional_mod = BRW_CONDITIONAL_NZ; + inst = emit(fs_inst(BRW_OPCODE_AND, this->result, + this->result, fs_reg(1))); + break; case ir_unop_trunc: - emit(fs_inst(BRW_OPCODE_RNDD, this->result, op[0])); + emit(fs_inst(BRW_OPCODE_RNDZ, this->result, op[0])); break; case ir_unop_ceil: - op[0].negate = ~op[0].negate; + op[0].negate = !op[0].negate; inst = emit(fs_inst(BRW_OPCODE_RNDD, this->result, op[0])); this->result.negate = true; break; @@ -877,6 +881,9 @@ fs_visitor::visit(ir_expression *ir) case ir_unop_fract: inst = emit(fs_inst(BRW_OPCODE_FRC, this->result, op[0])); break; + case ir_unop_round_even: + emit(fs_inst(BRW_OPCODE_RNDE, this->result, op[0])); + break; case ir_binop_min: inst = emit(fs_inst(BRW_OPCODE_CMP, this->result, op[0], op[1])); @@ -894,7 +901,7 @@ fs_visitor::visit(ir_expression *ir) break; case ir_binop_pow: - inst = emit(fs_inst(FS_OPCODE_POW, this->result, op[0], op[1])); + emit_math(FS_OPCODE_POW, this->result, op[0], op[1]); break; case ir_unop_bit_not: @@ -910,11 +917,51 @@ fs_visitor::visit(ir_expression *ir) } void +fs_visitor::emit_assignment_writes(fs_reg &l, fs_reg &r, + const glsl_type *type, bool predicated) +{ + switch (type->base_type) { + case GLSL_TYPE_FLOAT: + case GLSL_TYPE_UINT: + case GLSL_TYPE_INT: + case GLSL_TYPE_BOOL: + for (unsigned int i = 0; i < type->components(); i++) { + l.type = brw_type_for_base_type(type); + r.type = brw_type_for_base_type(type); + + fs_inst *inst = emit(fs_inst(BRW_OPCODE_MOV, l, r)); + inst->predicated = predicated; + + l.reg_offset++; + r.reg_offset++; + } + break; + case GLSL_TYPE_ARRAY: + for (unsigned int i = 0; i < type->length; i++) { + emit_assignment_writes(l, r, type->fields.array, predicated); + } + break; + + case GLSL_TYPE_STRUCT: + for (unsigned int i = 0; i < type->length; i++) { + emit_assignment_writes(l, r, type->fields.structure[i].type, + predicated); + } + break; + + case GLSL_TYPE_SAMPLER: + break; + + default: + assert(!"not reached"); + break; + } +} + +void fs_visitor::visit(ir_assignment *ir) { struct fs_reg l, r; - int i; - int write_mask; fs_inst *inst; /* FINISHME: arrays on the lhs */ @@ -924,118 +971,300 @@ fs_visitor::visit(ir_assignment *ir) ir->rhs->accept(this); r = this->result; - /* FINISHME: This should really set to the correct maximal writemask for each - * FINISHME: component written (in the loops below). This case can only - * FINISHME: occur for matrices, arrays, and structures. - */ - if (ir->write_mask == 0) { - assert(!ir->lhs->type->is_scalar() && !ir->lhs->type->is_vector()); - write_mask = WRITEMASK_XYZW; - } else { - assert(ir->lhs->type->is_vector() || ir->lhs->type->is_scalar()); - write_mask = ir->write_mask; - } - assert(l.file != BAD_FILE); assert(r.file != BAD_FILE); if (ir->condition) { - /* Get the condition bool into the predicate. */ - ir->condition->accept(this); - inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null, this->result, fs_reg(0))); - inst->conditional_mod = BRW_CONDITIONAL_NZ; + emit_bool_to_cond_code(ir->condition); } - for (i = 0; i < type_size(ir->lhs->type); i++) { - if (i >= 4 || (write_mask & (1 << i))) { - inst = emit(fs_inst(BRW_OPCODE_MOV, l, r)); - if (ir->condition) - inst->predicated = true; - r.reg_offset++; + if (ir->lhs->type->is_scalar() || + ir->lhs->type->is_vector()) { + for (int i = 0; i < ir->lhs->type->vector_elements; i++) { + if (ir->write_mask & (1 << i)) { + inst = emit(fs_inst(BRW_OPCODE_MOV, l, r)); + if (ir->condition) + inst->predicated = true; + r.reg_offset++; + } + l.reg_offset++; } - l.reg_offset++; + } else { + emit_assignment_writes(l, r, ir->lhs->type, ir->condition != NULL); } } -void -fs_visitor::visit(ir_texture *ir) +fs_inst * +fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst, fs_reg coordinate) { - int base_mrf = 2; - fs_inst *inst = NULL; - unsigned int mlen = 0; + int mlen; + int base_mrf = 1; + bool simd16 = false; + fs_reg orig_dst; - ir->coordinate->accept(this); - fs_reg coordinate = this->result; + /* g0 header. */ + mlen = 1; - if (ir->projector) { - fs_reg inv_proj = fs_reg(this, glsl_type::float_type); + if (ir->shadow_comparitor) { + for (int i = 0; i < ir->coordinate->type->vector_elements; i++) { + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen + i), + coordinate)); + coordinate.reg_offset++; + } + /* gen4's SIMD8 sampler always has the slots for u,v,r present. */ + mlen += 3; - ir->projector->accept(this); - emit(fs_inst(FS_OPCODE_RCP, inv_proj, this->result)); + if (ir->op == ir_tex) { + /* There's no plain shadow compare message, so we use shadow + * compare with a bias of 0.0. + */ + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), + fs_reg(0.0f))); + mlen++; + } else if (ir->op == ir_txb) { + ir->lod_info.bias->accept(this); + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), + this->result)); + mlen++; + } else { + assert(ir->op == ir_txl); + ir->lod_info.lod->accept(this); + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), + this->result)); + mlen++; + } - fs_reg proj_coordinate = fs_reg(this, ir->coordinate->type); - for (unsigned int i = 0; i < ir->coordinate->type->vector_elements; i++) { - emit(fs_inst(BRW_OPCODE_MUL, proj_coordinate, coordinate, inv_proj)); + ir->shadow_comparitor->accept(this); + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result)); + mlen++; + } else if (ir->op == ir_tex) { + for (int i = 0; i < ir->coordinate->type->vector_elements; i++) { + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen + i), + coordinate)); coordinate.reg_offset++; - proj_coordinate.reg_offset++; } - proj_coordinate.reg_offset = 0; + /* gen4's SIMD8 sampler always has the slots for u,v,r present. */ + mlen += 3; + } else { + /* Oh joy. gen4 doesn't have SIMD8 non-shadow-compare bias/lod + * instructions. We'll need to do SIMD16 here. + */ + assert(ir->op == ir_txb || ir->op == ir_txl); + + for (int i = 0; i < ir->coordinate->type->vector_elements; i++) { + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen + i * 2), + coordinate)); + coordinate.reg_offset++; + } + + /* lod/bias appears after u/v/r. */ + mlen += 6; + + if (ir->op == ir_txb) { + ir->lod_info.bias->accept(this); + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), + this->result)); + mlen++; + } else { + ir->lod_info.lod->accept(this); + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), + this->result)); + mlen++; + } - coordinate = proj_coordinate; + /* The unused upper half. */ + mlen++; + + /* Now, since we're doing simd16, the return is 2 interleaved + * vec4s where the odd-indexed ones are junk. We'll need to move + * this weirdness around to the expected layout. + */ + simd16 = true; + orig_dst = dst; + dst = fs_reg(this, glsl_type::get_array_instance(glsl_type::vec4_type, + 2)); + dst.type = BRW_REGISTER_TYPE_F; } - for (mlen = 0; mlen < ir->coordinate->type->vector_elements; mlen++) { - emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), coordinate)); - coordinate.reg_offset++; + fs_inst *inst = NULL; + switch (ir->op) { + case ir_tex: + inst = emit(fs_inst(FS_OPCODE_TEX, dst)); + break; + case ir_txb: + inst = emit(fs_inst(FS_OPCODE_TXB, dst)); + break; + case ir_txl: + inst = emit(fs_inst(FS_OPCODE_TXL, dst)); + break; + case ir_txd: + case ir_txf: + assert(!"GLSL 1.30 features unsupported"); + break; } + inst->base_mrf = base_mrf; + inst->mlen = mlen; + + if (simd16) { + for (int i = 0; i < 4; i++) { + emit(fs_inst(BRW_OPCODE_MOV, orig_dst, dst)); + orig_dst.reg_offset++; + dst.reg_offset += 2; + } + } + + return inst; +} + +fs_inst * +fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst, fs_reg coordinate) +{ + /* gen5's SIMD8 sampler has slots for u, v, r, array index, then + * optional parameters like shadow comparitor or LOD bias. If + * optional parameters aren't present, those base slots are + * optional and don't need to be included in the message. + * + * We don't fill in the unnecessary slots regardless, which may + * look surprising in the disassembly. + */ + int mlen = 1; /* g0 header always present. */ + int base_mrf = 1; - /* Pre-Ironlake, the 8-wide sampler always took u,v,r. */ - if (intel->gen < 5) - mlen = 3; + for (int i = 0; i < ir->coordinate->type->vector_elements; i++) { + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen + i), + coordinate)); + coordinate.reg_offset++; + } + mlen += ir->coordinate->type->vector_elements; if (ir->shadow_comparitor) { - /* For shadow comparisons, we have to supply u,v,r. */ - mlen = 3; + mlen = MAX2(mlen, 5); ir->shadow_comparitor->accept(this); emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result)); mlen++; } - /* Do we ever want to handle writemasking on texture samples? Is it - * performance relevant? - */ - fs_reg dst = fs_reg(this, glsl_type::vec4_type); - + fs_inst *inst = NULL; switch (ir->op) { case ir_tex: - inst = emit(fs_inst(FS_OPCODE_TEX, dst, fs_reg(MRF, base_mrf))); + inst = emit(fs_inst(FS_OPCODE_TEX, dst)); break; case ir_txb: ir->lod_info.bias->accept(this); + mlen = MAX2(mlen, 5); emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result)); mlen++; - inst = emit(fs_inst(FS_OPCODE_TXB, dst, fs_reg(MRF, base_mrf))); + inst = emit(fs_inst(FS_OPCODE_TXB, dst)); break; case ir_txl: ir->lod_info.lod->accept(this); + mlen = MAX2(mlen, 5); emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result)); mlen++; - inst = emit(fs_inst(FS_OPCODE_TXL, dst, fs_reg(MRF, base_mrf))); + inst = emit(fs_inst(FS_OPCODE_TXL, dst)); break; case ir_txd: case ir_txf: assert(!"GLSL 1.30 features unsupported"); break; } + inst->base_mrf = base_mrf; + inst->mlen = mlen; + + return inst; +} + +void +fs_visitor::visit(ir_texture *ir) +{ + int sampler; + fs_inst *inst = NULL; + + ir->coordinate->accept(this); + fs_reg coordinate = this->result; + + /* Should be lowered by do_lower_texture_projection */ + assert(!ir->projector); + + sampler = _mesa_get_sampler_uniform_value(ir->sampler, + ctx->Shader.CurrentProgram, + &brw->fragment_program->Base); + sampler = c->fp->program.Base.SamplerUnits[sampler]; + + /* The 965 requires the EU to do the normalization of GL rectangle + * texture coordinates. We use the program parameter state + * tracking to get the scaling factor. + */ + if (ir->sampler->type->sampler_dimensionality == GLSL_SAMPLER_DIM_RECT) { + struct gl_program_parameter_list *params = c->fp->program.Base.Parameters; + int tokens[STATE_LENGTH] = { + STATE_INTERNAL, + STATE_TEXRECT_SCALE, + sampler, + 0, + 0 + }; + + fs_reg scale_x = fs_reg(UNIFORM, c->prog_data.nr_params); + fs_reg scale_y = fs_reg(UNIFORM, c->prog_data.nr_params + 1); + GLuint index = _mesa_add_state_reference(params, + (gl_state_index *)tokens); + float *vec_values = this->fp->Base.Parameters->ParameterValues[index]; + + c->prog_data.param[c->prog_data.nr_params++] = &vec_values[0]; + c->prog_data.param[c->prog_data.nr_params++] = &vec_values[1]; + + fs_reg dst = fs_reg(this, ir->coordinate->type); + fs_reg src = coordinate; + coordinate = dst; + + emit(fs_inst(BRW_OPCODE_MUL, dst, src, scale_x)); + dst.reg_offset++; + src.reg_offset++; + emit(fs_inst(BRW_OPCODE_MUL, dst, src, scale_y)); + } + + /* Writemasking doesn't eliminate channels on SIMD8 texture + * samples, so don't worry about them. + */ + fs_reg dst = fs_reg(this, glsl_type::vec4_type); + + if (intel->gen < 5) { + inst = emit_texture_gen4(ir, dst, coordinate); + } else { + inst = emit_texture_gen5(ir, dst, coordinate); + } + + inst->sampler = sampler; this->result = dst; if (ir->shadow_comparitor) inst->shadow_compare = true; - inst->mlen = mlen; + + if (c->key.tex_swizzles[inst->sampler] != SWIZZLE_NOOP) { + fs_reg swizzle_dst = fs_reg(this, glsl_type::vec4_type); + + for (int i = 0; i < 4; i++) { + int swiz = GET_SWZ(c->key.tex_swizzles[inst->sampler], i); + fs_reg l = swizzle_dst; + l.reg_offset += i; + + if (swiz == SWIZZLE_ZERO) { + emit(fs_inst(BRW_OPCODE_MOV, l, fs_reg(0.0f))); + } else if (swiz == SWIZZLE_ONE) { + emit(fs_inst(BRW_OPCODE_MOV, l, fs_reg(1.0f))); + } else { + fs_reg r = dst; + r.reg_offset += GET_SWZ(c->key.tex_swizzles[inst->sampler], i); + emit(fs_inst(BRW_OPCODE_MOV, l, r)); + } + } + this->result = swizzle_dst; + } } void @@ -1044,6 +1273,11 @@ fs_visitor::visit(ir_swizzle *ir) ir->val->accept(this); fs_reg val = this->result; + if (ir->type->vector_elements == 1) { + this->result.reg_offset += ir->mask.x; + return; + } + fs_reg result = fs_reg(this, ir->type); this->result = result; @@ -1075,9 +1309,13 @@ fs_visitor::visit(ir_swizzle *ir) void fs_visitor::visit(ir_discard *ir) { + fs_reg temp = fs_reg(this, glsl_type::uint_type); + assert(ir->condition == NULL); /* FINISHME */ - emit(fs_inst(FS_OPCODE_DISCARD)); + emit(fs_inst(FS_OPCODE_DISCARD_NOT, temp, reg_null_d)); + emit(fs_inst(FS_OPCODE_DISCARD_AND, reg_null_d, temp)); + kill_emitted = true; } void @@ -1108,6 +1346,206 @@ fs_visitor::visit(ir_constant *ir) } void +fs_visitor::emit_bool_to_cond_code(ir_rvalue *ir) +{ + ir_expression *expr = ir->as_expression(); + + if (expr) { + fs_reg op[2]; + fs_inst *inst; + + for (unsigned int i = 0; i < expr->get_num_operands(); i++) { + assert(expr->operands[i]->type->is_scalar()); + + expr->operands[i]->accept(this); + op[i] = this->result; + } + + switch (expr->operation) { + case ir_unop_logic_not: + inst = emit(fs_inst(BRW_OPCODE_AND, reg_null_d, op[0], fs_reg(1))); + inst->conditional_mod = BRW_CONDITIONAL_Z; + break; + + case ir_binop_logic_xor: + inst = emit(fs_inst(BRW_OPCODE_XOR, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + break; + + case ir_binop_logic_or: + inst = emit(fs_inst(BRW_OPCODE_OR, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + break; + + case ir_binop_logic_and: + inst = emit(fs_inst(BRW_OPCODE_AND, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + break; + + case ir_unop_f2b: + if (intel->gen >= 6) { + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, + op[0], fs_reg(0.0f))); + } else { + inst = emit(fs_inst(BRW_OPCODE_MOV, reg_null_d, op[0])); + } + inst->conditional_mod = BRW_CONDITIONAL_NZ; + break; + + case ir_unop_i2b: + if (intel->gen >= 6) { + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, op[0], fs_reg(0))); + } else { + inst = emit(fs_inst(BRW_OPCODE_MOV, reg_null_d, op[0])); + } + inst->conditional_mod = BRW_CONDITIONAL_NZ; + break; + + case ir_binop_greater: + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_G; + break; + case ir_binop_gequal: + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_GE; + break; + case ir_binop_less: + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_L; + break; + case ir_binop_lequal: + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_LE; + break; + case ir_binop_equal: + case ir_binop_all_equal: + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_Z; + break; + case ir_binop_nequal: + case ir_binop_any_nequal: + inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + break; + default: + assert(!"not reached"); + this->fail = true; + break; + } + return; + } + + ir->accept(this); + + if (intel->gen >= 6) { + fs_inst *inst = emit(fs_inst(BRW_OPCODE_AND, reg_null_d, + this->result, fs_reg(1))); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + } else { + fs_inst *inst = emit(fs_inst(BRW_OPCODE_MOV, reg_null_d, this->result)); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + } +} + +/** + * Emit a gen6 IF statement with the comparison folded into the IF + * instruction. + */ +void +fs_visitor::emit_if_gen6(ir_if *ir) +{ + ir_expression *expr = ir->condition->as_expression(); + + if (expr) { + fs_reg op[2]; + fs_inst *inst; + fs_reg temp; + + for (unsigned int i = 0; i < expr->get_num_operands(); i++) { + assert(expr->operands[i]->type->is_scalar()); + + expr->operands[i]->accept(this); + op[i] = this->result; + } + + switch (expr->operation) { + case ir_unop_logic_not: + inst = emit(fs_inst(BRW_OPCODE_IF, temp, op[0], fs_reg(1))); + inst->conditional_mod = BRW_CONDITIONAL_Z; + return; + + case ir_binop_logic_xor: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + return; + + case ir_binop_logic_or: + temp = fs_reg(this, glsl_type::bool_type); + emit(fs_inst(BRW_OPCODE_OR, temp, op[0], op[1])); + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, temp, fs_reg(0))); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + return; + + case ir_binop_logic_and: + temp = fs_reg(this, glsl_type::bool_type); + emit(fs_inst(BRW_OPCODE_AND, temp, op[0], op[1])); + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, temp, fs_reg(0))); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + return; + + case ir_unop_f2b: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_f, op[0], fs_reg(0))); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + return; + + case ir_unop_i2b: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], fs_reg(0))); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + return; + + case ir_binop_greater: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_G; + return; + case ir_binop_gequal: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_GE; + return; + case ir_binop_less: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_L; + return; + case ir_binop_lequal: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_LE; + return; + case ir_binop_equal: + case ir_binop_all_equal: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_Z; + return; + case ir_binop_nequal: + case ir_binop_any_nequal: + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], op[1])); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + return; + default: + assert(!"not reached"); + inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, op[0], fs_reg(0))); + inst->conditional_mod = BRW_CONDITIONAL_NZ; + this->fail = true; + return; + } + return; + } + + ir->condition->accept(this); + + fs_inst *inst = emit(fs_inst(BRW_OPCODE_IF, reg_null_d, this->result, fs_reg(0))); + inst->conditional_mod = BRW_CONDITIONAL_NZ; +} + +void fs_visitor::visit(ir_if *ir) { fs_inst *inst; @@ -1117,13 +1555,14 @@ fs_visitor::visit(ir_if *ir) */ this->base_ir = ir->condition; - /* Generate the condition into the condition code. */ - ir->condition->accept(this); - inst = emit(fs_inst(BRW_OPCODE_MOV, fs_reg(brw_null_reg()), this->result)); - inst->conditional_mod = BRW_CONDITIONAL_NZ; + if (intel->gen >= 6) { + emit_if_gen6(ir); + } else { + emit_bool_to_cond_code(ir->condition); - inst = emit(fs_inst(BRW_OPCODE_IF)); - inst->predicated = true; + inst = emit(fs_inst(BRW_OPCODE_IF)); + inst->predicated = true; + } foreach_iter(exec_list_iterator, iter, ir->then_instructions) { ir_instruction *ir = (ir_instruction *)iter.get(); @@ -1149,32 +1588,69 @@ fs_visitor::visit(ir_if *ir) void fs_visitor::visit(ir_loop *ir) { - assert(!ir->from); - assert(!ir->to); - assert(!ir->increment); - assert(!ir->counter); + fs_reg counter = reg_undef; + + if (ir->counter) { + this->base_ir = ir->counter; + ir->counter->accept(this); + counter = *(variable_storage(ir->counter)); + + if (ir->from) { + this->base_ir = ir->from; + ir->from->accept(this); + + emit(fs_inst(BRW_OPCODE_MOV, counter, this->result)); + } + } emit(fs_inst(BRW_OPCODE_DO)); - /* Start a safety counter. If the user messed up their loop - * counting, we don't want to hang the GPU. - */ - fs_reg max_iter = fs_reg(this, glsl_type::int_type); - emit(fs_inst(BRW_OPCODE_MOV, max_iter, fs_reg(10000))); + if (ir->to) { + this->base_ir = ir->to; + ir->to->accept(this); + + fs_inst *inst = emit(fs_inst(BRW_OPCODE_CMP, reg_null_d, + counter, this->result)); + switch (ir->cmp) { + case ir_binop_equal: + inst->conditional_mod = BRW_CONDITIONAL_Z; + break; + case ir_binop_nequal: + inst->conditional_mod = BRW_CONDITIONAL_NZ; + break; + case ir_binop_gequal: + inst->conditional_mod = BRW_CONDITIONAL_GE; + break; + case ir_binop_lequal: + inst->conditional_mod = BRW_CONDITIONAL_LE; + break; + case ir_binop_greater: + inst->conditional_mod = BRW_CONDITIONAL_G; + break; + case ir_binop_less: + inst->conditional_mod = BRW_CONDITIONAL_L; + break; + default: + assert(!"not reached: unknown loop condition"); + this->fail = true; + break; + } + + inst = emit(fs_inst(BRW_OPCODE_BREAK)); + inst->predicated = true; + } foreach_iter(exec_list_iterator, iter, ir->body_instructions) { ir_instruction *ir = (ir_instruction *)iter.get(); - fs_inst *inst; this->base_ir = ir; ir->accept(this); + } - /* Check the maximum loop iters counter. */ - inst = emit(fs_inst(BRW_OPCODE_ADD, max_iter, max_iter, fs_reg(-1))); - inst->conditional_mod = BRW_CONDITIONAL_Z; - - inst = emit(fs_inst(BRW_OPCODE_BREAK)); - inst->predicated = true; + if (ir->increment) { + this->base_ir = ir->increment; + ir->increment->accept(this); + emit(fs_inst(BRW_OPCODE_ADD, counter, counter, this->result)); } emit(fs_inst(BRW_OPCODE_WHILE)); @@ -1271,6 +1747,7 @@ fs_visitor::emit_dummy_fs() write = emit(fs_inst(FS_OPCODE_FB_WRITE, fs_reg(0), fs_reg(0))); + write->base_mrf = 0; } /* The register location here is relative to the start of the URB @@ -1280,22 +1757,19 @@ fs_visitor::emit_dummy_fs() struct brw_reg fs_visitor::interp_reg(int location, int channel) { - int regnr = location * 2 + channel / 2; + int regnr = urb_setup[location] * 2 + channel / 2; int stride = (channel & 1) * 4; + assert(urb_setup[location] != -1); + return brw_vec1_grf(regnr, stride); } /** Emits the interpolation for the varying inputs. */ void -fs_visitor::emit_interpolation() +fs_visitor::emit_interpolation_setup_gen4() { struct brw_reg g1_uw = retype(brw_vec1_grf(1, 0), BRW_REGISTER_TYPE_UW); - /* For now, the source regs for the setup URB data will be unset, - * since we don't know until codegen how many push constants we'll - * use, and therefore what the setup URB offset is. - */ - fs_reg src_reg = reg_undef; this->current_annotation = "compute pixel centers"; this->pixel_x = fs_reg(this, glsl_type::uint_type); @@ -1312,8 +1786,14 @@ fs_visitor::emit_interpolation() fs_reg(brw_imm_v(0x11001100)))); this->current_annotation = "compute pixel deltas from v0"; - this->delta_x = fs_reg(this, glsl_type::float_type); - this->delta_y = fs_reg(this, glsl_type::float_type); + if (brw->has_pln) { + this->delta_x = fs_reg(this, glsl_type::vec2_type); + this->delta_y = this->delta_x; + this->delta_y.reg_offset++; + } else { + this->delta_x = fs_reg(this, glsl_type::float_type); + this->delta_y = fs_reg(this, glsl_type::float_type); + } emit(fs_inst(BRW_OPCODE_ADD, this->delta_x, this->pixel_x, @@ -1321,97 +1801,148 @@ fs_visitor::emit_interpolation() emit(fs_inst(BRW_OPCODE_ADD, this->delta_y, this->pixel_y, - fs_reg(brw_vec1_grf(1, 1)))); + fs_reg(negate(brw_vec1_grf(1, 1))))); this->current_annotation = "compute pos.w and 1/pos.w"; - /* Compute wpos. Unlike many other varying inputs, we usually need it - * to produce 1/w, and the varying variable wouldn't show up. + /* Compute wpos.w. It's always in our setup, since it's needed to + * interpolate the other attributes. */ - fs_reg wpos = fs_reg(this, glsl_type::vec4_type); - this->interp_attrs[FRAG_ATTRIB_WPOS] = wpos; - emit(fs_inst(BRW_OPCODE_MOV, wpos, this->pixel_x)); /* FINISHME: ARB_fcc */ - wpos.reg_offset++; - emit(fs_inst(BRW_OPCODE_MOV, wpos, this->pixel_y)); /* FINISHME: ARB_fcc */ - wpos.reg_offset++; - emit(fs_inst(FS_OPCODE_LINTERP, wpos, this->delta_x, this->delta_y, - interp_reg(FRAG_ATTRIB_WPOS, 2))); - wpos.reg_offset++; - emit(fs_inst(FS_OPCODE_LINTERP, wpos, this->delta_x, this->delta_y, + this->wpos_w = fs_reg(this, glsl_type::float_type); + emit(fs_inst(FS_OPCODE_LINTERP, wpos_w, this->delta_x, this->delta_y, interp_reg(FRAG_ATTRIB_WPOS, 3))); - /* Compute the pixel W value from wpos.w. */ + /* Compute the pixel 1/W value from wpos.w. */ this->pixel_w = fs_reg(this, glsl_type::float_type); - emit(fs_inst(FS_OPCODE_RCP, this->pixel_w, wpos)); + emit_math(FS_OPCODE_RCP, this->pixel_w, wpos_w); + this->current_annotation = NULL; +} - /* FINISHME: gl_FrontFacing */ +/** Emits the interpolation for the varying inputs. */ +void +fs_visitor::emit_interpolation_setup_gen6() +{ + struct brw_reg g1_uw = retype(brw_vec1_grf(1, 0), BRW_REGISTER_TYPE_UW); - foreach_iter(exec_list_iterator, iter, *this->shader->ir) { - ir_instruction *ir = (ir_instruction *)iter.get(); - ir_variable *var = ir->as_variable(); + /* If the pixel centers end up used, the setup is the same as for gen4. */ + this->current_annotation = "compute pixel centers"; + fs_reg int_pixel_x = fs_reg(this, glsl_type::uint_type); + fs_reg int_pixel_y = fs_reg(this, glsl_type::uint_type); + int_pixel_x.type = BRW_REGISTER_TYPE_UW; + int_pixel_y.type = BRW_REGISTER_TYPE_UW; + emit(fs_inst(BRW_OPCODE_ADD, + int_pixel_x, + fs_reg(stride(suboffset(g1_uw, 4), 2, 4, 0)), + fs_reg(brw_imm_v(0x10101010)))); + emit(fs_inst(BRW_OPCODE_ADD, + int_pixel_y, + fs_reg(stride(suboffset(g1_uw, 5), 2, 4, 0)), + fs_reg(brw_imm_v(0x11001100)))); - if (!var) - continue; + /* As of gen6, we can no longer mix float and int sources. We have + * to turn the integer pixel centers into floats for their actual + * use. + */ + this->pixel_x = fs_reg(this, glsl_type::float_type); + this->pixel_y = fs_reg(this, glsl_type::float_type); + emit(fs_inst(BRW_OPCODE_MOV, this->pixel_x, int_pixel_x)); + emit(fs_inst(BRW_OPCODE_MOV, this->pixel_y, int_pixel_y)); - if (var->mode != ir_var_in) - continue; + this->current_annotation = "compute 1/pos.w"; + this->wpos_w = fs_reg(brw_vec8_grf(c->key.source_w_reg, 0)); + this->pixel_w = fs_reg(this, glsl_type::float_type); + emit_math(FS_OPCODE_RCP, this->pixel_w, wpos_w); - /* If it's already set up (WPOS), skip. */ - if (var->location == 0) - continue; + this->delta_x = fs_reg(brw_vec8_grf(2, 0)); + this->delta_y = fs_reg(brw_vec8_grf(3, 0)); - this->current_annotation = talloc_asprintf(this->mem_ctx, - "interpolate %s " - "(FRAG_ATTRIB[%d])", - var->name, - var->location); - emit_pinterp(var->location); - } this->current_annotation = NULL; } void -fs_visitor::emit_pinterp(int location) +fs_visitor::emit_fb_writes() { - fs_reg interp_attr = fs_reg(this, glsl_type::vec4_type); - this->interp_attrs[location] = interp_attr; + this->current_annotation = "FB write header"; + GLboolean header_present = GL_TRUE; + int nr = 0; - for (unsigned int i = 0; i < 4; i++) { - struct brw_reg interp = interp_reg(location, i); - emit(fs_inst(FS_OPCODE_LINTERP, - interp_attr, - this->delta_x, - this->delta_y, - fs_reg(interp))); - interp_attr.reg_offset++; + if (intel->gen >= 6 && + !this->kill_emitted && + c->key.nr_color_regions == 1) { + header_present = false; } - interp_attr.reg_offset -= 4; - for (unsigned int i = 0; i < 4; i++) { - emit(fs_inst(BRW_OPCODE_MUL, - interp_attr, - interp_attr, - this->pixel_w)); - interp_attr.reg_offset++; + if (header_present) { + /* m0, m1 header */ + nr += 2; } -} -void -fs_visitor::emit_fb_writes() -{ - this->current_annotation = "FB write"; + if (c->key.aa_dest_stencil_reg) { + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, nr++), + fs_reg(brw_vec8_grf(c->key.aa_dest_stencil_reg, 0)))); + } + + /* Reserve space for color. It'll be filled in per MRT below. */ + int color_mrf = nr; + nr += 4; + + if (c->key.source_depth_to_render_target) { + if (c->key.computes_depth) { + /* Hand over gl_FragDepth. */ + assert(this->frag_depth); + fs_reg depth = *(variable_storage(this->frag_depth)); + + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, nr++), depth)); + } else { + /* Pass through the payload depth. */ + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, nr++), + fs_reg(brw_vec8_grf(c->key.source_depth_reg, 0)))); + } + } + + if (c->key.dest_depth_reg) { + emit(fs_inst(BRW_OPCODE_MOV, fs_reg(MRF, nr++), + fs_reg(brw_vec8_grf(c->key.dest_depth_reg, 0)))); + } + + fs_reg color = reg_undef; + if (this->frag_color) + color = *(variable_storage(this->frag_color)); + else if (this->frag_data) + color = *(variable_storage(this->frag_data)); + + for (int target = 0; target < c->key.nr_color_regions; target++) { + this->current_annotation = talloc_asprintf(this->mem_ctx, + "FB write target %d", + target); + if (this->frag_color || this->frag_data) { + for (int i = 0; i < 4; i++) { + emit(fs_inst(BRW_OPCODE_MOV, + fs_reg(MRF, color_mrf + i), + color)); + color.reg_offset++; + } + } - assert(this->frag_color || !"FINISHME: MRT"); - fs_reg color = *(variable_storage(this->frag_color)); + if (this->frag_color) + color.reg_offset -= 4; - for (int i = 0; i < 4; i++) { - emit(fs_inst(BRW_OPCODE_MOV, - fs_reg(MRF, 2 + i), - color)); - color.reg_offset++; + fs_inst *inst = emit(fs_inst(FS_OPCODE_FB_WRITE, + reg_undef, reg_undef)); + inst->target = target; + inst->base_mrf = 0; + inst->mlen = nr; + if (target == c->key.nr_color_regions - 1) + inst->eot = true; + inst->header_present = header_present; } - emit(fs_inst(FS_OPCODE_FB_WRITE, - fs_reg(0), - fs_reg(0))); + if (c->key.nr_color_regions == 0) { + fs_inst *inst = emit(fs_inst(FS_OPCODE_FB_WRITE, + reg_undef, reg_undef)); + inst->base_mrf = 0; + inst->mlen = nr; + inst->eot = true; + inst->header_present = header_present; + } this->current_annotation = NULL; } @@ -1419,8 +1950,8 @@ fs_visitor::emit_fb_writes() void fs_visitor::generate_fb_write(fs_inst *inst) { - GLboolean eot = 1; /* FINISHME: MRT */ - /* FINISHME: AADS */ + GLboolean eot = inst->eot; + struct brw_reg implied_header; /* Header is 2 regs, g0 and g1 are the contents. g0 will be implied * move, here's g1. @@ -1428,20 +1959,33 @@ fs_visitor::generate_fb_write(fs_inst *inst) brw_push_insn_state(p); brw_set_mask_control(p, BRW_MASK_DISABLE); brw_set_compression_control(p, BRW_COMPRESSION_NONE); - brw_MOV(p, - brw_message_reg(1), - brw_vec8_grf(1, 0)); - brw_pop_insn_state(p); - int nr = 2 + 4; + if (inst->header_present) { + if (intel->gen >= 6) { + brw_MOV(p, + brw_message_reg(inst->base_mrf), + brw_vec8_grf(0, 0)); + implied_header = brw_null_reg(); + } else { + implied_header = retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW); + } + + brw_MOV(p, + brw_message_reg(inst->base_mrf + 1), + brw_vec8_grf(1, 0)); + } else { + implied_header = brw_null_reg(); + } + + brw_pop_insn_state(p); brw_fb_WRITE(p, 8, /* dispatch_width */ retype(vec8(brw_null_reg()), BRW_REGISTER_TYPE_UW), - 0, /* base MRF */ - retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW), - 0, /* FINISHME: MRT target */ - nr, + inst->base_mrf, + implied_header, + inst->target, + inst->mlen, 0, eot); } @@ -1501,26 +2045,41 @@ fs_visitor::generate_math(fs_inst *inst, break; } - if (inst->opcode == FS_OPCODE_POW) { - brw_MOV(p, brw_message_reg(3), src[1]); - } + if (intel->gen >= 6) { + assert(inst->mlen == 0); - brw_math(p, dst, - op, - inst->saturate ? BRW_MATH_SATURATE_SATURATE : - BRW_MATH_SATURATE_NONE, - 2, src[0], - BRW_MATH_DATA_VECTOR, - BRW_MATH_PRECISION_FULL); + if (inst->opcode == FS_OPCODE_POW) { + brw_math2(p, dst, op, src[0], src[1]); + } else { + brw_math(p, dst, + op, + inst->saturate ? BRW_MATH_SATURATE_SATURATE : + BRW_MATH_SATURATE_NONE, + 0, src[0], + BRW_MATH_DATA_VECTOR, + BRW_MATH_PRECISION_FULL); + } + } else { + assert(inst->mlen >= 1); + + brw_math(p, dst, + op, + inst->saturate ? BRW_MATH_SATURATE_SATURATE : + BRW_MATH_SATURATE_NONE, + inst->base_mrf, src[0], + BRW_MATH_DATA_VECTOR, + BRW_MATH_PRECISION_FULL); + } } void -fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src) +fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst) { int msg_type = -1; int rlen = 4; + uint32_t simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD8; - if (intel->gen == 5) { + if (intel->gen >= 5) { switch (inst->opcode) { case FS_OPCODE_TEX: if (inst->shadow_compare) { @@ -1543,40 +2102,45 @@ fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src) /* Note that G45 and older determines shadow compare and dispatch width * from message length for most messages. */ + msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE; if (inst->shadow_compare) { - msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE; + assert(inst->mlen == 6); } else { - msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE; + assert(inst->mlen <= 4); } + break; case FS_OPCODE_TXB: if (inst->shadow_compare) { - assert(!"FINISHME: shadow compare with bias."); - msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS; + assert(inst->mlen == 6); + msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE; } else { + assert(inst->mlen == 9); msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS; - rlen = 8; + simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16; } break; } } assert(msg_type != -1); - /* g0 header. */ - src.nr--; + if (simd_mode == BRW_SAMPLER_SIMD_MODE_SIMD16) { + rlen = 8; + dst = vec16(dst); + } brw_SAMPLE(p, retype(dst, BRW_REGISTER_TYPE_UW), - src.nr, + inst->base_mrf, retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW), SURF_INDEX_TEXTURE(inst->sampler), inst->sampler, WRITEMASK_XYZW, msg_type, rlen, - inst->mlen + 1, + inst->mlen, 0, 1, - BRW_SAMPLER_SIMD_MODE_SIMD8); + simd_mode); } @@ -1643,23 +2207,24 @@ fs_visitor::generate_ddy(fs_inst *inst, struct brw_reg dst, struct brw_reg src) } void -fs_visitor::generate_discard(fs_inst *inst) +fs_visitor::generate_discard_not(fs_inst *inst, struct brw_reg mask) { - struct brw_reg g0 = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW); brw_push_insn_state(p); brw_set_mask_control(p, BRW_MASK_DISABLE); - brw_NOT(p, c->emit_mask_reg, brw_mask_reg(1)); /* IMASK */ - brw_AND(p, g0, c->emit_mask_reg, g0); + brw_NOT(p, mask, brw_mask_reg(1)); /* IMASK */ brw_pop_insn_state(p); } -static void -trivial_assign_reg(int header_size, fs_reg *reg) +void +fs_visitor::generate_discard_and(fs_inst *inst, struct brw_reg mask) { - if (reg->file == GRF && reg->reg != 0) { - reg->hw_reg = header_size + reg->reg - 1 + reg->reg_offset; - reg->reg = 0; - } + struct brw_reg g0 = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW); + mask = brw_uw1_reg(mask.file, mask.nr, 0); + + brw_push_insn_state(p); + brw_set_mask_control(p, BRW_MASK_DISABLE); + brw_AND(p, g0, mask, g0); + brw_pop_insn_state(p); } void @@ -1668,14 +2233,6 @@ fs_visitor::assign_curb_setup() c->prog_data.first_curbe_grf = c->key.nr_payload_regs; c->prog_data.curb_read_length = ALIGN(c->prog_data.nr_params, 8) / 8; - if (intel->gen == 5 && (c->prog_data.first_curbe_grf + - c->prog_data.curb_read_length) & 1) { - /* Align the start of the interpolation coefficients so that we can use - * the PLN instruction. - */ - c->prog_data.first_curbe_grf++; - } - /* Map the offsets in the UNIFORM file to fixed HW regs. */ foreach_iter(exec_list_iterator, iter, this->instructions) { fs_inst *inst = (fs_inst *)iter.get(); @@ -1695,28 +2252,50 @@ fs_visitor::assign_curb_setup() } void -fs_visitor::assign_urb_setup() +fs_visitor::calculate_urb_setup() { - int urb_start = c->prog_data.first_curbe_grf + c->prog_data.curb_read_length; - int interp_reg_nr[FRAG_ATTRIB_MAX]; - - c->prog_data.urb_read_length = 0; + for (unsigned int i = 0; i < FRAG_ATTRIB_MAX; i++) { + urb_setup[i] = -1; + } + int urb_next = 0; /* Figure out where each of the incoming setup attributes lands. */ - for (unsigned int i = 0; i < FRAG_ATTRIB_MAX; i++) { - interp_reg_nr[i] = -1; + if (intel->gen >= 6) { + for (unsigned int i = 0; i < FRAG_ATTRIB_MAX; i++) { + if (brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(i)) { + urb_setup[i] = urb_next++; + } + } + } else { + /* FINISHME: The sf doesn't map VS->FS inputs for us very well. */ + for (unsigned int i = 0; i < VERT_RESULT_MAX; i++) { + if (c->key.vp_outputs_written & BITFIELD64_BIT(i)) { + int fp_index; + + if (i >= VERT_RESULT_VAR0) + fp_index = i - (VERT_RESULT_VAR0 - FRAG_ATTRIB_VAR0); + else if (i <= VERT_RESULT_TEX7) + fp_index = i; + else + fp_index = -1; + + if (fp_index >= 0) + urb_setup[fp_index] = urb_next++; + } + } + } - if (i != FRAG_ATTRIB_WPOS && - !(brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(i))) - continue; + /* Each attribute is 4 setup channels, each of which is half a reg. */ + c->prog_data.urb_read_length = urb_next * 2; +} - /* Each attribute is 4 setup channels, each of which is half a reg. */ - interp_reg_nr[i] = urb_start + c->prog_data.urb_read_length; - c->prog_data.urb_read_length += 2; - } +void +fs_visitor::assign_urb_setup() +{ + int urb_start = c->prog_data.first_curbe_grf + c->prog_data.curb_read_length; - /* Map the register numbers for FS_OPCODE_LINTERP so that it uses - * the correct setup input. + /* Offset all the urb_setup[] index by the actual position of the + * setup regs, now that the location of the constants has been chosen. */ foreach_iter(exec_list_iterator, iter, this->instructions) { fs_inst *inst = (fs_inst *)iter.get(); @@ -1726,35 +2305,740 @@ fs_visitor::assign_urb_setup() assert(inst->src[2].file == FIXED_HW_REG); - int location = inst->src[2].fixed_hw_reg.nr / 2; - assert(interp_reg_nr[location] != -1); - inst->src[2].fixed_hw_reg.nr = (interp_reg_nr[location] + - (inst->src[2].fixed_hw_reg.nr & 1)); + inst->src[2].fixed_hw_reg.nr += urb_start; } this->first_non_payload_grf = urb_start + c->prog_data.urb_read_length; } +static void +assign_reg(int *reg_hw_locations, fs_reg *reg) +{ + if (reg->file == GRF && reg->reg != 0) { + assert(reg->reg_offset >= 0); + reg->hw_reg = reg_hw_locations[reg->reg] + reg->reg_offset; + reg->reg = 0; + } +} + void -fs_visitor::assign_regs() +fs_visitor::assign_regs_trivial() { - int header_size = this->first_non_payload_grf; int last_grf = 0; + int hw_reg_mapping[this->virtual_grf_next]; + int i; + + hw_reg_mapping[0] = 0; + hw_reg_mapping[1] = this->first_non_payload_grf; + for (i = 2; i < this->virtual_grf_next; i++) { + hw_reg_mapping[i] = (hw_reg_mapping[i - 1] + + this->virtual_grf_sizes[i - 1]); + } + last_grf = hw_reg_mapping[i - 1] + this->virtual_grf_sizes[i - 1]; - /* FINISHME: trivial assignment of register numbers */ foreach_iter(exec_list_iterator, iter, this->instructions) { fs_inst *inst = (fs_inst *)iter.get(); - trivial_assign_reg(header_size, &inst->dst); - trivial_assign_reg(header_size, &inst->src[0]); - trivial_assign_reg(header_size, &inst->src[1]); + assign_reg(hw_reg_mapping, &inst->dst); + assign_reg(hw_reg_mapping, &inst->src[0]); + assign_reg(hw_reg_mapping, &inst->src[1]); + } + + this->grf_used = last_grf + 1; +} + +void +fs_visitor::assign_regs() +{ + int last_grf = 0; + int hw_reg_mapping[this->virtual_grf_next + 1]; + int base_reg_count = BRW_MAX_GRF - this->first_non_payload_grf; + int class_sizes[base_reg_count]; + int class_count = 0; + int aligned_pair_class = -1; + + /* Set up the register classes. + * + * The base registers store a scalar value. For texture samples, + * we get virtual GRFs composed of 4 contiguous hw register. For + * structures and arrays, we store them as contiguous larger things + * than that, though we should be able to do better most of the + * time. + */ + class_sizes[class_count++] = 1; + if (brw->has_pln && intel->gen < 6) { + /* Always set up the (unaligned) pairs for gen5, so we can find + * them for making the aligned pair class. + */ + class_sizes[class_count++] = 2; + } + for (int r = 1; r < this->virtual_grf_next; r++) { + int i; + + for (i = 0; i < class_count; i++) { + if (class_sizes[i] == this->virtual_grf_sizes[r]) + break; + } + if (i == class_count) { + if (this->virtual_grf_sizes[r] >= base_reg_count) { + fprintf(stderr, "Object too large to register allocate.\n"); + this->fail = true; + } + + class_sizes[class_count++] = this->virtual_grf_sizes[r]; + } + } + + int ra_reg_count = 0; + int class_base_reg[class_count]; + int class_reg_count[class_count]; + int classes[class_count + 1]; + + for (int i = 0; i < class_count; i++) { + class_base_reg[i] = ra_reg_count; + class_reg_count[i] = base_reg_count - (class_sizes[i] - 1); + ra_reg_count += class_reg_count[i]; + } + + struct ra_regs *regs = ra_alloc_reg_set(ra_reg_count); + for (int i = 0; i < class_count; i++) { + classes[i] = ra_alloc_reg_class(regs); + + for (int i_r = 0; i_r < class_reg_count[i]; i_r++) { + ra_class_add_reg(regs, classes[i], class_base_reg[i] + i_r); + } + + /* Add conflicts between our contiguous registers aliasing + * base regs and other register classes' contiguous registers + * that alias base regs, or the base regs themselves for classes[0]. + */ + for (int c = 0; c <= i; c++) { + for (int i_r = 0; i_r < class_reg_count[i]; i_r++) { + for (int c_r = MAX2(0, i_r - (class_sizes[c] - 1)); + c_r < MIN2(class_reg_count[c], i_r + class_sizes[i]); + c_r++) { + + if (0) { + printf("%d/%d conflicts %d/%d\n", + class_sizes[i], this->first_non_payload_grf + i_r, + class_sizes[c], this->first_non_payload_grf + c_r); + } + + ra_add_reg_conflict(regs, + class_base_reg[i] + i_r, + class_base_reg[c] + c_r); + } + } + } + } + + /* Add a special class for aligned pairs, which we'll put delta_x/y + * in on gen5 so that we can do PLN. + */ + if (brw->has_pln && intel->gen < 6) { + int reg_count = (base_reg_count - 1) / 2; + int unaligned_pair_class = 1; + assert(class_sizes[unaligned_pair_class] == 2); + + aligned_pair_class = class_count; + classes[aligned_pair_class] = ra_alloc_reg_class(regs); + class_sizes[aligned_pair_class] = 2; + class_base_reg[aligned_pair_class] = 0; + class_reg_count[aligned_pair_class] = 0; + int start = (this->first_non_payload_grf & 1) ? 1 : 0; + + for (int i = 0; i < reg_count; i++) { + ra_class_add_reg(regs, classes[aligned_pair_class], + class_base_reg[unaligned_pair_class] + i * 2 + start); + } + class_count++; + } + + ra_set_finalize(regs); + + struct ra_graph *g = ra_alloc_interference_graph(regs, + this->virtual_grf_next); + /* Node 0 is just a placeholder to keep virtual_grf[] mapping 1:1 + * with nodes. + */ + ra_set_node_class(g, 0, classes[0]); + + for (int i = 1; i < this->virtual_grf_next; i++) { + for (int c = 0; c < class_count; c++) { + if (class_sizes[c] == this->virtual_grf_sizes[i]) { + if (aligned_pair_class >= 0 && + this->delta_x.reg == i) { + ra_set_node_class(g, i, classes[aligned_pair_class]); + } else { + ra_set_node_class(g, i, classes[c]); + } + break; + } + } + + for (int j = 1; j < i; j++) { + if (virtual_grf_interferes(i, j)) { + ra_add_node_interference(g, i, j); + } + } + } + + /* FINISHME: Handle spilling */ + if (!ra_allocate_no_spills(g)) { + fprintf(stderr, "Failed to allocate registers.\n"); + this->fail = true; + return; + } + + /* Get the chosen virtual registers for each node, and map virtual + * regs in the register classes back down to real hardware reg + * numbers. + */ + hw_reg_mapping[0] = 0; /* unused */ + for (int i = 1; i < this->virtual_grf_next; i++) { + int reg = ra_get_node_reg(g, i); + int hw_reg = -1; + + for (int c = 0; c < class_count; c++) { + if (reg >= class_base_reg[c] && + reg < class_base_reg[c] + class_reg_count[c]) { + hw_reg = reg - class_base_reg[c]; + break; + } + } + + assert(hw_reg >= 0); + hw_reg_mapping[i] = this->first_non_payload_grf + hw_reg; + last_grf = MAX2(last_grf, + hw_reg_mapping[i] + this->virtual_grf_sizes[i] - 1); + } + + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); - last_grf = MAX2(last_grf, inst->dst.hw_reg); - last_grf = MAX2(last_grf, inst->src[0].hw_reg); - last_grf = MAX2(last_grf, inst->src[1].hw_reg); + assign_reg(hw_reg_mapping, &inst->dst); + assign_reg(hw_reg_mapping, &inst->src[0]); + assign_reg(hw_reg_mapping, &inst->src[1]); } this->grf_used = last_grf + 1; + + talloc_free(g); + talloc_free(regs); +} + +/** + * Split large virtual GRFs into separate components if we can. + * + * This is mostly duplicated with what brw_fs_vector_splitting does, + * but that's really conservative because it's afraid of doing + * splitting that doesn't result in real progress after the rest of + * the optimization phases, which would cause infinite looping in + * optimization. We can do it once here, safely. This also has the + * opportunity to split interpolated values, or maybe even uniforms, + * which we don't have at the IR level. + * + * We want to split, because virtual GRFs are what we register + * allocate and spill (due to contiguousness requirements for some + * instructions), and they're what we naturally generate in the + * codegen process, but most virtual GRFs don't actually need to be + * contiguous sets of GRFs. If we split, we'll end up with reduced + * live intervals and better dead code elimination and coalescing. + */ +void +fs_visitor::split_virtual_grfs() +{ + int num_vars = this->virtual_grf_next; + bool split_grf[num_vars]; + int new_virtual_grf[num_vars]; + + /* Try to split anything > 0 sized. */ + for (int i = 0; i < num_vars; i++) { + if (this->virtual_grf_sizes[i] != 1) + split_grf[i] = true; + else + split_grf[i] = false; + } + + if (brw->has_pln) { + /* PLN opcodes rely on the delta_xy being contiguous. */ + split_grf[this->delta_x.reg] = false; + } + + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); + + /* Texturing produces 4 contiguous registers, so no splitting. */ + if ((inst->opcode == FS_OPCODE_TEX || + inst->opcode == FS_OPCODE_TXB || + inst->opcode == FS_OPCODE_TXL) && + inst->dst.file == GRF) { + split_grf[inst->dst.reg] = false; + } + } + + /* Allocate new space for split regs. Note that the virtual + * numbers will be contiguous. + */ + for (int i = 0; i < num_vars; i++) { + if (split_grf[i]) { + new_virtual_grf[i] = virtual_grf_alloc(1); + for (int j = 2; j < this->virtual_grf_sizes[i]; j++) { + int reg = virtual_grf_alloc(1); + assert(reg == new_virtual_grf[i] + j - 1); + } + this->virtual_grf_sizes[i] = 1; + } + } + + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); + + if (inst->dst.file == GRF && + split_grf[inst->dst.reg] && + inst->dst.reg_offset != 0) { + inst->dst.reg = (new_virtual_grf[inst->dst.reg] + + inst->dst.reg_offset - 1); + inst->dst.reg_offset = 0; + } + for (int i = 0; i < 3; i++) { + if (inst->src[i].file == GRF && + split_grf[inst->src[i].reg] && + inst->src[i].reg_offset != 0) { + inst->src[i].reg = (new_virtual_grf[inst->src[i].reg] + + inst->src[i].reg_offset - 1); + inst->src[i].reg_offset = 0; + } + } + } +} + +void +fs_visitor::calculate_live_intervals() +{ + int num_vars = this->virtual_grf_next; + int *def = talloc_array(mem_ctx, int, num_vars); + int *use = talloc_array(mem_ctx, int, num_vars); + int loop_depth = 0; + int loop_start = 0; + + for (int i = 0; i < num_vars; i++) { + def[i] = 1 << 30; + use[i] = -1; + } + + int ip = 0; + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); + + if (inst->opcode == BRW_OPCODE_DO) { + if (loop_depth++ == 0) + loop_start = ip; + } else if (inst->opcode == BRW_OPCODE_WHILE) { + loop_depth--; + + if (loop_depth == 0) { + /* FINISHME: + * + * Patches up any vars marked for use within the loop as + * live until the end. This is conservative, as there + * will often be variables defined and used inside the + * loop but dead at the end of the loop body. + */ + for (int i = 0; i < num_vars; i++) { + if (use[i] == loop_start) { + use[i] = ip; + } + } + } + } else { + int eip = ip; + + if (loop_depth) + eip = loop_start; + + for (unsigned int i = 0; i < 3; i++) { + if (inst->src[i].file == GRF && inst->src[i].reg != 0) { + use[inst->src[i].reg] = MAX2(use[inst->src[i].reg], eip); + } + } + if (inst->dst.file == GRF && inst->dst.reg != 0) { + def[inst->dst.reg] = MIN2(def[inst->dst.reg], eip); + } + } + + ip++; + } + + talloc_free(this->virtual_grf_def); + talloc_free(this->virtual_grf_use); + this->virtual_grf_def = def; + this->virtual_grf_use = use; +} + +/** + * Attempts to move immediate constants into the immediate + * constant slot of following instructions. + * + * Immediate constants are a bit tricky -- they have to be in the last + * operand slot, you can't do abs/negate on them, + */ + +bool +fs_visitor::propagate_constants() +{ + bool progress = false; + + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); + + if (inst->opcode != BRW_OPCODE_MOV || + inst->predicated || + inst->dst.file != GRF || inst->src[0].file != IMM || + inst->dst.type != inst->src[0].type) + continue; + + /* Don't bother with cases where we should have had the + * operation on the constant folded in GLSL already. + */ + if (inst->saturate) + continue; + + /* Found a move of a constant to a GRF. Find anything else using the GRF + * before it's written, and replace it with the constant if we can. + */ + exec_list_iterator scan_iter = iter; + scan_iter.next(); + for (; scan_iter.has_next(); scan_iter.next()) { + fs_inst *scan_inst = (fs_inst *)scan_iter.get(); + + if (scan_inst->opcode == BRW_OPCODE_DO || + scan_inst->opcode == BRW_OPCODE_WHILE || + scan_inst->opcode == BRW_OPCODE_ELSE || + scan_inst->opcode == BRW_OPCODE_ENDIF) { + break; + } + + for (int i = 2; i >= 0; i--) { + if (scan_inst->src[i].file != GRF || + scan_inst->src[i].reg != inst->dst.reg || + scan_inst->src[i].reg_offset != inst->dst.reg_offset) + continue; + + /* Don't bother with cases where we should have had the + * operation on the constant folded in GLSL already. + */ + if (scan_inst->src[i].negate || scan_inst->src[i].abs) + continue; + + switch (scan_inst->opcode) { + case BRW_OPCODE_MOV: + scan_inst->src[i] = inst->src[0]; + progress = true; + break; + + case BRW_OPCODE_MUL: + case BRW_OPCODE_ADD: + if (i == 1) { + scan_inst->src[i] = inst->src[0]; + progress = true; + } else if (i == 0 && scan_inst->src[1].file != IMM) { + /* Fit this constant in by commuting the operands */ + scan_inst->src[0] = scan_inst->src[1]; + scan_inst->src[1] = inst->src[0]; + } + break; + case BRW_OPCODE_CMP: + if (i == 1) { + scan_inst->src[i] = inst->src[0]; + progress = true; + } + } + } + + if (scan_inst->dst.file == GRF && + scan_inst->dst.reg == inst->dst.reg && + (scan_inst->dst.reg_offset == inst->dst.reg_offset || + scan_inst->opcode == FS_OPCODE_TEX)) { + break; + } + } + } + + return progress; +} +/** + * Must be called after calculate_live_intervales() to remove unused + * writes to registers -- register allocation will fail otherwise + * because something deffed but not used won't be considered to + * interfere with other regs. + */ +bool +fs_visitor::dead_code_eliminate() +{ + bool progress = false; + int num_vars = this->virtual_grf_next; + bool dead[num_vars]; + + for (int i = 0; i < num_vars; i++) { + dead[i] = this->virtual_grf_def[i] >= this->virtual_grf_use[i]; + + if (dead[i]) { + /* Mark off its interval so it won't interfere with anything. */ + this->virtual_grf_def[i] = -1; + this->virtual_grf_use[i] = -1; + } + } + + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); + + if (inst->dst.file == GRF && dead[inst->dst.reg]) { + inst->remove(); + progress = true; + } + } + + return progress; +} + +bool +fs_visitor::register_coalesce() +{ + bool progress = false; + + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); + + if (inst->opcode != BRW_OPCODE_MOV || + inst->predicated || + inst->saturate || + inst->dst.file != GRF || inst->src[0].file != GRF || + inst->dst.type != inst->src[0].type) + continue; + + /* Found a move of a GRF to a GRF. Let's see if we can coalesce + * them: check for no writes to either one until the exit of the + * program. + */ + bool interfered = false; + exec_list_iterator scan_iter = iter; + scan_iter.next(); + for (; scan_iter.has_next(); scan_iter.next()) { + fs_inst *scan_inst = (fs_inst *)scan_iter.get(); + + if (scan_inst->opcode == BRW_OPCODE_DO || + scan_inst->opcode == BRW_OPCODE_WHILE || + scan_inst->opcode == BRW_OPCODE_ENDIF) { + interfered = true; + iter = scan_iter; + break; + } + + if (scan_inst->dst.file == GRF) { + if (scan_inst->dst.reg == inst->dst.reg && + (scan_inst->dst.reg_offset == inst->dst.reg_offset || + scan_inst->opcode == FS_OPCODE_TEX)) { + interfered = true; + break; + } + if (scan_inst->dst.reg == inst->src[0].reg && + (scan_inst->dst.reg_offset == inst->src[0].reg_offset || + scan_inst->opcode == FS_OPCODE_TEX)) { + interfered = true; + break; + } + } + } + if (interfered) { + continue; + } + + /* Update live interval so we don't have to recalculate. */ + this->virtual_grf_use[inst->src[0].reg] = MAX2(virtual_grf_use[inst->src[0].reg], + virtual_grf_use[inst->dst.reg]); + + /* Rewrite the later usage to point at the source of the move to + * be removed. + */ + for (exec_list_iterator scan_iter = iter; scan_iter.has_next(); + scan_iter.next()) { + fs_inst *scan_inst = (fs_inst *)scan_iter.get(); + + for (int i = 0; i < 3; i++) { + if (scan_inst->src[i].file == GRF && + scan_inst->src[i].reg == inst->dst.reg && + scan_inst->src[i].reg_offset == inst->dst.reg_offset) { + scan_inst->src[i].reg = inst->src[0].reg; + scan_inst->src[i].reg_offset = inst->src[0].reg_offset; + scan_inst->src[i].abs |= inst->src[0].abs; + scan_inst->src[i].negate ^= inst->src[0].negate; + } + } + } + + inst->remove(); + progress = true; + } + + return progress; +} + + +bool +fs_visitor::compute_to_mrf() +{ + bool progress = false; + int next_ip = 0; + + foreach_iter(exec_list_iterator, iter, this->instructions) { + fs_inst *inst = (fs_inst *)iter.get(); + + int ip = next_ip; + next_ip++; + + if (inst->opcode != BRW_OPCODE_MOV || + inst->predicated || + inst->dst.file != MRF || inst->src[0].file != GRF || + inst->dst.type != inst->src[0].type || + inst->src[0].abs || inst->src[0].negate) + continue; + + /* Can't compute-to-MRF this GRF if someone else was going to + * read it later. + */ + if (this->virtual_grf_use[inst->src[0].reg] > ip) + continue; + + /* Found a move of a GRF to a MRF. Let's see if we can go + * rewrite the thing that made this GRF to write into the MRF. + */ + bool found = false; + fs_inst *scan_inst; + for (scan_inst = (fs_inst *)inst->prev; + scan_inst->prev != NULL; + scan_inst = (fs_inst *)scan_inst->prev) { + /* We don't handle flow control here. Most computation of + * values that end up in MRFs are shortly before the MRF + * write anyway. + */ + if (scan_inst->opcode == BRW_OPCODE_DO || + scan_inst->opcode == BRW_OPCODE_WHILE || + scan_inst->opcode == BRW_OPCODE_ENDIF) { + break; + } + + /* You can't read from an MRF, so if someone else reads our + * MRF's source GRF that we wanted to rewrite, that stops us. + */ + bool interfered = false; + for (int i = 0; i < 3; i++) { + if (scan_inst->src[i].file == GRF && + scan_inst->src[i].reg == inst->src[0].reg && + scan_inst->src[i].reg_offset == inst->src[0].reg_offset) { + interfered = true; + } + } + if (interfered) + break; + + if (scan_inst->dst.file == MRF && + scan_inst->dst.hw_reg == inst->dst.hw_reg) { + /* Somebody else wrote our MRF here, so we can't can't + * compute-to-MRF before that. + */ + break; + } + + if (scan_inst->mlen > 0) { + /* Found a SEND instruction, which will do some amount of + * implied write that may overwrite our MRF that we were + * hoping to compute-to-MRF somewhere above it. Nothing + * we have implied-writes more than 2 MRFs from base_mrf, + * though. + */ + int implied_write_len = MIN2(scan_inst->mlen, 2); + if (inst->dst.hw_reg >= scan_inst->base_mrf && + inst->dst.hw_reg < scan_inst->base_mrf + implied_write_len) { + break; + } + } + + if (scan_inst->dst.file == GRF && + scan_inst->dst.reg == inst->src[0].reg) { + /* Found the last thing to write our reg we want to turn + * into a compute-to-MRF. + */ + + if (scan_inst->opcode == FS_OPCODE_TEX) { + /* texturing writes several continuous regs, so we can't + * compute-to-mrf that. + */ + break; + } + + /* If it's predicated, it (probably) didn't populate all + * the channels. + */ + if (scan_inst->predicated) + break; + + /* SEND instructions can't have MRF as a destination. */ + if (scan_inst->mlen) + break; + + if (intel->gen >= 6) { + /* gen6 math instructions must have the destination be + * GRF, so no compute-to-MRF for them. + */ + if (scan_inst->opcode == FS_OPCODE_RCP || + scan_inst->opcode == FS_OPCODE_RSQ || + scan_inst->opcode == FS_OPCODE_SQRT || + scan_inst->opcode == FS_OPCODE_EXP2 || + scan_inst->opcode == FS_OPCODE_LOG2 || + scan_inst->opcode == FS_OPCODE_SIN || + scan_inst->opcode == FS_OPCODE_COS || + scan_inst->opcode == FS_OPCODE_POW) { + break; + } + } + + if (scan_inst->dst.reg_offset == inst->src[0].reg_offset) { + /* Found the creator of our MRF's source value. */ + found = true; + break; + } + } + } + if (found) { + scan_inst->dst.file = MRF; + scan_inst->dst.hw_reg = inst->dst.hw_reg; + scan_inst->saturate |= inst->saturate; + inst->remove(); + progress = true; + } + } + + return progress; +} + +bool +fs_visitor::virtual_grf_interferes(int a, int b) +{ + int start = MAX2(this->virtual_grf_def[a], this->virtual_grf_def[b]); + int end = MIN2(this->virtual_grf_use[a], this->virtual_grf_use[b]); + + /* For dead code, just check if the def interferes with the other range. */ + if (this->virtual_grf_use[a] == -1) { + return (this->virtual_grf_def[a] >= this->virtual_grf_def[b] && + this->virtual_grf_def[a] < this->virtual_grf_use[b]); + } + if (this->virtual_grf_use[b] == -1) { + return (this->virtual_grf_def[b] >= this->virtual_grf_def[a] && + this->virtual_grf_def[b] < this->virtual_grf_use[a]); + } + + return start < end; } static struct brw_reg brw_reg_from_fs_reg(fs_reg *reg) @@ -1846,6 +3130,9 @@ fs_visitor::generate_code() case BRW_OPCODE_RNDD: brw_RNDD(p, dst, src[0]); break; + case BRW_OPCODE_RNDE: + brw_RNDE(p, dst, src[0]); + break; case BRW_OPCODE_RNDZ: brw_RNDZ(p, dst, src[0]); break; @@ -1859,6 +3146,18 @@ fs_visitor::generate_code() case BRW_OPCODE_XOR: brw_XOR(p, dst, src[0], src[1]); break; + case BRW_OPCODE_NOT: + brw_NOT(p, dst, src[0]); + break; + case BRW_OPCODE_ASR: + brw_ASR(p, dst, src[0], src[1]); + break; + case BRW_OPCODE_SHR: + brw_SHR(p, dst, src[0], src[1]); + break; + case BRW_OPCODE_SHL: + brw_SHL(p, dst, src[0], src[1]); + break; case BRW_OPCODE_CMP: brw_CMP(p, dst, inst->conditional_mod, src[0], src[1]); @@ -1869,10 +3168,16 @@ fs_visitor::generate_code() case BRW_OPCODE_IF: assert(if_stack_depth < 16); - if_stack[if_stack_depth] = brw_IF(p, BRW_EXECUTE_8); + if (inst->src[0].file != BAD_FILE) { + assert(intel->gen >= 6); + if_stack[if_stack_depth] = brw_IF_gen6(p, inst->conditional_mod, src[0], src[1]); + } else { + if_stack[if_stack_depth] = brw_IF(p, BRW_EXECUTE_8); + } if_depth_in_loop[loop_stack_depth]++; if_stack_depth++; break; + case BRW_OPCODE_ELSE: if_stack[if_stack_depth - 1] = brw_ELSE(p, if_stack[if_stack_depth - 1]); @@ -1901,7 +3206,7 @@ fs_visitor::generate_code() struct brw_instruction *inst0, *inst1; GLuint br = 1; - if (intel->gen == 5) + if (intel->gen >= 5) br = 2; assert(loop_stack_depth > 0); @@ -1938,10 +3243,13 @@ fs_visitor::generate_code() case FS_OPCODE_TEX: case FS_OPCODE_TXB: case FS_OPCODE_TXL: - generate_tex(inst, dst, src[0]); + generate_tex(inst, dst); break; - case FS_OPCODE_DISCARD: - generate_discard(inst); + case FS_OPCODE_DISCARD_NOT: + generate_discard_not(inst, dst); + break; + case FS_OPCODE_DISCARD_AND: + generate_discard_and(inst, src[0]); break; case FS_OPCODE_DDX: generate_ddx(inst, dst, src[0]); @@ -1990,22 +3298,14 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c) { struct brw_compile *p = &c->func; struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; - struct brw_shader *shader = NULL; + struct gl_context *ctx = &intel->ctx; struct gl_shader_program *prog = ctx->Shader.CurrentProgram; if (!prog) return GL_FALSE; - if (!using_new_fs) - return GL_FALSE; - - for (unsigned int i = 0; i < prog->_NumLinkedShaders; i++) { - if (prog->_LinkedShaders[i]->Type == GL_FRAGMENT_SHADER) { - shader = (struct brw_shader *)prog->_LinkedShaders[i]; - break; - } - } + struct brw_shader *shader = + (brw_shader *) prog->_LinkedShaders[MESA_SHADER_FRAGMENT]; if (!shader) return GL_FALSE; @@ -2030,7 +3330,11 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c) if (0) { v.emit_dummy_fs(); } else { - v.emit_interpolation(); + v.calculate_urb_setup(); + if (intel->gen < 6) + v.emit_interpolation_setup_gen4(); + else + v.emit_interpolation_setup_gen6(); /* Generate FS IR for main(). (the visitor only descends into * functions called "main"). @@ -2042,12 +3346,30 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c) } v.emit_fb_writes(); + + v.split_virtual_grfs(); + v.assign_curb_setup(); v.assign_urb_setup(); - v.assign_regs(); + + bool progress; + do { + progress = false; + v.calculate_live_intervals(); + progress = v.propagate_constants() || progress; + progress = v.register_coalesce() || progress; + progress = v.compute_to_mrf() || progress; + progress = v.dead_code_eliminate() || progress; + } while (progress); + + if (0) + v.assign_regs_trivial(); + else + v.assign_regs(); } - v.generate_code(); + if (!v.fail) + v.generate_code(); assert(!v.fail); /* FINISHME: Cleanly fail, tested at link time, etc. */ @@ -2073,6 +3395,13 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c) if (last_annotation_string) printf(" %s\n", last_annotation_string); } + if (0) { + printf("0x%08x 0x%08x 0x%08x 0x%08x ", + ((uint32_t *)&p->store[i])[3], + ((uint32_t *)&p->store[i])[2], + ((uint32_t *)&p->store[i])[1], + ((uint32_t *)&p->store[i])[0]); + } brw_disasm(stdout, &p->store[i], intel->gen); } printf("\n"); diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h new file mode 100644 index 0000000000..b8126083f9 --- /dev/null +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -0,0 +1,448 @@ +/* + * Copyright © 2010 Intel Corporation + * + * 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 (including the next + * paragraph) 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 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Authors: + * Eric Anholt <eric@anholt.net> + * + */ + +extern "C" { + +#include <sys/types.h> + +#include "main/macros.h" +#include "main/shaderobj.h" +#include "main/uniforms.h" +#include "program/prog_parameter.h" +#include "program/prog_print.h" +#include "program/prog_optimize.h" +#include "program/register_allocate.h" +#include "program/sampler.h" +#include "program/hash_table.h" +#include "brw_context.h" +#include "brw_eu.h" +#include "brw_wm.h" +#include "talloc.h" +} +#include "../glsl/glsl_types.h" +#include "../glsl/ir.h" + +enum register_file { + ARF = BRW_ARCHITECTURE_REGISTER_FILE, + GRF = BRW_GENERAL_REGISTER_FILE, + MRF = BRW_MESSAGE_REGISTER_FILE, + IMM = BRW_IMMEDIATE_VALUE, + FIXED_HW_REG, /* a struct brw_reg */ + UNIFORM, /* prog_data->params[hw_reg] */ + BAD_FILE +}; + +enum fs_opcodes { + FS_OPCODE_FB_WRITE = 256, + FS_OPCODE_RCP, + FS_OPCODE_RSQ, + FS_OPCODE_SQRT, + FS_OPCODE_EXP2, + FS_OPCODE_LOG2, + FS_OPCODE_POW, + FS_OPCODE_SIN, + FS_OPCODE_COS, + FS_OPCODE_DDX, + FS_OPCODE_DDY, + FS_OPCODE_LINTERP, + FS_OPCODE_TEX, + FS_OPCODE_TXB, + FS_OPCODE_TXL, + FS_OPCODE_DISCARD_NOT, + FS_OPCODE_DISCARD_AND, +}; + + +class fs_reg { +public: + /* Callers of this talloc-based new need not call delete. It's + * easier to just talloc_free 'ctx' (or any of its ancestors). */ + static void* operator new(size_t size, void *ctx) + { + void *node; + + node = talloc_size(ctx, size); + assert(node != NULL); + + return node; + } + + void init() + { + this->reg = 0; + this->reg_offset = 0; + this->negate = 0; + this->abs = 0; + this->hw_reg = -1; + } + + /** Generic unset register constructor. */ + fs_reg() + { + init(); + this->file = BAD_FILE; + } + + /** Immediate value constructor. */ + fs_reg(float f) + { + init(); + this->file = IMM; + this->type = BRW_REGISTER_TYPE_F; + this->imm.f = f; + } + + /** Immediate value constructor. */ + fs_reg(int32_t i) + { + init(); + this->file = IMM; + this->type = BRW_REGISTER_TYPE_D; + this->imm.i = i; + } + + /** Immediate value constructor. */ + fs_reg(uint32_t u) + { + init(); + this->file = IMM; + this->type = BRW_REGISTER_TYPE_UD; + this->imm.u = u; + } + + /** Fixed brw_reg Immediate value constructor. */ + fs_reg(struct brw_reg fixed_hw_reg) + { + init(); + this->file = FIXED_HW_REG; + this->fixed_hw_reg = fixed_hw_reg; + this->type = fixed_hw_reg.type; + } + + fs_reg(enum register_file file, int hw_reg); + fs_reg(enum register_file file, int hw_reg, uint32_t type); + fs_reg(class fs_visitor *v, const struct glsl_type *type); + + /** Register file: ARF, GRF, MRF, IMM. */ + enum register_file file; + /** virtual register number. 0 = fixed hw reg */ + int reg; + /** Offset within the virtual register. */ + int reg_offset; + /** HW register number. Generally unset until register allocation. */ + int hw_reg; + /** Register type. BRW_REGISTER_TYPE_* */ + int type; + bool negate; + bool abs; + struct brw_reg fixed_hw_reg; + + /** Value for file == BRW_IMMMEDIATE_FILE */ + union { + int32_t i; + uint32_t u; + float f; + } imm; +}; + +class fs_inst : public exec_node { +public: + /* Callers of this talloc-based new need not call delete. It's + * easier to just talloc_free 'ctx' (or any of its ancestors). */ + static void* operator new(size_t size, void *ctx) + { + void *node; + + node = talloc_zero_size(ctx, size); + assert(node != NULL); + + return node; + } + + void init() + { + this->opcode = BRW_OPCODE_NOP; + this->saturate = false; + this->conditional_mod = BRW_CONDITIONAL_NONE; + this->predicated = false; + this->sampler = 0; + this->target = 0; + this->eot = false; + this->header_present = false; + this->shadow_compare = false; + this->mlen = 0; + this->base_mrf = 0; + } + + fs_inst() + { + init(); + } + + fs_inst(int opcode) + { + init(); + this->opcode = opcode; + } + + fs_inst(int opcode, fs_reg dst) + { + init(); + this->opcode = opcode; + this->dst = dst; + + if (dst.file == GRF) + assert(dst.reg_offset >= 0); + } + + fs_inst(int opcode, fs_reg dst, fs_reg src0) + { + init(); + this->opcode = opcode; + this->dst = dst; + this->src[0] = src0; + + if (dst.file == GRF) + assert(dst.reg_offset >= 0); + if (src[0].file == GRF) + assert(src[0].reg_offset >= 0); + } + + fs_inst(int opcode, fs_reg dst, fs_reg src0, fs_reg src1) + { + init(); + this->opcode = opcode; + this->dst = dst; + this->src[0] = src0; + this->src[1] = src1; + + if (dst.file == GRF) + assert(dst.reg_offset >= 0); + if (src[0].file == GRF) + assert(src[0].reg_offset >= 0); + if (src[1].file == GRF) + assert(src[1].reg_offset >= 0); + } + + fs_inst(int opcode, fs_reg dst, fs_reg src0, fs_reg src1, fs_reg src2) + { + init(); + this->opcode = opcode; + this->dst = dst; + this->src[0] = src0; + this->src[1] = src1; + this->src[2] = src2; + + if (dst.file == GRF) + assert(dst.reg_offset >= 0); + if (src[0].file == GRF) + assert(src[0].reg_offset >= 0); + if (src[1].file == GRF) + assert(src[1].reg_offset >= 0); + if (src[2].file == GRF) + assert(src[2].reg_offset >= 0); + } + + int opcode; /* BRW_OPCODE_* or FS_OPCODE_* */ + fs_reg dst; + fs_reg src[3]; + bool saturate; + bool predicated; + int conditional_mod; /**< BRW_CONDITIONAL_* */ + + int mlen; /**< SEND message length */ + int base_mrf; /**< First MRF in the SEND message, if mlen is nonzero. */ + int sampler; + int target; /**< MRT target. */ + bool eot; + bool header_present; + bool shadow_compare; + + /** @{ + * Annotation for the generated IR. One of the two can be set. + */ + ir_instruction *ir; + const char *annotation; + /** @} */ +}; + +class fs_visitor : public ir_visitor +{ +public: + + fs_visitor(struct brw_wm_compile *c, struct brw_shader *shader) + { + this->c = c; + this->p = &c->func; + this->brw = p->brw; + this->fp = brw->fragment_program; + this->intel = &brw->intel; + this->ctx = &intel->ctx; + this->mem_ctx = talloc_new(NULL); + this->shader = shader; + this->fail = false; + this->variable_ht = hash_table_ctor(0, + hash_table_pointer_hash, + hash_table_pointer_compare); + + this->frag_color = NULL; + this->frag_data = NULL; + this->frag_depth = NULL; + this->first_non_payload_grf = 0; + + this->current_annotation = NULL; + this->annotation_string = NULL; + this->annotation_ir = NULL; + this->base_ir = NULL; + + this->virtual_grf_sizes = NULL; + this->virtual_grf_next = 1; + this->virtual_grf_array_size = 0; + this->virtual_grf_def = NULL; + this->virtual_grf_use = NULL; + + this->kill_emitted = false; + } + + ~fs_visitor() + { + talloc_free(this->mem_ctx); + hash_table_dtor(this->variable_ht); + } + + fs_reg *variable_storage(ir_variable *var); + int virtual_grf_alloc(int size); + + void visit(ir_variable *ir); + void visit(ir_assignment *ir); + void visit(ir_dereference_variable *ir); + void visit(ir_dereference_record *ir); + void visit(ir_dereference_array *ir); + void visit(ir_expression *ir); + void visit(ir_texture *ir); + void visit(ir_if *ir); + void visit(ir_constant *ir); + void visit(ir_swizzle *ir); + void visit(ir_return *ir); + void visit(ir_loop *ir); + void visit(ir_loop_jump *ir); + void visit(ir_discard *ir); + void visit(ir_call *ir); + void visit(ir_function *ir); + void visit(ir_function_signature *ir); + + fs_inst *emit(fs_inst inst); + void assign_curb_setup(); + void calculate_urb_setup(); + void assign_urb_setup(); + void assign_regs(); + void assign_regs_trivial(); + void split_virtual_grfs(); + void calculate_live_intervals(); + bool propagate_constants(); + bool register_coalesce(); + bool compute_to_mrf(); + bool dead_code_eliminate(); + bool virtual_grf_interferes(int a, int b); + void generate_code(); + void generate_fb_write(fs_inst *inst); + void generate_linterp(fs_inst *inst, struct brw_reg dst, + struct brw_reg *src); + void generate_tex(fs_inst *inst, struct brw_reg dst); + void generate_math(fs_inst *inst, struct brw_reg dst, struct brw_reg *src); + void generate_discard_not(fs_inst *inst, struct brw_reg temp); + void generate_discard_and(fs_inst *inst, struct brw_reg temp); + void generate_ddx(fs_inst *inst, struct brw_reg dst, struct brw_reg src); + void generate_ddy(fs_inst *inst, struct brw_reg dst, struct brw_reg src); + + void emit_dummy_fs(); + fs_reg *emit_fragcoord_interpolation(ir_variable *ir); + fs_reg *emit_frontfacing_interpolation(ir_variable *ir); + fs_reg *emit_general_interpolation(ir_variable *ir); + void emit_interpolation_setup_gen4(); + void emit_interpolation_setup_gen6(); + fs_inst *emit_texture_gen4(ir_texture *ir, fs_reg dst, fs_reg coordinate); + fs_inst *emit_texture_gen5(ir_texture *ir, fs_reg dst, fs_reg coordinate); + fs_inst *emit_math(fs_opcodes op, fs_reg dst, fs_reg src0); + fs_inst *emit_math(fs_opcodes op, fs_reg dst, fs_reg src0, fs_reg src1); + void emit_bool_to_cond_code(ir_rvalue *condition); + void emit_if_gen6(ir_if *ir); + + void emit_fb_writes(); + void emit_assignment_writes(fs_reg &l, fs_reg &r, + const glsl_type *type, bool predicated); + + struct brw_reg interp_reg(int location, int channel); + int setup_uniform_values(int loc, const glsl_type *type); + void setup_builtin_uniform_values(ir_variable *ir); + + struct brw_context *brw; + const struct gl_fragment_program *fp; + struct intel_context *intel; + struct gl_context *ctx; + struct brw_wm_compile *c; + struct brw_compile *p; + struct brw_shader *shader; + void *mem_ctx; + exec_list instructions; + + int *virtual_grf_sizes; + int virtual_grf_next; + int virtual_grf_array_size; + int *virtual_grf_def; + int *virtual_grf_use; + + struct hash_table *variable_ht; + ir_variable *frag_color, *frag_data, *frag_depth; + int first_non_payload_grf; + int urb_setup[FRAG_ATTRIB_MAX]; + bool kill_emitted; + + /** @{ debug annotation info */ + const char *current_annotation; + ir_instruction *base_ir; + const char **annotation_string; + ir_instruction **annotation_ir; + /** @} */ + + bool fail; + + /* Result of last visit() method. */ + fs_reg result; + + fs_reg pixel_x; + fs_reg pixel_y; + fs_reg wpos_w; + fs_reg pixel_w; + fs_reg delta_x; + fs_reg delta_y; + + int grf_used; +}; + +GLboolean brw_do_channel_expressions(struct exec_list *instructions); +GLboolean brw_do_vector_splitting(struct exec_list *instructions); diff --git a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp index 9fbf7b7c6b..4aac1b5a05 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp @@ -83,7 +83,6 @@ channel_expressions_predicate(ir_instruction *ir) return false; } -extern "C" { GLboolean brw_do_channel_expressions(exec_list *instructions) { @@ -99,7 +98,6 @@ brw_do_channel_expressions(exec_list *instructions) return v.progress; } -} ir_rvalue * ir_channel_expressions_visitor::get_element(ir_variable *var, unsigned int elem) diff --git a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp index 552254df87..2be6b08b5c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp @@ -212,7 +212,6 @@ public: struct variable_entry *get_splitting_entry(ir_variable *var); exec_list *variable_list; - void *mem_ctx; }; struct variable_entry * @@ -300,6 +299,7 @@ ir_vector_splitting_visitor::visit_leave(ir_assignment *ir) } ir->remove(); } else if (lhs) { + void *mem_ctx = lhs->mem_ctx; int elem = -1; switch (ir->write_mask) { @@ -333,7 +333,6 @@ ir_vector_splitting_visitor::visit_leave(ir_assignment *ir) return visit_continue; } -extern "C" { bool brw_do_vector_splitting(exec_list *instructions) { @@ -391,4 +390,3 @@ brw_do_vector_splitting(exec_list *instructions) return true; } -} diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c index 8952c9e346..cfcc8ea4d6 100644 --- a/src/mesa/drivers/dri/i965/brw_gs.c +++ b/src/mesa/drivers/dri/i965/brw_gs.c @@ -96,8 +96,6 @@ static void compile_gs_prog( struct brw_context *brw, brw_gs_quad_strip( &c, key ); break; case GL_LINE_LOOP: - /* XXX fix GS hang issue */ - assert(intel->gen < 6); brw_gs_lines( &c ); break; case GL_LINES: @@ -167,7 +165,7 @@ static const GLenum gs_prim[GL_POLYGON+1] = { static void populate_key( struct brw_context *brw, struct brw_gs_prog_key *key ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; memset(key, 0, sizeof(*key)); /* CACHE_NEW_VS_PROG */ diff --git a/src/mesa/drivers/dri/i965/brw_gs.h b/src/mesa/drivers/dri/i965/brw_gs.h index 813b8d447a..7e3531086f 100644 --- a/src/mesa/drivers/dri/i965/brw_gs.h +++ b/src/mesa/drivers/dri/i965/brw_gs.h @@ -56,6 +56,7 @@ struct brw_gs_compile { struct { struct brw_reg R0; struct brw_reg vertex[MAX_GS_VERTS]; + struct brw_reg temp; } reg; /* 3 different ways of expressing vertex size: diff --git a/src/mesa/drivers/dri/i965/brw_gs_emit.c b/src/mesa/drivers/dri/i965/brw_gs_emit.c index a01d5576f8..e1f751fdaa 100644 --- a/src/mesa/drivers/dri/i965/brw_gs_emit.c +++ b/src/mesa/drivers/dri/i965/brw_gs_emit.c @@ -58,6 +58,8 @@ static void brw_gs_alloc_regs( struct brw_gs_compile *c, i += c->nr_regs; } + c->reg.temp = brw_vec8_grf(i, 0); + c->prog_data.urb_read_length = c->nr_regs; c->prog_data.total_grf = i; } @@ -69,12 +71,22 @@ static void brw_gs_emit_vue(struct brw_gs_compile *c, GLuint header) { struct brw_compile *p = &c->func; + struct intel_context *intel = &c->func.brw->intel; GLboolean allocate = !last; + struct brw_reg temp; + + if (intel->gen < 6) + temp = c->reg.R0; + else { + temp = c->reg.temp; + brw_MOV(p, retype(temp, BRW_REGISTER_TYPE_UD), + retype(c->reg.R0, BRW_REGISTER_TYPE_UD)); + } /* Overwrite PrimType and PrimStart in the message header, for * each vertex in turn: */ - brw_MOV(p, get_element_ud(c->reg.R0, 2), brw_imm_ud(header)); + brw_MOV(p, get_element_ud(temp, 2), brw_imm_ud(header)); /* Copy the vertex from vertn into m1..mN+1: */ @@ -87,9 +99,9 @@ static void brw_gs_emit_vue(struct brw_gs_compile *c, * allocated each time. */ brw_urb_WRITE(p, - allocate ? c->reg.R0 : retype(brw_null_reg(), BRW_REGISTER_TYPE_UD), + allocate ? temp : retype(brw_null_reg(), BRW_REGISTER_TYPE_UD), 0, - c->reg.R0, + temp, allocate, 1, /* used */ c->nr_regs + 1, /* msg length */ @@ -98,19 +110,39 @@ static void brw_gs_emit_vue(struct brw_gs_compile *c, 1, /* writes_complete */ 0, /* urb offset */ BRW_URB_SWIZZLE_NONE); + + if (intel->gen >= 6 && allocate) + brw_MOV(p, get_element_ud(c->reg.R0, 0), get_element_ud(temp, 0)); } static void brw_gs_ff_sync(struct brw_gs_compile *c, int num_prim) { struct brw_compile *p = &c->func; - brw_MOV(p, get_element_ud(c->reg.R0, 1), brw_imm_ud(num_prim)); - brw_ff_sync(p, - c->reg.R0, - 0, - c->reg.R0, - 1, /* allocate */ - 1, /* response length */ - 0 /* eot */); + struct intel_context *intel = &c->func.brw->intel; + + if (intel->gen < 6) { + brw_MOV(p, get_element_ud(c->reg.R0, 1), brw_imm_ud(num_prim)); + brw_ff_sync(p, + c->reg.R0, + 0, + c->reg.R0, + 1, /* allocate */ + 1, /* response length */ + 0 /* eot */); + } else { + brw_MOV(p, retype(c->reg.temp, BRW_REGISTER_TYPE_UD), + retype(c->reg.R0, BRW_REGISTER_TYPE_UD)); + brw_MOV(p, get_element_ud(c->reg.temp, 1), brw_imm_ud(num_prim)); + brw_ff_sync(p, + c->reg.temp, + 0, + c->reg.temp, + 1, /* allocate */ + 1, /* response length */ + 0 /* eot */); + brw_MOV(p, get_element_ud(c->reg.R0, 0), + get_element_ud(c->reg.temp, 0)); + } } diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c index 6eeaba7772..24041e57b0 100644 --- a/src/mesa/drivers/dri/i965/brw_misc_state.c +++ b/src/mesa/drivers/dri/i965/brw_misc_state.c @@ -48,7 +48,7 @@ static void upload_blend_constant_color(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_blend_constant_color bcc; memset(&bcc, 0, sizeof(bcc)); @@ -76,7 +76,7 @@ const struct brw_tracked_state brw_blend_constant_color = { static void upload_drawing_rect(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; BEGIN_BATCH(4); OUT_BATCH(_3DSTATE_DRAWRECT_INFO_I965); @@ -335,7 +335,7 @@ const struct brw_tracked_state brw_depthbuffer = { static void upload_polygon_stipple(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_polygon_stipple bps; GLuint i; @@ -378,7 +378,7 @@ const struct brw_tracked_state brw_polygon_stipple = { static void upload_polygon_stipple_offset(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_polygon_stipple_offset bpso; memset(&bpso, 0, sizeof(bpso)); @@ -449,7 +449,7 @@ const struct brw_tracked_state brw_aa_line_parameters = { static void upload_line_stipple(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_line_stipple bls; GLfloat tmp; GLint tmpi; @@ -515,8 +515,6 @@ static void upload_invarient_state( struct brw_context *brw ) if (intel->gen >= 6) { int i; - intel_batchbuffer_emit_mi_flush(intel->batch); - BEGIN_BATCH(3); OUT_BATCH(CMD_3D_MULTISAMPLE << 16 | (3 - 2)); OUT_BATCH(MS_PIXEL_LOCATION_CENTER | diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c index 3e52be5d4b..1367d81469 100644 --- a/src/mesa/drivers/dri/i965/brw_program.c +++ b/src/mesa/drivers/dri/i965/brw_program.c @@ -41,7 +41,7 @@ #include "brw_context.h" #include "brw_wm.h" -static void brwBindProgram( GLcontext *ctx, +static void brwBindProgram( struct gl_context *ctx, GLenum target, struct gl_program *prog ) { @@ -57,7 +57,7 @@ static void brwBindProgram( GLcontext *ctx, } } -static struct gl_program *brwNewProgram( GLcontext *ctx, +static struct gl_program *brwNewProgram( struct gl_context *ctx, GLenum target, GLuint id ) { @@ -93,14 +93,14 @@ static struct gl_program *brwNewProgram( GLcontext *ctx, } } -static void brwDeleteProgram( GLcontext *ctx, +static void brwDeleteProgram( struct gl_context *ctx, struct gl_program *prog ) { _mesa_delete_program( ctx, prog ); } -static GLboolean brwIsProgramNative( GLcontext *ctx, +static GLboolean brwIsProgramNative( struct gl_context *ctx, GLenum target, struct gl_program *prog ) { @@ -108,7 +108,7 @@ static GLboolean brwIsProgramNative( GLcontext *ctx, } static void -shader_error(GLcontext *ctx, struct gl_program *prog, const char *msg) +shader_error(struct gl_context *ctx, struct gl_program *prog, const char *msg) { struct gl_shader_program *shader; @@ -120,7 +120,7 @@ shader_error(GLcontext *ctx, struct gl_program *prog, const char *msg) } } -static GLboolean brwProgramStringNotify( GLcontext *ctx, +static GLboolean brwProgramStringNotify( struct gl_context *ctx, GLenum target, struct gl_program *prog ) { @@ -148,15 +148,9 @@ static GLboolean brwProgramStringNotify( GLcontext *ctx, * using the new FS backend. */ shader_program = _mesa_lookup_shader_program(ctx, prog->Id); - if (shader_program) { - for (i = 0; i < shader_program->_NumLinkedShaders; i++) { - struct brw_shader *shader; - - shader = (struct brw_shader *)shader_program->_LinkedShaders[i]; - if (shader->base.Type == GL_FRAGMENT_SHADER && shader->ir) { - return GL_TRUE; - } - } + if (shader_program + && shader_program->_LinkedShaders[MESA_SHADER_FRAGMENT]) { + return GL_TRUE; } } else if (target == GL_VERTEX_PROGRAM_ARB) { diff --git a/src/mesa/drivers/dri/i965/brw_queryobj.c b/src/mesa/drivers/dri/i965/brw_queryobj.c index 1b183735d7..f28f28663e 100644 --- a/src/mesa/drivers/dri/i965/brw_queryobj.c +++ b/src/mesa/drivers/dri/i965/brw_queryobj.c @@ -72,7 +72,7 @@ brw_queryobj_get_results(struct brw_query_object *query) } static struct gl_query_object * -brw_new_query_object(GLcontext *ctx, GLuint id) +brw_new_query_object(struct gl_context *ctx, GLuint id) { struct brw_query_object *query; @@ -87,7 +87,7 @@ brw_new_query_object(GLcontext *ctx, GLuint id) } static void -brw_delete_query(GLcontext *ctx, struct gl_query_object *q) +brw_delete_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_query_object *query = (struct brw_query_object *)q; @@ -96,7 +96,7 @@ brw_delete_query(GLcontext *ctx, struct gl_query_object *q) } static void -brw_begin_query(GLcontext *ctx, struct gl_query_object *q) +brw_begin_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_context *brw = brw_context(ctx); struct intel_context *intel = intel_context(ctx); @@ -146,7 +146,7 @@ brw_begin_query(GLcontext *ctx, struct gl_query_object *q) * Begin the ARB_occlusion_query query on a query object. */ static void -brw_end_query(GLcontext *ctx, struct gl_query_object *q) +brw_end_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_context *brw = brw_context(ctx); struct intel_context *intel = intel_context(ctx); @@ -197,7 +197,7 @@ brw_end_query(GLcontext *ctx, struct gl_query_object *q) } } -static void brw_wait_query(GLcontext *ctx, struct gl_query_object *q) +static void brw_wait_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_query_object *query = (struct brw_query_object *)q; @@ -205,7 +205,7 @@ static void brw_wait_query(GLcontext *ctx, struct gl_query_object *q) query->Base.Ready = GL_TRUE; } -static void brw_check_query(GLcontext *ctx, struct gl_query_object *q) +static void brw_check_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_query_object *query = (struct brw_query_object *)q; diff --git a/src/mesa/drivers/dri/i965/brw_sf.c b/src/mesa/drivers/dri/i965/brw_sf.c index 7d005d278f..7dbd70daae 100644 --- a/src/mesa/drivers/dri/i965/brw_sf.c +++ b/src/mesa/drivers/dri/i965/brw_sf.c @@ -132,7 +132,7 @@ static void compile_sf_prog( struct brw_context *brw, */ static void upload_sf_prog(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_sf_prog_key key; memset(&key, 0, sizeof(key)); diff --git a/src/mesa/drivers/dri/i965/brw_sf_state.c b/src/mesa/drivers/dri/i965/brw_sf_state.c index 914f275cc6..6ad9e1b48a 100644 --- a/src/mesa/drivers/dri/i965/brw_sf_state.c +++ b/src/mesa/drivers/dri/i965/brw_sf_state.c @@ -38,7 +38,7 @@ static void upload_sf_vp(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; const GLfloat depth_scale = 1.0F / ctx->DrawBuffer->_DepthMaxF; struct brw_sf_viewport sfv; GLfloat y_scale, y_bias; @@ -139,7 +139,7 @@ struct brw_sf_unit_key { static void sf_unit_populate_key(struct brw_context *brw, struct brw_sf_unit_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; memset(key, 0, sizeof(*key)); /* CACHE_NEW_SF_PROG */ diff --git a/src/mesa/drivers/dri/i965/brw_state.c b/src/mesa/drivers/dri/i965/brw_state.c index 1e77e427d3..13b231d5cf 100644 --- a/src/mesa/drivers/dri/i965/brw_state.c +++ b/src/mesa/drivers/dri/i965/brw_state.c @@ -28,7 +28,7 @@ #include "brw_context.h" void -brw_enable(GLcontext *ctx, GLenum cap, GLboolean state) +brw_enable(struct gl_context *ctx, GLenum cap, GLboolean state) { struct brw_context *brw = brw_context(ctx); @@ -40,7 +40,7 @@ brw_enable(GLcontext *ctx, GLenum cap, GLboolean state) } void -brw_depth_range(GLcontext *ctx, GLclampd nearval, GLclampd farval) +brw_depth_range(struct gl_context *ctx, GLclampd nearval, GLclampd farval) { struct brw_context *brw = brw_context(ctx); diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c index 1aadd5ca61..73940a5156 100644 --- a/src/mesa/drivers/dri/i965/brw_state_upload.c +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c @@ -336,7 +336,7 @@ brw_print_dirty_count(struct dirty_bit_map *bit_map, int32_t bits) */ void brw_validate_state( struct brw_context *brw ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct intel_context *intel = &brw->intel; struct brw_state_flags *state = &brw->state.dirty; GLuint i; diff --git a/src/mesa/drivers/dri/i965/brw_structs.h b/src/mesa/drivers/dri/i965/brw_structs.h index 7b919872c4..8ce9af9c4f 100644 --- a/src/mesa/drivers/dri/i965/brw_structs.h +++ b/src/mesa/drivers/dri/i965/brw_structs.h @@ -1381,6 +1381,18 @@ struct brw_instruction GLuint dest_horiz_stride:2; GLuint dest_address_mode:1; } ia16; + + struct { + GLuint dest_reg_file:2; + GLuint dest_reg_type:3; + GLuint src0_reg_file:2; + GLuint src0_reg_type:3; + GLuint src1_reg_file:2; + GLuint src1_reg_type:3; + GLuint pad:1; + + GLint jump_count:16; + } branch_gen6; } bits1; diff --git a/src/mesa/drivers/dri/i965/brw_tex.c b/src/mesa/drivers/dri/i965/brw_tex.c index e911b105b2..39dfd34f4c 100644 --- a/src/mesa/drivers/dri/i965/brw_tex.c +++ b/src/mesa/drivers/dri/i965/brw_tex.c @@ -45,7 +45,7 @@ */ void brw_validate_textures( struct brw_context *brw ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct intel_context *intel = &brw->intel; int i; diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c index 9f90e1e5e5..4a41c7a517 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.c +++ b/src/mesa/drivers/dri/i965/brw_vs.c @@ -43,7 +43,7 @@ static void do_vs_prog( struct brw_context *brw, struct brw_vertex_program *vp, struct brw_vs_prog_key *key ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; GLuint program_size; const GLuint *program; struct brw_vs_compile c; @@ -96,6 +96,7 @@ static void do_vs_prog( struct brw_context *brw, sizeof(c.prog_data)); assert(ctx->Const.VertexProgram.MaxNativeParameters == ARRAY_SIZE(c.constant_map)); + (void) ctx; aux_size = sizeof(c.prog_data); if (c.vp->use_const_buffer) @@ -114,7 +115,7 @@ static void do_vs_prog( struct brw_context *brw, static void brw_upload_vs_prog(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct brw_vs_prog_key key; struct brw_vertex_program *vp = (struct brw_vertex_program *)brw->vertex_program; diff --git a/src/mesa/drivers/dri/i965/brw_vs_constval.c b/src/mesa/drivers/dri/i965/brw_vs_constval.c index 249a800bf4..47cc0a7da7 100644 --- a/src/mesa/drivers/dri/i965/brw_vs_constval.c +++ b/src/mesa/drivers/dri/i965/brw_vs_constval.c @@ -190,7 +190,7 @@ static GLuint get_input_size(struct brw_context *brw, */ static void calc_wm_input_sizes( struct brw_context *brw ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; /* BRW_NEW_VERTEX_PROGRAM */ const struct brw_vertex_program *vp = brw_vertex_program_const(brw->vertex_program); diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c index 8ac979dcea..ce33479996 100644 --- a/src/mesa/drivers/dri/i965/brw_vs_emit.c +++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c @@ -593,11 +593,15 @@ static void emit_math1( struct brw_vs_compile *c, struct brw_compile *p = &c->func; struct intel_context *intel = &p->brw->intel; struct brw_reg tmp = dst; - GLboolean need_tmp = (intel->gen < 6 && - (dst.dw1.bits.writemask != 0xf || - dst.file != BRW_GENERAL_REGISTER_FILE)); + GLboolean need_tmp = GL_FALSE; - if (need_tmp) + if (dst.file != BRW_GENERAL_REGISTER_FILE) + need_tmp = GL_TRUE; + + if (intel->gen < 6 && dst.dw1.bits.writemask != 0xf) + need_tmp = GL_TRUE; + + if (need_tmp) tmp = get_tmp(c); brw_math(p, @@ -626,9 +630,13 @@ static void emit_math2( struct brw_vs_compile *c, struct brw_compile *p = &c->func; struct intel_context *intel = &p->brw->intel; struct brw_reg tmp = dst; - GLboolean need_tmp = (intel->gen < 6 && - (dst.dw1.bits.writemask != 0xf || - dst.file != BRW_GENERAL_REGISTER_FILE)); + GLboolean need_tmp = GL_FALSE; + + if (dst.file != BRW_GENERAL_REGISTER_FILE) + need_tmp = GL_TRUE; + + if (intel->gen < 6 && dst.dw1.bits.writemask != 0xf) + need_tmp = GL_TRUE; if (need_tmp) tmp = get_tmp(c); @@ -922,6 +930,8 @@ get_constant(struct brw_vs_compile *c, assert(argIndex < 3); + assert(c->func.brw->intel.gen < 6); /* FINISHME */ + if (c->current_const[argIndex].index != src->Index) { /* Keep track of the last constant loaded in this slot, for reuse. */ c->current_const[argIndex].index = src->Index; @@ -958,6 +968,8 @@ get_reladdr_constant(struct brw_vs_compile *c, assert(argIndex < 3); + assert(c->func.brw->intel.gen < 6); /* FINISHME */ + /* Can't reuse a reladdr constant load. */ c->current_const[argIndex].index = -1; diff --git a/src/mesa/drivers/dri/i965/brw_vs_state.c b/src/mesa/drivers/dri/i965/brw_vs_state.c index 9b2dd5b3d1..ebae94269f 100644 --- a/src/mesa/drivers/dri/i965/brw_vs_state.c +++ b/src/mesa/drivers/dri/i965/brw_vs_state.c @@ -51,7 +51,7 @@ struct brw_vs_unit_key { static void vs_unit_populate_key(struct brw_context *brw, struct brw_vs_unit_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; memset(key, 0, sizeof(*key)); diff --git a/src/mesa/drivers/dri/i965/brw_vs_surface_state.c b/src/mesa/drivers/dri/i965/brw_vs_surface_state.c index 0250a68d29..eabac51160 100644 --- a/src/mesa/drivers/dri/i965/brw_vs_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_vs_surface_state.c @@ -45,7 +45,7 @@ static void prepare_vs_constants(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct intel_context *intel = &brw->intel; struct brw_vertex_program *vp = (struct brw_vertex_program *) brw->vertex_program; @@ -101,7 +101,7 @@ const struct brw_tracked_state brw_vs_constants = { * Sets brw->vs.surf_bo[surf] and brw->vp->const_buffer. */ static void -brw_update_vs_constant_surface( GLcontext *ctx, +brw_update_vs_constant_surface( struct gl_context *ctx, GLuint surf) { struct brw_context *brw = brw_context(ctx); @@ -151,7 +151,7 @@ prepare_vs_surfaces(struct brw_context *brw) */ static void upload_vs_surfaces(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; uint32_t *bind; int i; diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c index 8f1601d10f..3d7a98c981 100644 --- a/src/mesa/drivers/dri/i965/brw_vtbl.c +++ b/src/mesa/drivers/dri/i965/brw_vtbl.c @@ -43,7 +43,6 @@ #include "brw_defines.h" #include "brw_state.h" #include "brw_draw.h" -#include "brw_state.h" #include "brw_vs.h" #include "brw_wm.h" diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index 9ca8e709f5..f2ce756564 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -216,7 +216,7 @@ static void brw_wm_populate_key( struct brw_context *brw, struct brw_wm_prog_key *key ) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; /* BRW_NEW_FRAGMENT_PROGRAM */ const struct brw_fragment_program *fp = (struct brw_fragment_program *)brw->fragment_program; @@ -318,6 +318,12 @@ static void brw_wm_populate_key( struct brw_context *brw, /* R31: MSAA position offsets. */ /* R32-: bary for 32-pixel. */ /* R58-59: interp W for 32-pixel. */ + + if (fp->program.Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) { + key->source_depth_to_render_target = GL_TRUE; + key->computes_depth = GL_TRUE; + } + } else { brw_wm_lookup_iz(intel, line_aa, @@ -342,13 +348,44 @@ static void brw_wm_populate_key( struct brw_context *brw, if (unit->_ReallyEnabled) { const struct gl_texture_object *t = unit->_Current; const struct gl_texture_image *img = t->Image[0][t->BaseLevel]; + int swizzles[SWIZZLE_NIL + 1] = { + SWIZZLE_X, + SWIZZLE_Y, + SWIZZLE_Z, + SWIZZLE_W, + SWIZZLE_ZERO, + SWIZZLE_ONE, + SWIZZLE_NIL + }; + + key->tex_swizzles[i] = SWIZZLE_NOOP; + + /* GL_DEPTH_TEXTURE_MODE is normally handled through + * brw_wm_surface_state, but it applies to shadow compares as + * well and our shadow compares always return the result in + * all 4 channels. + */ + if (t->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB) { + if (t->DepthMode == GL_ALPHA) { + swizzles[0] = SWIZZLE_ZERO; + swizzles[1] = SWIZZLE_ZERO; + swizzles[2] = SWIZZLE_ZERO; + } else if (t->DepthMode == GL_LUMINANCE) { + swizzles[3] = SWIZZLE_ONE; + } + } + if (img->InternalFormat == GL_YCBCR_MESA) { key->yuvtex_mask |= 1 << i; if (img->TexFormat == MESA_FORMAT_YCBCR) key->yuvtex_swap_mask |= 1 << i; } - key->tex_swizzles[i] = t->_Swizzle; + key->tex_swizzles[i] = + MAKE_SWIZZLE4(swizzles[GET_SWZ(t->_Swizzle, 0)], + swizzles[GET_SWZ(t->_Swizzle, 1)], + swizzles[GET_SWZ(t->_Swizzle, 2)], + swizzles[GET_SWZ(t->_Swizzle, 3)]); } else { key->tex_swizzles[i] = SWIZZLE_NOOP; diff --git a/src/mesa/drivers/dri/i965/brw_wm.h b/src/mesa/drivers/dri/i965/brw_wm.h index a38df1e111..99bd15c187 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.h +++ b/src/mesa/drivers/dri/i965/brw_wm.h @@ -33,6 +33,7 @@ #ifndef BRW_WM_H #define BRW_WM_H +#include <stdbool.h> #include "program/prog_instruction.h" #include "brw_context.h" @@ -182,6 +183,8 @@ struct brw_wm_instruction { #define MAX_WM_OPCODE (MAX_OPCODE + 9) #define PROGRAM_PAYLOAD (PROGRAM_FILE_MAX) +#define NUM_FILES (PROGRAM_PAYLOAD + 1) + #define PAYLOAD_DEPTH (FRAG_ATTRIB_MAX) #define PAYLOAD_W (FRAG_ATTRIB_MAX + 1) #define PAYLOAD_FP_REG_MAX (FRAG_ATTRIB_MAX + 2) @@ -227,7 +230,7 @@ struct brw_wm_compile { } payload; - const struct brw_wm_ref *pass0_fp_reg[PAYLOAD_FP_REG_MAX][256][4]; + const struct brw_wm_ref *pass0_fp_reg[NUM_FILES][256][4]; struct brw_wm_ref undef_ref; struct brw_wm_value undef_value; @@ -255,7 +258,7 @@ struct brw_wm_compile { struct { GLboolean inited; struct brw_reg reg; - } wm_regs[PAYLOAD_FP_REG_MAX][256][4]; + } wm_regs[NUM_FILES][256][4]; GLboolean used_grf[BRW_WM_MAX_GRF]; GLuint first_free_grf; @@ -465,13 +468,12 @@ void emit_xpd(struct brw_compile *p, const struct brw_reg *arg0, const struct brw_reg *arg1); -GLboolean brw_compile_shader(GLcontext *ctx, +GLboolean brw_compile_shader(struct gl_context *ctx, struct gl_shader *shader); -GLboolean brw_link_shader(GLcontext *ctx, struct gl_shader_program *prog); -struct gl_shader *brw_new_shader(GLcontext *ctx, GLuint name, GLuint type); -struct gl_shader_program *brw_new_shader_program(GLcontext *ctx, GLuint name); +GLboolean brw_link_shader(struct gl_context *ctx, struct gl_shader_program *prog); +struct gl_shader *brw_new_shader(struct gl_context *ctx, GLuint name, GLuint type); +struct gl_shader_program *brw_new_shader_program(struct gl_context *ctx, GLuint name); -GLboolean brw_do_channel_expressions(struct exec_list *instructions); -GLboolean brw_do_vector_splitting(struct exec_list *instructions); +bool brw_color_buffer_write_enabled(struct brw_context *brw); #endif diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c index f52372ee46..cb71c665b4 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_emit.c +++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c @@ -1772,7 +1772,11 @@ void brw_wm_emit( struct brw_wm_compile *c ) break; case OPCODE_TRUNC: - emit_alu1(p, brw_RNDZ, dst, dst_flags, args[0]); + for (i = 0; i < 4; i++) { + if (dst_flags & (1<<i)) { + brw_RNDZ(p, dst[i], args[0][i]); + } + } break; case OPCODE_LRP: diff --git a/src/mesa/drivers/dri/i965/brw_wm_fp.c b/src/mesa/drivers/dri/i965/brw_wm_fp.c index a88b7bdea8..15a238cda6 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_fp.c +++ b/src/mesa/drivers/dri/i965/brw_wm_fp.c @@ -89,6 +89,8 @@ static struct prog_src_register src_reg(GLuint file, GLuint idx) reg.Negate = NEGATE_NONE; reg.Abs = 0; reg.HasIndex2 = 0; + reg.RelAddr2 = 0; + reg.Index2 = 0; return reg; } @@ -342,7 +344,7 @@ static struct prog_src_register get_pixel_w( struct brw_wm_compile *c ) if (c->func.brw->intel.gen >= 6) return src_undef(); - if (!src_is_undef(c->pixel_w)) { + if (src_is_undef(c->pixel_w)) { struct prog_dst_register pixel_w = get_temp(c); struct prog_src_register deltas = get_delta_xy(c); struct prog_src_register interp_wpos = src_reg(PROGRAM_PAYLOAD, FRAG_ATTRIB_WPOS); @@ -532,12 +534,6 @@ static struct prog_src_register search_or_add_param5(struct brw_wm_compile *c, tokens[2] = s2; tokens[3] = s3; tokens[4] = s4; - - for (idx = 0; idx < paramList->NumParameters; idx++) { - if (paramList->Parameters[idx].Type == PROGRAM_STATE_VAR && - memcmp(paramList->Parameters[idx].StateIndexes, tokens, sizeof(tokens)) == 0) - return src_reg(PROGRAM_STATE_VAR, idx); - } idx = _mesa_add_state_reference( paramList, tokens ); @@ -555,28 +551,18 @@ static struct prog_src_register search_or_add_const4f( struct brw_wm_compile *c, GLfloat values[4]; GLuint idx; GLuint swizzle; + struct prog_src_register reg; values[0] = s0; values[1] = s1; values[2] = s2; values[3] = s3; - /* Have to search, otherwise multiple compilations will each grow - * the parameter list. - */ - for (idx = 0; idx < paramList->NumParameters; idx++) { - if (paramList->Parameters[idx].Type == PROGRAM_CONSTANT && - memcmp(paramList->ParameterValues[idx], values, sizeof(values)) == 0) - - /* XXX: this mimics the mesa bug which puts all constants and - * parameters into the "PROGRAM_STATE_VAR" category: - */ - return src_reg(PROGRAM_STATE_VAR, idx); - } - idx = _mesa_add_unnamed_constant( paramList, values, 4, &swizzle ); - assert(swizzle == SWIZZLE_NOOP); /* Need to handle swizzle in reg setup */ - return src_reg(PROGRAM_STATE_VAR, idx); + reg = src_reg(PROGRAM_STATE_VAR, idx); + reg.Swizzle = swizzle; + + return reg; } diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c index f9c48140fb..fea96d3538 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c @@ -233,7 +233,7 @@ static void brw_wm_sampler_populate_key(struct brw_context *brw, struct wm_sampler_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; int unit; char *last_entry_end = ((char*)&key->sampler_count) + sizeof(key->sampler_count); @@ -301,7 +301,7 @@ brw_wm_sampler_populate_key(struct brw_context *brw, */ static void upload_wm_samplers( struct brw_context *brw ) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct wm_sampler_key key; int i, sampler_key_size; diff --git a/src/mesa/drivers/dri/i965/brw_wm_state.c b/src/mesa/drivers/dri/i965/brw_wm_state.c index 6699d0a73e..411204e704 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_state.c @@ -52,13 +52,40 @@ struct brw_wm_unit_key { unsigned int nr_surfaces, sampler_count; GLboolean uses_depth, computes_depth, uses_kill, is_glsl; GLboolean polygon_stipple, stats_wm, line_stipple, offset_enable; + GLboolean color_write_enable; GLfloat offset_units, offset_factor; }; +bool +brw_color_buffer_write_enabled(struct brw_context *brw) +{ + struct gl_context *ctx = &brw->intel.ctx; + const struct gl_fragment_program *fp = brw->fragment_program; + int i; + + /* _NEW_BUFFERS */ + for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) { + struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[i]; + + /* _NEW_COLOR */ + if (rb && + (fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_COLOR) || + fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DATA0 + i)) && + (ctx->Color.ColorMask[i][0] || + ctx->Color.ColorMask[i][1] || + ctx->Color.ColorMask[i][2] || + ctx->Color.ColorMask[i][3])) { + return true; + } + } + + return false; +} + static void wm_unit_populate_key(struct brw_context *brw, struct brw_wm_unit_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; const struct gl_fragment_program *fp = brw->fragment_program; const struct brw_fragment_program *bfp = (struct brw_fragment_program *) fp; struct intel_context *intel = &brw->intel; @@ -100,6 +127,9 @@ wm_unit_populate_key(struct brw_context *brw, struct brw_wm_unit_key *key) if (brw->state.depth_region == NULL) key->computes_depth = 0; + /* _NEW_BUFFERS | _NEW_COLOR */ + key->color_write_enable = brw_color_buffer_write_enabled(brw); + /* _NEW_COLOR */ key->uses_kill = fp->UsesKill || ctx->Color.AlphaEnabled; key->is_glsl = bfp->isGLSL; @@ -108,16 +138,11 @@ wm_unit_populate_key(struct brw_context *brw, struct brw_wm_unit_key *key) * 8-wide. */ if (ctx->Shader.CurrentProgram) { - int i; - - for (i = 0; i < ctx->Shader.CurrentProgram->_NumLinkedShaders; i++) { - struct brw_shader *shader = - (struct brw_shader *)ctx->Shader.CurrentProgram->_LinkedShaders[i];; + struct brw_shader *shader = (struct brw_shader *) + ctx->Shader.CurrentProgram->_LinkedShaders[MESA_SHADER_FRAGMENT]; - if (shader->base.Type == GL_FRAGMENT_SHADER && - shader->ir != NULL) { - key->is_glsl = GL_TRUE; - } + if (shader != NULL && shader->ir != NULL) { + key->is_glsl = GL_TRUE; } } @@ -193,7 +218,13 @@ wm_unit_create_from_key(struct brw_context *brw, struct brw_wm_unit_key *key, wm.wm5.enable_16_pix = 1; wm.wm5.max_threads = brw->wm_max_threads - 1; - wm.wm5.thread_dispatch_enable = 1; /* AKA: color_write */ + + if (key->color_write_enable || + key->uses_kill || + key->computes_depth) { + wm.wm5.thread_dispatch_enable = 1; + } + wm.wm5.legacy_line_rast = 0; wm.wm5.legacy_global_depth_bias = 0; wm.wm5.early_depth_test = 1; /* never need to disable */ @@ -298,7 +329,8 @@ const struct brw_tracked_state brw_wm_unit = { _NEW_POLYGONSTIPPLE | _NEW_LINE | _NEW_COLOR | - _NEW_DEPTH), + _NEW_DEPTH | + _NEW_BUFFERS), .brw = (BRW_NEW_FRAGMENT_PROGRAM | BRW_NEW_CURBE_OFFSETS | diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index 05f1aa1813..5588702afc 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -89,6 +89,18 @@ static GLuint translate_tex_format( gl_format mesa_format, case MESA_FORMAT_AL1616: return BRW_SURFACEFORMAT_L16A16_UNORM; + case MESA_FORMAT_R8: + return BRW_SURFACEFORMAT_R8_UNORM; + + case MESA_FORMAT_R16: + return BRW_SURFACEFORMAT_R16_UNORM; + + case MESA_FORMAT_RG88: + return BRW_SURFACEFORMAT_R8G8_UNORM; + + case MESA_FORMAT_RG1616: + return BRW_SURFACEFORMAT_R16G16_UNORM; + case MESA_FORMAT_RGB888: assert(0); /* not supported for sampling */ return BRW_SURFACEFORMAT_R8G8B8_UNORM; @@ -197,7 +209,7 @@ brw_set_surface_tiling(struct brw_surface_state *surf, uint32_t tiling) } static void -brw_update_texture_surface( GLcontext *ctx, GLuint unit ) +brw_update_texture_surface( struct gl_context *ctx, GLuint unit ) { struct brw_context *brw = brw_context(ctx); struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current; @@ -303,7 +315,7 @@ brw_create_constant_surface(struct brw_context *brw, static void prepare_wm_constants(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; struct intel_context *intel = &brw->intel; struct brw_fragment_program *fp = (struct brw_fragment_program *) brw->fragment_program; @@ -395,7 +407,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw, unsigned int unit) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; drm_intel_bo *region_bo = NULL; struct intel_renderbuffer *irb = intel_renderbuffer(rb); struct intel_region *region = irb ? irb->region : NULL; @@ -444,6 +456,18 @@ brw_update_renderbuffer_surface(struct brw_context *brw, case MESA_FORMAT_A8: key.surface_format = BRW_SURFACEFORMAT_A8_UNORM; break; + case MESA_FORMAT_R8: + key.surface_format = BRW_SURFACEFORMAT_R8_UNORM; + break; + case MESA_FORMAT_R16: + key.surface_format = BRW_SURFACEFORMAT_R16_UNORM; + break; + case MESA_FORMAT_RG88: + key.surface_format = BRW_SURFACEFORMAT_R8G8_UNORM; + break; + case MESA_FORMAT_RG1616: + key.surface_format = BRW_SURFACEFORMAT_R16G16_UNORM; + break; default: _mesa_problem(ctx, "Bad renderbuffer format: %d\n", irb->Base.Format); } @@ -548,7 +572,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw, static void prepare_wm_surfaces(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; int i; int nr_surfaces = 0; @@ -595,7 +619,7 @@ prepare_wm_surfaces(struct brw_context *brw) static void upload_wm_surfaces(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; GLuint i; /* _NEW_BUFFERS | _NEW_COLOR */ diff --git a/src/mesa/drivers/dri/i965/gen6_cc.c b/src/mesa/drivers/dri/i965/gen6_cc.c index 26f1070a16..0d6e923f73 100644 --- a/src/mesa/drivers/dri/i965/gen6_cc.c +++ b/src/mesa/drivers/dri/i965/gen6_cc.c @@ -49,7 +49,7 @@ static void blend_state_populate_key(struct brw_context *brw, struct gen6_blend_state_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; memset(key, 0, sizeof(*key)); @@ -181,7 +181,7 @@ static void color_calc_state_populate_key(struct brw_context *brw, struct gen6_color_calc_state_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; memset(key, 0, sizeof(*key)); @@ -271,8 +271,6 @@ static void upload_cc_state_pointers(struct brw_context *brw) OUT_RELOC(brw->cc.depth_stencil_state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1); OUT_RELOC(brw->cc.state_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1); ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } diff --git a/src/mesa/drivers/dri/i965/gen6_clip_state.c b/src/mesa/drivers/dri/i965/gen6_clip_state.c index 045d9c6f76..cd2ac9d92f 100644 --- a/src/mesa/drivers/dri/i965/gen6_clip_state.c +++ b/src/mesa/drivers/dri/i965/gen6_clip_state.c @@ -34,7 +34,7 @@ static void upload_clip_state(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; uint32_t depth_clamp = 0; uint32_t provoking; @@ -60,10 +60,7 @@ upload_clip_state(struct brw_context *brw) depth_clamp | provoking); OUT_BATCH(GEN6_CLIP_FORCE_ZERO_RTAINDEX); - OUT_BATCH(0); ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } const struct brw_tracked_state gen6_clip_state = { diff --git a/src/mesa/drivers/dri/i965/gen6_depthstencil.c b/src/mesa/drivers/dri/i965/gen6_depthstencil.c index d9eca9af35..96e6eade6b 100644 --- a/src/mesa/drivers/dri/i965/gen6_depthstencil.c +++ b/src/mesa/drivers/dri/i965/gen6_depthstencil.c @@ -41,7 +41,7 @@ static void depth_stencil_state_populate_key(struct brw_context *brw, struct brw_depth_stencil_state_key *key) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; const unsigned back = ctx->Stencil._BackFace; memset(key, 0, sizeof(*key)); diff --git a/src/mesa/drivers/dri/i965/gen6_gs_state.c b/src/mesa/drivers/dri/i965/gen6_gs_state.c index cefc93ba48..6127b9197a 100644 --- a/src/mesa/drivers/dri/i965/gen6_gs_state.c +++ b/src/mesa/drivers/dri/i965/gen6_gs_state.c @@ -44,8 +44,6 @@ upload_gs_state(struct brw_context *brw) OUT_BATCH(0); ADVANCE_BATCH(); - intel_batchbuffer_emit_mi_flush(intel->batch); - if (brw->gs.prog_bo) { BEGIN_BATCH(7); OUT_BATCH(CMD_3D_GS_STATE << 16 | (7 - 2)); diff --git a/src/mesa/drivers/dri/i965/gen6_sampler_state.c b/src/mesa/drivers/dri/i965/gen6_sampler_state.c index ab8e7516d2..fc5d391c3c 100644 --- a/src/mesa/drivers/dri/i965/gen6_sampler_state.c +++ b/src/mesa/drivers/dri/i965/gen6_sampler_state.c @@ -49,8 +49,6 @@ upload_sampler_state_pointers(struct brw_context *brw) OUT_BATCH(0); ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } diff --git a/src/mesa/drivers/dri/i965/gen6_scissor_state.c b/src/mesa/drivers/dri/i965/gen6_scissor_state.c index 3d483c710c..b57126c793 100644 --- a/src/mesa/drivers/dri/i965/gen6_scissor_state.c +++ b/src/mesa/drivers/dri/i965/gen6_scissor_state.c @@ -33,7 +33,7 @@ static void prepare_scissor_state(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; const GLboolean render_to_fbo = (ctx->DrawBuffer->Name != 0); struct gen6_scissor_rect scissor; @@ -46,7 +46,19 @@ prepare_scissor_state(struct brw_context *brw) * Note that the hardware's coordinates are inclusive, while Mesa's min is * inclusive but max is exclusive. */ - if (render_to_fbo) { + if (ctx->DrawBuffer->_Xmin == ctx->DrawBuffer->_Xmax || + ctx->DrawBuffer->_Ymin == ctx->DrawBuffer->_Ymax) { + /* If the scissor was out of bounds and got clamped to 0 + * width/height at the bounds, the subtraction of 1 from + * maximums could produce a negative number and thus not clip + * anything. Instead, just provide a min > max scissor inside + * the bounds, which produces the expected no rendering. + */ + scissor.xmin = 1; + scissor.xmax = 0; + scissor.ymin = 1; + scissor.ymax = 0; + } else if (render_to_fbo) { /* texmemory: Y=0=bottom */ scissor.xmin = ctx->DrawBuffer->_Xmin; scissor.xmax = ctx->DrawBuffer->_Xmax - 1; diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c index 6c88338195..55a70bea62 100644 --- a/src/mesa/drivers/dri/i965/gen6_sf_state.c +++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c @@ -52,7 +52,7 @@ get_attr_override(struct brw_context *brw, int fs_attr) * for this output attribute. attr is currently a VERT_RESULT_* but should * be FRAG_ATTRIB_*. */ - for (i = 0; i < vs_attr; i++) { + for (i = 1; i < vs_attr; i++) { if (brw->vs.prog_data->outputs_written & BITFIELD64_BIT(i)) attr_index++; } @@ -64,7 +64,7 @@ static void upload_sf_state(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; /* CACHE_NEW_VS_PROG */ uint32_t num_inputs = brw_count_bits(brw->vs.prog_data->outputs_written); uint32_t num_outputs = brw_count_bits(brw->fragment_program->Base.InputsRead); @@ -75,6 +75,7 @@ upload_sf_state(struct brw_context *brw) int attr = 0; dw1 = + GEN6_SF_SWIZZLE_ENABLE | num_outputs << GEN6_SF_NUM_OUTPUTS_SHIFT | (num_inputs + 1) / 2 << GEN6_SF_URB_ENTRY_READ_LENGTH_SHIFT | 1 << GEN6_SF_URB_ENTRY_READ_OFFSET_SHIFT; @@ -125,7 +126,8 @@ upload_sf_state(struct brw_context *brw) } /* _NEW_POINT */ - if (ctx->Point._Attenuated) + if (!(ctx->VertexProgram.PointSizeEnabled || + ctx->Point._Attenuated)) dw4 |= GEN6_SF_USE_STATE_POINT_WIDTH; dw4 |= U_FIXED(CLAMP(ctx->Point.Size, 0.125, 225.875), 3) << @@ -185,8 +187,6 @@ upload_sf_state(struct brw_context *brw) OUT_BATCH(0); /* wrapshortest enables 0-7 */ OUT_BATCH(0); /* wrapshortest enables 8-15 */ ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } const struct brw_tracked_state gen6_sf_state = { diff --git a/src/mesa/drivers/dri/i965/gen6_urb.c b/src/mesa/drivers/dri/i965/gen6_urb.c index 5445e4035a..0a264fcd90 100644 --- a/src/mesa/drivers/dri/i965/gen6_urb.c +++ b/src/mesa/drivers/dri/i965/gen6_urb.c @@ -59,8 +59,6 @@ upload_urb(struct brw_context *brw) /* GS requirement */ assert(!brw->gs.prog_bo || brw->urb.vs_size < 5); - intel_batchbuffer_emit_mi_flush(intel->batch); - BEGIN_BATCH(3); OUT_BATCH(CMD_URB << 16 | (3 - 2)); OUT_BATCH(((brw->urb.vs_size - 1) << GEN6_URB_VS_SIZE_SHIFT) | @@ -68,8 +66,6 @@ upload_urb(struct brw_context *brw) OUT_BATCH(((brw->urb.vs_size - 1) << GEN6_URB_GS_SIZE_SHIFT) | ((brw->urb.nr_gs_entries) << GEN6_URB_GS_ENTRIES_SHIFT)); ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } const struct brw_tracked_state gen6_urb = { diff --git a/src/mesa/drivers/dri/i965/gen6_viewport_state.c b/src/mesa/drivers/dri/i965/gen6_viewport_state.c index 84bea323f8..d691bbebc8 100644 --- a/src/mesa/drivers/dri/i965/gen6_viewport_state.c +++ b/src/mesa/drivers/dri/i965/gen6_viewport_state.c @@ -65,7 +65,7 @@ const struct brw_tracked_state gen6_clip_vp = { static void prepare_sf_vp(struct brw_context *brw) { - GLcontext *ctx = &brw->intel.ctx; + struct gl_context *ctx = &brw->intel.ctx; const GLfloat depth_scale = 1.0F / ctx->DrawBuffer->_DepthMaxF; struct brw_sf_viewport sfv; GLfloat y_scale, y_bias; @@ -125,8 +125,6 @@ static void upload_viewport_state_pointers(struct brw_context *brw) OUT_RELOC(brw->sf.vp_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); OUT_RELOC(brw->cc.vp_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } const struct brw_tracked_state gen6_viewport_state = { diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c b/src/mesa/drivers/dri/i965/gen6_vs_state.c index 50047a33a8..304eaddf40 100644 --- a/src/mesa/drivers/dri/i965/gen6_vs_state.c +++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c @@ -37,7 +37,7 @@ static void upload_vs_state(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; const struct brw_vertex_program *vp = brw_vertex_program_const(brw->vertex_program); unsigned int nr_params = vp->program.Base.Parameters->NumParameters; @@ -88,8 +88,6 @@ upload_vs_state(struct brw_context *brw) drm_intel_bo_unreference(constant_bo); } - intel_batchbuffer_emit_mi_flush(intel->batch); - BEGIN_BATCH(6); OUT_BATCH(CMD_3D_VS_STATE << 16 | (6 - 2)); OUT_RELOC(brw->vs.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); @@ -103,8 +101,6 @@ upload_vs_state(struct brw_context *brw) GEN6_VS_STATISTICS_ENABLE | GEN6_VS_ENABLE); ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } const struct brw_tracked_state gen6_vs_state = { diff --git a/src/mesa/drivers/dri/i965/gen6_wm_state.c b/src/mesa/drivers/dri/i965/gen6_wm_state.c index d88c86a1b2..21059be965 100644 --- a/src/mesa/drivers/dri/i965/gen6_wm_state.c +++ b/src/mesa/drivers/dri/i965/gen6_wm_state.c @@ -29,6 +29,7 @@ #include "brw_state.h" #include "brw_defines.h" #include "brw_util.h" +#include "brw_wm.h" #include "program/prog_parameter.h" #include "program/prog_statevars.h" #include "intel_batchbuffer.h" @@ -37,7 +38,7 @@ static void prepare_wm_constants(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; const struct brw_fragment_program *fp = brw_fragment_program_const(brw->fragment_program); @@ -81,7 +82,7 @@ static void upload_wm_state(struct brw_context *brw) { struct intel_context *intel = &brw->intel; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; const struct brw_fragment_program *fp = brw_fragment_program_const(brw->fragment_program); uint32_t dw2, dw4, dw5, dw6; @@ -109,8 +110,6 @@ upload_wm_state(struct brw_context *brw) ADVANCE_BATCH(); } - intel_batchbuffer_emit_mi_flush(intel->batch); - dw2 = dw4 = dw5 = dw6 = 0; dw4 |= GEN6_WM_STATISTICS_ENABLE; dw5 |= GEN6_WM_LINE_AA_WIDTH_1_0; @@ -125,7 +124,6 @@ upload_wm_state(struct brw_context *brw) GEN6_WM_DISPATCH_START_GRF_SHIFT_0); dw5 |= (40 - 1) << GEN6_WM_MAX_THREADS_SHIFT; - dw5 |= GEN6_WM_DISPATCH_ENABLE; /* BRW_NEW_FRAGMENT_PROGRAM */ if (fp->isGLSL) @@ -151,6 +149,11 @@ upload_wm_state(struct brw_context *brw) if (fp->program.UsesKill || ctx->Color.AlphaEnabled) dw5 |= GEN6_WM_KILL_ENABLE; + if (brw_color_buffer_write_enabled(brw) || + dw5 & (GEN6_WM_KILL_ENABLE | GEN6_WM_COMPUTED_DEPTH)) { + dw5 |= GEN6_WM_DISPATCH_ENABLE; + } + dw6 |= GEN6_WM_PERSPECTIVE_PIXEL_BARYCENTRIC; dw6 |= brw_count_bits(brw->fragment_program->Base.InputsRead) << @@ -167,13 +170,12 @@ upload_wm_state(struct brw_context *brw) OUT_BATCH(0); /* kernel 1 pointer */ OUT_BATCH(0); /* kernel 2 pointer */ ADVANCE_BATCH(); - - intel_batchbuffer_emit_mi_flush(intel->batch); } const struct brw_tracked_state gen6_wm_state = { .dirty = { - .mesa = _NEW_LINE | _NEW_POLYGONSTIPPLE | _NEW_COLOR, + .mesa = (_NEW_LINE | _NEW_POLYGONSTIPPLE | _NEW_COLOR | _NEW_BUFFERS | + _NEW_PROGRAM_CONSTANTS), .brw = (BRW_NEW_CURBE_OFFSETS | BRW_NEW_FRAGMENT_PROGRAM | BRW_NEW_NR_WM_SURFACES | diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c index 2c85ad3c36..a74e21720f 100644 --- a/src/mesa/drivers/dri/intel/intel_blit.c +++ b/src/mesa/drivers/dri/intel/intel_blit.c @@ -210,7 +210,7 @@ intelEmitCopyBlit(struct intel_context *intel, * \param mask bitmask of BUFFER_BIT_* values indicating buffers to clear */ void -intelClearWithBlit(GLcontext *ctx, GLbitfield mask) +intelClearWithBlit(struct gl_context *ctx, GLbitfield mask) { struct intel_context *intel = intel_context(ctx); struct gl_framebuffer *fb = ctx->DrawBuffer; diff --git a/src/mesa/drivers/dri/intel/intel_blit.h b/src/mesa/drivers/dri/intel/intel_blit.h index 70d277df3c..0163146573 100644 --- a/src/mesa/drivers/dri/intel/intel_blit.h +++ b/src/mesa/drivers/dri/intel/intel_blit.h @@ -33,7 +33,7 @@ extern void intelCopyBuffer(const __DRIdrawable * dpriv, const drm_clip_rect_t * rect); -extern void intelClearWithBlit(GLcontext * ctx, GLbitfield mask); +extern void intelClearWithBlit(struct gl_context * ctx, GLbitfield mask); GLboolean intelEmitCopyBlit(struct intel_context *intel, diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c index 117d4daf3b..87da60a771 100644 --- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c +++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c @@ -40,7 +40,7 @@ #include "intel_regions.h" static GLboolean -intel_bufferobj_unmap(GLcontext * ctx, +intel_bufferobj_unmap(struct gl_context * ctx, GLenum target, struct gl_buffer_object *obj); /** Allocates a new drm_intel_bo to store the data for the buffer object. */ @@ -59,7 +59,7 @@ intel_bufferobj_alloc_buffer(struct intel_context *intel, * internal structure where somehow shared. */ static struct gl_buffer_object * -intel_bufferobj_alloc(GLcontext * ctx, GLuint name, GLenum target) +intel_bufferobj_alloc(struct gl_context * ctx, GLuint name, GLenum target) { struct intel_buffer_object *obj = CALLOC_STRUCT(intel_buffer_object); @@ -101,7 +101,7 @@ intel_bufferobj_cow(struct intel_context *intel, * Called via glDeleteBuffersARB(). */ static void -intel_bufferobj_free(GLcontext * ctx, struct gl_buffer_object *obj) +intel_bufferobj_free(struct gl_context * ctx, struct gl_buffer_object *obj) { struct intel_context *intel = intel_context(ctx); struct intel_buffer_object *intel_obj = intel_buffer_object(obj); @@ -136,7 +136,7 @@ intel_bufferobj_free(GLcontext * ctx, struct gl_buffer_object *obj) * \return GL_TRUE for success, GL_FALSE if out of memory */ static GLboolean -intel_bufferobj_data(GLcontext * ctx, +intel_bufferobj_data(struct gl_context * ctx, GLenum target, GLsizeiptrARB size, const GLvoid * data, @@ -193,7 +193,7 @@ intel_bufferobj_data(GLcontext * ctx, * Called via glBufferSubDataARB(). */ static void -intel_bufferobj_subdata(GLcontext * ctx, +intel_bufferobj_subdata(struct gl_context * ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, @@ -214,21 +214,28 @@ intel_bufferobj_subdata(GLcontext * ctx, memcpy((char *)intel_obj->sys_buffer + offset, data, size); else { /* Flush any existing batchbuffer that might reference this data. */ - if (drm_intel_bo_busy(intel_obj->buffer) || - drm_intel_bo_references(intel->batch->buf, intel_obj->buffer)) { - drm_intel_bo *temp_bo; + if (intel->gen < 6) { + if (drm_intel_bo_busy(intel_obj->buffer) || + drm_intel_bo_references(intel->batch->buf, intel_obj->buffer)) { + drm_intel_bo *temp_bo; - temp_bo = drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); + temp_bo = drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64); - drm_intel_bo_subdata(temp_bo, 0, size, data); + drm_intel_bo_subdata(temp_bo, 0, size, data); - intel_emit_linear_blit(intel, - intel_obj->buffer, offset, - temp_bo, 0, - size); + intel_emit_linear_blit(intel, + intel_obj->buffer, offset, + temp_bo, 0, + size); - drm_intel_bo_unreference(temp_bo); + drm_intel_bo_unreference(temp_bo); + } else { + drm_intel_bo_subdata(intel_obj->buffer, offset, size, data); + } } else { + if (drm_intel_bo_references(intel->batch->buf, intel_obj->buffer)) { + intel_batchbuffer_flush(intel->batch); + } drm_intel_bo_subdata(intel_obj->buffer, offset, size, data); } } @@ -239,7 +246,7 @@ intel_bufferobj_subdata(GLcontext * ctx, * Called via glGetBufferSubDataARB(). */ static void -intel_bufferobj_get_subdata(GLcontext * ctx, +intel_bufferobj_get_subdata(struct gl_context * ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, @@ -260,7 +267,7 @@ intel_bufferobj_get_subdata(GLcontext * ctx, * Called via glMapBufferARB(). */ static void * -intel_bufferobj_map(GLcontext * ctx, +intel_bufferobj_map(struct gl_context * ctx, GLenum target, GLenum access, struct gl_buffer_object *obj) { @@ -322,7 +329,7 @@ intel_bufferobj_map(GLcontext * ctx, * and blit it into the real BO at unmap time. */ static void * -intel_bufferobj_map_range(GLcontext * ctx, +intel_bufferobj_map_range(struct gl_context * ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, struct gl_buffer_object *obj) { @@ -415,7 +422,7 @@ intel_bufferobj_map_range(GLcontext * ctx, * would defeat the point. */ static void -intel_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target, +intel_bufferobj_flush_mapped_range(struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, struct gl_buffer_object *obj) { @@ -449,7 +456,7 @@ intel_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target, * Called via glUnmapBuffer(). */ static GLboolean -intel_bufferobj_unmap(GLcontext * ctx, +intel_bufferobj_unmap(struct gl_context * ctx, GLenum target, struct gl_buffer_object *obj) { struct intel_context *intel = intel_context(ctx); @@ -537,7 +544,7 @@ intel_bufferobj_buffer(struct intel_context *intel, } static void -intel_bufferobj_copy_subdata(GLcontext *ctx, +intel_bufferobj_copy_subdata(struct gl_context *ctx, struct gl_buffer_object *src, struct gl_buffer_object *dst, GLintptr read_offset, GLintptr write_offset, @@ -552,7 +559,7 @@ intel_bufferobj_copy_subdata(GLcontext *ctx, return; /* If we're in system memory, just map and memcpy. */ - if (intel_src->sys_buffer || intel_dst->sys_buffer) { + if (intel_src->sys_buffer || intel_dst->sys_buffer || intel->gen >= 6) { /* The same buffer may be used, but note that regions copied may * not overlap. */ @@ -575,6 +582,7 @@ intel_bufferobj_copy_subdata(GLcontext *ctx, intel_bufferobj_unmap(ctx, GL_COPY_READ_BUFFER, src); intel_bufferobj_unmap(ctx, GL_COPY_WRITE_BUFFER, dst); } + return; } /* Otherwise, we have real BOs, so blit them. */ @@ -596,7 +604,7 @@ intel_bufferobj_copy_subdata(GLcontext *ctx, #if FEATURE_APPLE_object_purgeable static GLenum -intel_buffer_purgeable(GLcontext * ctx, +intel_buffer_purgeable(struct gl_context * ctx, drm_intel_bo *buffer, GLenum option) { @@ -609,7 +617,7 @@ intel_buffer_purgeable(GLcontext * ctx, } static GLenum -intel_buffer_object_purgeable(GLcontext * ctx, +intel_buffer_object_purgeable(struct gl_context * ctx, struct gl_buffer_object *obj, GLenum option) { @@ -636,7 +644,7 @@ intel_buffer_object_purgeable(GLcontext * ctx, } static GLenum -intel_texture_object_purgeable(GLcontext * ctx, +intel_texture_object_purgeable(struct gl_context * ctx, struct gl_texture_object *obj, GLenum option) { @@ -650,7 +658,7 @@ intel_texture_object_purgeable(GLcontext * ctx, } static GLenum -intel_render_object_purgeable(GLcontext * ctx, +intel_render_object_purgeable(struct gl_context * ctx, struct gl_renderbuffer *obj, GLenum option) { @@ -664,7 +672,7 @@ intel_render_object_purgeable(GLcontext * ctx, } static GLenum -intel_buffer_unpurgeable(GLcontext * ctx, +intel_buffer_unpurgeable(struct gl_context * ctx, drm_intel_bo *buffer, GLenum option) { @@ -678,7 +686,7 @@ intel_buffer_unpurgeable(GLcontext * ctx, } static GLenum -intel_buffer_object_unpurgeable(GLcontext * ctx, +intel_buffer_object_unpurgeable(struct gl_context * ctx, struct gl_buffer_object *obj, GLenum option) { @@ -686,7 +694,7 @@ intel_buffer_object_unpurgeable(GLcontext * ctx, } static GLenum -intel_texture_object_unpurgeable(GLcontext * ctx, +intel_texture_object_unpurgeable(struct gl_context * ctx, struct gl_texture_object *obj, GLenum option) { @@ -700,7 +708,7 @@ intel_texture_object_unpurgeable(GLcontext * ctx, } static GLenum -intel_render_object_unpurgeable(GLcontext * ctx, +intel_render_object_unpurgeable(struct gl_context * ctx, struct gl_renderbuffer *obj, GLenum option) { diff --git a/src/mesa/drivers/dri/intel/intel_buffers.c b/src/mesa/drivers/dri/intel/intel_buffers.c index 1bff344a45..ee551ef60d 100644 --- a/src/mesa/drivers/dri/intel/intel_buffers.c +++ b/src/mesa/drivers/dri/intel/intel_buffers.c @@ -88,7 +88,7 @@ intel_check_front_buffer_rendering(struct intel_context *intel) * color buffers. */ void -intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb) +intel_draw_buffer(struct gl_context * ctx, struct gl_framebuffer *fb) { struct intel_context *intel = intel_context(ctx); struct intel_region *colorRegions[MAX_DRAW_BUFFERS], *depthRegion = NULL; @@ -262,7 +262,7 @@ intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb) static void -intelDrawBuffer(GLcontext * ctx, GLenum mode) +intelDrawBuffer(struct gl_context * ctx, GLenum mode) { if ((ctx->DrawBuffer != NULL) && (ctx->DrawBuffer->Name == 0)) { struct intel_context *const intel = intel_context(ctx); @@ -285,7 +285,7 @@ intelDrawBuffer(GLcontext * ctx, GLenum mode) static void -intelReadBuffer(GLcontext * ctx, GLenum mode) +intelReadBuffer(struct gl_context * ctx, GLenum mode) { if ((ctx->DrawBuffer != NULL) && (ctx->DrawBuffer->Name == 0)) { struct intel_context *const intel = intel_context(ctx); diff --git a/src/mesa/drivers/dri/intel/intel_buffers.h b/src/mesa/drivers/dri/intel/intel_buffers.h index abb86aade6..2d4613b295 100644 --- a/src/mesa/drivers/dri/intel/intel_buffers.h +++ b/src/mesa/drivers/dri/intel/intel_buffers.h @@ -41,7 +41,7 @@ extern struct intel_region *intel_drawbuf_region(struct intel_context *intel); extern void intel_check_front_buffer_rendering(struct intel_context *intel); -extern void intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb); +extern void intel_draw_buffer(struct gl_context * ctx, struct gl_framebuffer *fb); extern void intelInitBufferFuncs(struct dd_function_table *functions); @@ -50,7 +50,7 @@ void intel_get_cliprects(struct intel_context *intel, unsigned int *num_cliprects, int *x_off, int *y_off); #ifdef I915 -void intelCalcViewport(GLcontext * ctx); +void intelCalcViewport(struct gl_context * ctx); #endif #endif /* INTEL_BUFFERS_H */ diff --git a/src/mesa/drivers/dri/intel/intel_clear.c b/src/mesa/drivers/dri/intel/intel_clear.c index 3c22118866..d7814635b7 100644 --- a/src/mesa/drivers/dri/intel/intel_clear.c +++ b/src/mesa/drivers/dri/intel/intel_clear.c @@ -62,7 +62,7 @@ static const char *buffer_names[] = { * Called by ctx->Driver.Clear. */ static void -intelClear(GLcontext *ctx, GLbitfield mask) +intelClear(struct gl_context *ctx, GLbitfield mask) { struct intel_context *intel = intel_context(ctx); const GLuint colorMask = *((GLuint *) & ctx->Color.ColorMask[0]); diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index edcc9536da..7ace50bde9 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -67,7 +67,7 @@ int INTEL_DEBUG = (0); static const GLubyte * -intelGetString(GLcontext * ctx, GLenum name) +intelGetString(struct gl_context * ctx, GLenum name) { const struct intel_context *const intel = intel_context(ctx); const char *chipset; @@ -163,6 +163,19 @@ intelGetString(GLcontext * ctx, GLenum name) case PCI_CHIP_ILM_G: chipset = "Intel(R) Ironlake Mobile"; break; + case PCI_CHIP_SANDYBRIDGE_GT1: + case PCI_CHIP_SANDYBRIDGE_GT2: + case PCI_CHIP_SANDYBRIDGE_GT2_PLUS: + chipset = "Intel(R) Sandybridge Desktop"; + break; + case PCI_CHIP_SANDYBRIDGE_M_GT1: + case PCI_CHIP_SANDYBRIDGE_M_GT2: + case PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS: + chipset = "Intel(R) Sandybridge Mobile"; + break; + case PCI_CHIP_SANDYBRIDGE_S: + chipset = "Intel(R) Sandybridge Server"; + break; default: chipset = "Unknown Intel Chipset"; break; @@ -177,7 +190,7 @@ intelGetString(GLcontext * ctx, GLenum name) } static void -intel_flush_front(GLcontext *ctx) +intel_flush_front(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); __DRIcontext *driContext = intel->driContext; @@ -465,7 +478,7 @@ intel_prepare_render(struct intel_context *intel) } static void -intel_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) +intel_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { struct intel_context *intel = intel_context(ctx); __DRIcontext *driContext = intel->driContext; @@ -514,7 +527,7 @@ static const struct dri_debug_control debug_control[] = { static void -intelInvalidateState(GLcontext * ctx, GLuint new_state) +intelInvalidateState(struct gl_context * ctx, GLuint new_state) { struct intel_context *intel = intel_context(ctx); @@ -531,7 +544,7 @@ intelInvalidateState(GLcontext * ctx, GLuint new_state) } void -intel_flush(GLcontext *ctx) +intel_flush(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); @@ -546,7 +559,7 @@ intel_flush(GLcontext *ctx) } static void -intel_glFlush(GLcontext *ctx) +intel_glFlush(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); @@ -556,7 +569,7 @@ intel_glFlush(GLcontext *ctx) } void -intelFinish(GLcontext * ctx) +intelFinish(struct gl_context * ctx) { struct gl_framebuffer *fb = ctx->DrawBuffer; int i; @@ -603,17 +616,17 @@ intelInitDriverFunctions(struct dd_function_table *functions) GLboolean intelInitContext(struct intel_context *intel, int api, - const __GLcontextModes * mesaVis, + const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate, struct dd_function_table *functions) { - GLcontext *ctx = &intel->ctx; - GLcontext *shareCtx = (GLcontext *) sharedContextPrivate; + struct gl_context *ctx = &intel->ctx; + struct gl_context *shareCtx = (struct gl_context *) sharedContextPrivate; __DRIscreen *sPriv = driContextPriv->driScreenPriv; struct intel_screen *intelScreen = sPriv->private; int bo_reuse_mode; - __GLcontextModes visual; + struct gl_config visual; /* we can't do anything without a connection to the device */ if (intelScreen->bufmgr == NULL) @@ -724,7 +737,7 @@ intelInitContext(struct intel_context *intel, ctx->Const.MaxSamples = 1.0; /* reinitialize the context point state. - * It depend on constants in __GLcontextRec::Const + * It depend on constants in __struct gl_contextRec::Const */ _mesa_init_point(ctx); diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h index 28d53284fd..46d10d74ba 100644 --- a/src/mesa/drivers/dri/intel/intel_context.h +++ b/src/mesa/drivers/dri/intel/intel_context.h @@ -106,11 +106,11 @@ struct intel_sync_object { }; /** - * intel_context is derived from Mesa's context class: GLcontext. + * intel_context is derived from Mesa's context class: struct gl_context. */ struct intel_context { - GLcontext ctx; /**< base class, must be first field */ + struct gl_context ctx; /**< base class, must be first field */ struct { @@ -256,7 +256,7 @@ struct intel_context __DRIcontext *driContext; struct intel_screen *intelScreen; - void (*saved_viewport)(GLcontext * ctx, + void (*saved_viewport)(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height); /** @@ -383,13 +383,13 @@ extern int INTEL_DEBUG; extern GLboolean intelInitContext(struct intel_context *intel, int api, - const __GLcontextModes * mesaVis, + const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate, struct dd_function_table *functions); -extern void intelFinish(GLcontext * ctx); -extern void intel_flush(GLcontext * ctx); +extern void intelFinish(struct gl_context * ctx); +extern void intel_flush(struct gl_context * ctx); extern void intelInitDriverFunctions(struct dd_function_table *functions); @@ -476,7 +476,7 @@ void i915_set_buf_info_for_region(uint32_t *state, struct intel_region *region, * These are better-typed than the macros used previously: */ static INLINE struct intel_context * -intel_context(GLcontext * ctx) +intel_context(struct gl_context * ctx) { return (struct intel_context *) ctx; } diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c index d741f82767..974045730b 100644 --- a/src/mesa/drivers/dri/intel/intel_extensions.c +++ b/src/mesa/drivers/dri/intel/intel_extensions.c @@ -78,6 +78,7 @@ */ static const struct dri_extension card_extensions[] = { { "GL_ARB_draw_elements_base_vertex", GL_ARB_draw_elements_base_vertex_functions }, + { "GL_ARB_explicit_attrib_location", NULL }, { "GL_ARB_half_float_pixel", NULL }, { "GL_ARB_map_buffer_range", GL_ARB_map_buffer_range_functions }, { "GL_ARB_multitexture", NULL }, @@ -166,6 +167,7 @@ static const struct dri_extension brw_extensions[] = { { "GL_ARB_shadow", NULL }, { "GL_MESA_texture_signed_rgba", NULL }, { "GL_ARB_texture_non_power_of_two", NULL }, + { "GL_ARB_texture_rg", NULL }, { "GL_EXT_draw_buffers2", GL_EXT_draw_buffers2_functions }, { "GL_EXT_shadow_funcs", NULL }, { "GL_EXT_stencil_two_side", GL_EXT_stencil_two_side_functions }, @@ -195,18 +197,35 @@ static const struct dri_extension fragment_shader_extensions[] = { }; /** + * \brief Get GLSL version from the environment. + * + * If the environment variable INTEL_GLSL_VERSION is set, convert its value + * to an integer and return it. Otherwise, return the default version, 120. + */ +static GLuint +get_glsl_version() +{ + const char * s = getenv("INTEL_GLSL_VERSION"); + if (s == NULL) + return 120; + else + return (GLuint) atoi(s); +} + +/** * Initializes potential list of extensions if ctx == NULL, or actually enables * extensions for a context. */ void -intelInitExtensions(GLcontext *ctx) +intelInitExtensions(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); driInitExtensions(ctx, card_extensions, GL_FALSE); _mesa_map_function_array(GL_VERSION_2_1_functions); - ctx->Const.GLSLVersion = 120; + + ctx->Const.GLSLVersion = get_glsl_version(); if (intel->gen >= 5) driInitExtensions(ctx, ironlake_extensions, GL_FALSE); diff --git a/src/mesa/drivers/dri/intel/intel_extensions.h b/src/mesa/drivers/dri/intel/intel_extensions.h index 236442a4d6..fb2a846d39 100644 --- a/src/mesa/drivers/dri/intel/intel_extensions.h +++ b/src/mesa/drivers/dri/intel/intel_extensions.h @@ -30,10 +30,10 @@ extern void -intelInitExtensions(GLcontext *ctx); +intelInitExtensions(struct gl_context *ctx); extern void -intelInitExtensionsES2(GLcontext *ctx); +intelInitExtensionsES2(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/intel/intel_extensions_es2.c b/src/mesa/drivers/dri/intel/intel_extensions_es2.c index 24f64045ef..71c86339c7 100644 --- a/src/mesa/drivers/dri/intel/intel_extensions_es2.c +++ b/src/mesa/drivers/dri/intel/intel_extensions_es2.c @@ -69,6 +69,7 @@ static const char *es2_extensions[] = { "GL_ARB_depth_texture", "GL_EXT_packed_depth_stencil", "GL_EXT_framebuffer_object", + "GL_EXT_texture_format_BGRA8888", #if FEATURE_OES_EGL_image "GL_OES_EGL_image", @@ -82,7 +83,7 @@ static const char *es2_extensions[] = { * extensions for a context. */ void -intelInitExtensionsES2(GLcontext *ctx) +intelInitExtensionsES2(struct gl_context *ctx) { int i; diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index 984585027c..862a13d2ea 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -50,7 +50,7 @@ * Create a new framebuffer object. */ static struct gl_framebuffer * -intel_new_framebuffer(GLcontext * ctx, GLuint name) +intel_new_framebuffer(struct gl_context * ctx, GLuint name) { /* Only drawable state in intel_framebuffer at this time, just use Mesa's * class @@ -81,7 +81,7 @@ intel_delete_renderbuffer(struct gl_renderbuffer *rb) * Return a pointer to a specific pixel in a renderbuffer. */ static void * -intel_get_pointer(GLcontext * ctx, struct gl_renderbuffer *rb, +intel_get_pointer(struct gl_context * ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { /* By returning NULL we force all software rendering to go through @@ -96,17 +96,35 @@ intel_get_pointer(GLcontext * ctx, struct gl_renderbuffer *rb, * storage for a user-created renderbuffer. */ static GLboolean -intel_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb, +intel_alloc_renderbuffer_storage(struct gl_context * ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { struct intel_context *intel = intel_context(ctx); struct intel_renderbuffer *irb = intel_renderbuffer(rb); - int cpp; + int cpp, tiling; ASSERT(rb->Name != 0); switch (internalFormat) { + case GL_RED: + case GL_R8: + rb->Format = MESA_FORMAT_R8; + rb->DataType = GL_UNSIGNED_BYTE; + break; + case GL_R16: + rb->Format = MESA_FORMAT_R16; + rb->DataType = GL_UNSIGNED_SHORT; + break; + case GL_RG: + case GL_RG8: + rb->Format = MESA_FORMAT_RG88; + rb->DataType = GL_UNSIGNED_BYTE; + break; + case GL_RG16: + rb->Format = MESA_FORMAT_RG1616; + rb->DataType = GL_UNSIGNED_SHORT; + break; case GL_R3_G3_B2: case GL_RGB4: case GL_RGB5: @@ -176,7 +194,13 @@ intel_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb, /* alloc hardware renderbuffer */ DBG("Allocating %d x %d Intel RBO\n", width, height); - irb->region = intel_region_alloc(intel->intelScreen, I915_TILING_NONE, cpp, + tiling = I915_TILING_NONE; + + /* Gen6 requires depth must be tiling */ + if (intel->gen >= 6 && rb->Format == MESA_FORMAT_S8_Z24) + tiling = I915_TILING_Y; + + irb->region = intel_region_alloc(intel->intelScreen, tiling, cpp, width, height, GL_TRUE); if (!irb->region) return GL_FALSE; /* out of memory? */ @@ -192,7 +216,7 @@ intel_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb, #if FEATURE_OES_EGL_image static void -intel_image_target_renderbuffer_storage(GLcontext *ctx, +intel_image_target_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, void *image_handle) { @@ -228,7 +252,7 @@ intel_image_target_renderbuffer_storage(GLcontext *ctx, * Not used for user-created renderbuffers! */ static GLboolean -intel_alloc_window_storage(GLcontext * ctx, struct gl_renderbuffer *rb, +intel_alloc_window_storage(struct gl_context * ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { ASSERT(rb->Name == 0); @@ -241,7 +265,7 @@ intel_alloc_window_storage(GLcontext * ctx, struct gl_renderbuffer *rb, static void -intel_resize_buffers(GLcontext *ctx, struct gl_framebuffer *fb, +intel_resize_buffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height) { int i; @@ -269,7 +293,7 @@ intel_resize_buffers(GLcontext *ctx, struct gl_framebuffer *fb, /** Dummy function for gl_renderbuffer::AllocStorage() */ static GLboolean -intel_nop_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb, +intel_nop_alloc_storage(struct gl_context * ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { _mesa_problem(ctx, "intel_op_alloc_storage should never be called."); @@ -340,6 +364,14 @@ intel_create_renderbuffer(gl_format format) irb->Base._BaseFormat = GL_ALPHA; irb->Base.DataType = GL_UNSIGNED_BYTE; break; + case MESA_FORMAT_R8: + irb->Base._BaseFormat = GL_RED; + irb->Base.DataType = GL_UNSIGNED_BYTE; + break; + case MESA_FORMAT_RG88: + irb->Base._BaseFormat = GL_RG; + irb->Base.DataType = GL_UNSIGNED_BYTE; + break; default: _mesa_problem(NULL, "Unexpected intFormat in intel_create_renderbuffer"); @@ -364,7 +396,7 @@ intel_create_renderbuffer(gl_format format) * Typically called via glBindRenderbufferEXT(). */ static struct gl_renderbuffer * -intel_new_renderbuffer(GLcontext * ctx, GLuint name) +intel_new_renderbuffer(struct gl_context * ctx, GLuint name) { /*struct intel_context *intel = intel_context(ctx); */ struct intel_renderbuffer *irb; @@ -392,7 +424,7 @@ intel_new_renderbuffer(GLcontext * ctx, GLuint name) * Called via glBindFramebufferEXT(). */ static void -intel_bind_framebuffer(GLcontext * ctx, GLenum target, +intel_bind_framebuffer(struct gl_context * ctx, GLenum target, struct gl_framebuffer *fb, struct gl_framebuffer *fbread) { if (target == GL_FRAMEBUFFER_EXT || target == GL_DRAW_FRAMEBUFFER_EXT) { @@ -408,7 +440,7 @@ intel_bind_framebuffer(GLcontext * ctx, GLenum target, * Called via glFramebufferRenderbufferEXT(). */ static void -intel_framebuffer_renderbuffer(GLcontext * ctx, +intel_framebuffer_renderbuffer(struct gl_context * ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb) { @@ -422,7 +454,7 @@ intel_framebuffer_renderbuffer(GLcontext * ctx, static GLboolean -intel_update_wrapper(GLcontext *ctx, struct intel_renderbuffer *irb, +intel_update_wrapper(struct gl_context *ctx, struct intel_renderbuffer *irb, struct gl_texture_image *texImage) { if (texImage->TexFormat == MESA_FORMAT_ARGB8888) { @@ -453,6 +485,22 @@ intel_update_wrapper(GLcontext *ctx, struct intel_renderbuffer *irb, irb->Base.DataType = GL_UNSIGNED_BYTE; DBG("Render to A8 texture OK\n"); } + else if (texImage->TexFormat == MESA_FORMAT_R8) { + irb->Base.DataType = GL_UNSIGNED_BYTE; + DBG("Render to R8 texture OK\n"); + } + else if (texImage->TexFormat == MESA_FORMAT_RG88) { + irb->Base.DataType = GL_UNSIGNED_BYTE; + DBG("Render to RG88 texture OK\n"); + } + else if (texImage->TexFormat == MESA_FORMAT_R16) { + irb->Base.DataType = GL_UNSIGNED_SHORT; + DBG("Render to R8 texture OK\n"); + } + else if (texImage->TexFormat == MESA_FORMAT_RG1616) { + irb->Base.DataType = GL_UNSIGNED_SHORT; + DBG("Render to RG88 texture OK\n"); + } else if (texImage->TexFormat == MESA_FORMAT_Z16) { irb->Base.DataType = GL_UNSIGNED_SHORT; DBG("Render to DEPTH16 texture OK\n"); @@ -487,7 +535,7 @@ intel_update_wrapper(GLcontext *ctx, struct intel_renderbuffer *irb, * This will have the region info needed for hardware rendering. */ static struct intel_renderbuffer * -intel_wrap_texture(GLcontext * ctx, struct gl_texture_image *texImage) +intel_wrap_texture(struct gl_context * ctx, struct gl_texture_image *texImage) { const GLuint name = ~0; /* not significant, but distinct for debugging */ struct intel_renderbuffer *irb; @@ -518,7 +566,7 @@ intel_wrap_texture(GLcontext * ctx, struct gl_texture_image *texImage) * before intel_finish_render_texture() is ever called. */ static void -intel_render_texture(GLcontext * ctx, +intel_render_texture(struct gl_context * ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att) { @@ -594,7 +642,7 @@ intel_render_texture(GLcontext * ctx, * Called by Mesa when rendering to a texture is done. */ static void -intel_finish_render_texture(GLcontext * ctx, +intel_finish_render_texture(struct gl_context * ctx, struct gl_renderbuffer_attachment *att) { struct intel_context *intel = intel_context(ctx); @@ -621,7 +669,7 @@ intel_finish_render_texture(GLcontext * ctx, * Do additional "completeness" testing of a framebuffer object. */ static void -intel_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) +intel_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb) { const struct intel_renderbuffer *depthRb = intel_get_renderbuffer(fb, BUFFER_DEPTH); @@ -667,6 +715,10 @@ intel_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) case MESA_FORMAT_ARGB1555: case MESA_FORMAT_ARGB4444: case MESA_FORMAT_A8: + case MESA_FORMAT_R8: + case MESA_FORMAT_R16: + case MESA_FORMAT_RG88: + case MESA_FORMAT_RG1616: break; default: fb->_Status = GL_FRAMEBUFFER_UNSUPPORTED_EXT; diff --git a/src/mesa/drivers/dri/intel/intel_pixel.c b/src/mesa/drivers/dri/intel/intel_pixel.c index cb088e4032..60583ef4c0 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel.c +++ b/src/mesa/drivers/dri/intel/intel_pixel.c @@ -55,7 +55,7 @@ effective_func(GLenum func, GLboolean src_alpha_is_one) * glDraw/CopyPixels. */ GLboolean -intel_check_blit_fragment_ops(GLcontext * ctx, GLboolean src_alpha_is_one) +intel_check_blit_fragment_ops(struct gl_context * ctx, GLboolean src_alpha_is_one) { if (ctx->NewState) _mesa_update_state(ctx); diff --git a/src/mesa/drivers/dri/intel/intel_pixel.h b/src/mesa/drivers/dri/intel/intel_pixel.h index 743b6497c5..aef0e609da 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel.h +++ b/src/mesa/drivers/dri/intel/intel_pixel.h @@ -31,21 +31,21 @@ #include "main/mtypes.h" void intelInitPixelFuncs(struct dd_function_table *functions); -GLboolean intel_check_blit_fragment_ops(GLcontext * ctx, +GLboolean intel_check_blit_fragment_ops(struct gl_context * ctx, GLboolean src_alpha_is_one); GLboolean intel_check_blit_format(struct intel_region *region, GLenum format, GLenum type); -void intelReadPixels(GLcontext * ctx, +void intelReadPixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, GLvoid * pixels); -void intelDrawPixels(GLcontext * ctx, +void intelDrawPixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, @@ -53,12 +53,12 @@ void intelDrawPixels(GLcontext * ctx, const struct gl_pixelstore_attrib *unpack, const GLvoid * pixels); -void intelCopyPixels(GLcontext * ctx, +void intelCopyPixels(struct gl_context * ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint destx, GLint desty, GLenum type); -void intelBitmap(GLcontext * ctx, +void intelBitmap(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, diff --git a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c index 23410f063c..63fb4b37b1 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c @@ -58,7 +58,7 @@ * PBO bitmaps. I think they are probably pretty rare though - I * wonder if Xgl uses them? */ -static const GLubyte *map_pbo( GLcontext *ctx, +static const GLubyte *map_pbo( struct gl_context *ctx, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ) @@ -167,7 +167,7 @@ y_flip(struct gl_framebuffer *fb, int y, int height) * Render a bitmap. */ static GLboolean -do_blit_bitmap( GLcontext *ctx, +do_blit_bitmap( struct gl_context *ctx, GLint dstx, GLint dsty, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, @@ -320,7 +320,7 @@ out: * - Chop bitmap up into 32x32 squares and render w/polygon stipple. */ void -intelBitmap(GLcontext * ctx, +intelBitmap(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c index 2008a4c2be..c6b36ed429 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_copy.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_copy.c @@ -76,7 +76,7 @@ copypix_src_region(struct intel_context *intel, GLenum type) * we allow Scissor. */ static GLboolean -intel_check_copypixel_blit_fragment_ops(GLcontext * ctx) +intel_check_copypixel_blit_fragment_ops(struct gl_context * ctx) { if (ctx->NewState) _mesa_update_state(ctx); @@ -102,7 +102,7 @@ intel_check_copypixel_blit_fragment_ops(GLcontext * ctx) * CopyPixels with the blitter. Don't support zooming, pixel transfer, etc. */ static GLboolean -do_blit_copypixels(GLcontext * ctx, +do_blit_copypixels(struct gl_context * ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type) @@ -198,7 +198,7 @@ out: void -intelCopyPixels(GLcontext * ctx, +intelCopyPixels(struct gl_context * ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint destx, GLint desty, GLenum type) diff --git a/src/mesa/drivers/dri/intel/intel_pixel_draw.c b/src/mesa/drivers/dri/intel/intel_pixel_draw.c index 470c4b9326..2ec7ed8e26 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_draw.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_draw.c @@ -39,7 +39,7 @@ #include "intel_pixel.h" void -intelDrawPixels(GLcontext * ctx, +intelDrawPixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, diff --git a/src/mesa/drivers/dri/intel/intel_pixel_read.c b/src/mesa/drivers/dri/intel/intel_pixel_read.c index 21d2a7a93e..b249f9a5a0 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_read.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_read.c @@ -65,7 +65,7 @@ */ static GLboolean -do_blit_readpixels(GLcontext * ctx, +do_blit_readpixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, GLvoid * pixels) @@ -165,7 +165,7 @@ do_blit_readpixels(GLcontext * ctx, } void -intelReadPixels(GLcontext * ctx, +intelReadPixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, GLvoid * pixels) diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index d200dc1f4a..061f0d278d 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -339,7 +339,7 @@ intelDestroyScreen(__DRIscreen * sPriv) static GLboolean intelCreateBuffer(__DRIscreen * driScrnPriv, __DRIdrawable * driDrawPriv, - const __GLcontextModes * mesaVis, GLboolean isPixmap) + const struct gl_config * mesaVis, GLboolean isPixmap) { struct intel_renderbuffer *rb; @@ -415,22 +415,22 @@ intelDestroyBuffer(__DRIdrawable * driDrawPriv) * init-designated function to register chipids and createcontext * functions. */ -extern GLboolean i830CreateContext(const __GLcontextModes * mesaVis, +extern GLboolean i830CreateContext(const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate); extern GLboolean i915CreateContext(int api, - const __GLcontextModes * mesaVis, + const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate); extern GLboolean brwCreateContext(int api, - const __GLcontextModes * mesaVis, + const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate); static GLboolean intelCreateContext(gl_api api, - const __GLcontextModes * mesaVis, + const struct gl_config * mesaVis, __DRIcontext * driContextPriv, void *sharedContextPrivate) { @@ -488,7 +488,7 @@ intel_init_bufmgr(struct intel_screen *intelScreen) * This is the driver specific part of the createNewScreen entry point. * Called when using DRI2. * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig **intelInitScreen2(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/intel/intel_span.c b/src/mesa/drivers/dri/intel/intel_span.c index c8d55c92a0..104cadf0f9 100644 --- a/src/mesa/drivers/dri/intel/intel_span.c +++ b/src/mesa/drivers/dri/intel/intel_span.c @@ -246,7 +246,7 @@ intel_map_unmap_framebuffer(struct intel_context *intel, * Old note: Moved locking out to get reasonable span performance. */ void -intelSpanRenderStart(GLcontext * ctx) +intelSpanRenderStart(struct gl_context * ctx) { struct intel_context *intel = intel_context(ctx); GLuint i; @@ -273,7 +273,7 @@ intelSpanRenderStart(GLcontext * ctx) * the above function. */ void -intelSpanRenderFinish(GLcontext * ctx) +intelSpanRenderFinish(struct gl_context * ctx) { struct intel_context *intel = intel_context(ctx); GLuint i; @@ -294,7 +294,7 @@ intelSpanRenderFinish(GLcontext * ctx) void -intelInitSpanFuncs(GLcontext * ctx) +intelInitSpanFuncs(struct gl_context * ctx) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = intelSpanRenderStart; @@ -302,7 +302,7 @@ intelInitSpanFuncs(GLcontext * ctx) } void -intel_map_vertex_shader_textures(GLcontext *ctx) +intel_map_vertex_shader_textures(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); int i; @@ -321,7 +321,7 @@ intel_map_vertex_shader_textures(GLcontext *ctx) } void -intel_unmap_vertex_shader_textures(GLcontext *ctx) +intel_unmap_vertex_shader_textures(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); int i; diff --git a/src/mesa/drivers/dri/intel/intel_span.h b/src/mesa/drivers/dri/intel/intel_span.h index bffe109aa5..aa8d08e843 100644 --- a/src/mesa/drivers/dri/intel/intel_span.h +++ b/src/mesa/drivers/dri/intel/intel_span.h @@ -28,15 +28,15 @@ #ifndef _INTEL_SPAN_H #define _INTEL_SPAN_H -extern void intelInitSpanFuncs(GLcontext * ctx); +extern void intelInitSpanFuncs(struct gl_context * ctx); -extern void intelSpanRenderFinish(GLcontext * ctx); -extern void intelSpanRenderStart(GLcontext * ctx); +extern void intelSpanRenderFinish(struct gl_context * ctx); +extern void intelSpanRenderStart(struct gl_context * ctx); void intel_renderbuffer_map(struct intel_context *intel, struct gl_renderbuffer *rb); void intel_renderbuffer_unmap(struct intel_context *intel, struct gl_renderbuffer *rb); -void intel_map_vertex_shader_textures(GLcontext *ctx); -void intel_unmap_vertex_shader_textures(GLcontext *ctx); +void intel_map_vertex_shader_textures(struct gl_context *ctx); +void intel_unmap_vertex_shader_textures(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/intel/intel_state.c b/src/mesa/drivers/dri/intel/intel_state.c index c5ef909dbf..80598b7ef6 100644 --- a/src/mesa/drivers/dri/intel/intel_state.c +++ b/src/mesa/drivers/dri/intel/intel_state.c @@ -197,7 +197,7 @@ intel_translate_logic_op(GLenum opcode) /* Fallback to swrast for select and feedback. */ static void -intelRenderMode(GLcontext *ctx, GLenum mode) +intelRenderMode(struct gl_context *ctx, GLenum mode) { struct intel_context *intel = intel_context(ctx); FALLBACK(intel, INTEL_FALLBACK_RENDERMODE, (mode != GL_RENDER)); diff --git a/src/mesa/drivers/dri/intel/intel_syncobj.c b/src/mesa/drivers/dri/intel/intel_syncobj.c index c2d86432ff..bbfac74b60 100644 --- a/src/mesa/drivers/dri/intel/intel_syncobj.c +++ b/src/mesa/drivers/dri/intel/intel_syncobj.c @@ -46,7 +46,7 @@ #include "intel_reg.h" static struct gl_sync_object * -intel_new_sync_object(GLcontext *ctx, GLuint id) +intel_new_sync_object(struct gl_context *ctx, GLuint id) { struct intel_sync_object *sync; @@ -56,7 +56,7 @@ intel_new_sync_object(GLcontext *ctx, GLuint id) } static void -intel_delete_sync_object(GLcontext *ctx, struct gl_sync_object *s) +intel_delete_sync_object(struct gl_context *ctx, struct gl_sync_object *s) { struct intel_sync_object *sync = (struct intel_sync_object *)s; @@ -65,7 +65,7 @@ intel_delete_sync_object(GLcontext *ctx, struct gl_sync_object *s) } static void -intel_fence_sync(GLcontext *ctx, struct gl_sync_object *s, +intel_fence_sync(struct gl_context *ctx, struct gl_sync_object *s, GLenum condition, GLbitfield flags) { struct intel_context *intel = intel_context(ctx); @@ -87,7 +87,7 @@ intel_fence_sync(GLcontext *ctx, struct gl_sync_object *s, * The fix would be a new kernel function to do the GTT transition with a * timeout. */ -static void intel_client_wait_sync(GLcontext *ctx, struct gl_sync_object *s, +static void intel_client_wait_sync(struct gl_context *ctx, struct gl_sync_object *s, GLbitfield flags, GLuint64 timeout) { struct intel_sync_object *sync = (struct intel_sync_object *)s; @@ -105,12 +105,12 @@ static void intel_client_wait_sync(GLcontext *ctx, struct gl_sync_object *s, * any batchbuffers coming after this waitsync will naturally not occur until * the previous one is done. */ -static void intel_server_wait_sync(GLcontext *ctx, struct gl_sync_object *s, +static void intel_server_wait_sync(struct gl_context *ctx, struct gl_sync_object *s, GLbitfield flags, GLuint64 timeout) { } -static void intel_check_sync(GLcontext *ctx, struct gl_sync_object *s) +static void intel_check_sync(struct gl_context *ctx, struct gl_sync_object *s) { struct intel_sync_object *sync = (struct intel_sync_object *)s; diff --git a/src/mesa/drivers/dri/intel/intel_tex.c b/src/mesa/drivers/dri/intel/intel_tex.c index e2bff0878a..3d9a2549db 100644 --- a/src/mesa/drivers/dri/intel/intel_tex.c +++ b/src/mesa/drivers/dri/intel/intel_tex.c @@ -10,7 +10,7 @@ #define FILE_DEBUG_FLAG DEBUG_TEXTURE static struct gl_texture_image * -intelNewTextureImage(GLcontext * ctx) +intelNewTextureImage(struct gl_context * ctx) { DBG("%s\n", __FUNCTION__); (void) ctx; @@ -19,7 +19,7 @@ intelNewTextureImage(GLcontext * ctx) static struct gl_texture_object * -intelNewTextureObject(GLcontext * ctx, GLuint name, GLenum target) +intelNewTextureObject(struct gl_context * ctx, GLuint name, GLenum target) { struct intel_texture_object *obj = CALLOC_STRUCT(intel_texture_object); @@ -30,7 +30,7 @@ intelNewTextureObject(GLcontext * ctx, GLuint name, GLenum target) } static void -intelDeleteTextureObject(GLcontext *ctx, +intelDeleteTextureObject(struct gl_context *ctx, struct gl_texture_object *texObj) { struct intel_context *intel = intel_context(ctx); @@ -44,7 +44,7 @@ intelDeleteTextureObject(GLcontext *ctx, static void -intelFreeTextureImageData(GLcontext * ctx, struct gl_texture_image *texImage) +intelFreeTextureImageData(struct gl_context * ctx, struct gl_texture_image *texImage) { struct intel_context *intel = intel_context(ctx); struct intel_texture_image *intelImage = intel_texture_image(texImage); @@ -150,7 +150,7 @@ timed_memcpy(void *dest, const void *src, size_t n) * map/unmap the base level texture image. */ static void -intelGenerateMipmap(GLcontext *ctx, GLenum target, +intelGenerateMipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { if (_mesa_meta_check_generate_mipmap_fallback(ctx, target, texObj)) { diff --git a/src/mesa/drivers/dri/intel/intel_tex.h b/src/mesa/drivers/dri/intel/intel_tex.h index cd77dd5b8e..7906554e45 100644 --- a/src/mesa/drivers/dri/intel/intel_tex.h +++ b/src/mesa/drivers/dri/intel/intel_tex.h @@ -40,7 +40,7 @@ void intelInitTextureSubImageFuncs(struct dd_function_table *functions); void intelInitTextureCopyImageFuncs(struct dd_function_table *functions); -gl_format intelChooseTextureFormat(GLcontext *ctx, GLint internalFormat, +gl_format intelChooseTextureFormat(struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type); void intelSetTexBuffer(__DRIcontext *pDRICtx, diff --git a/src/mesa/drivers/dri/intel/intel_tex_copy.c b/src/mesa/drivers/dri/intel/intel_tex_copy.c index 6efb2ddc55..2d046fd52d 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_copy.c +++ b/src/mesa/drivers/dri/intel/intel_tex_copy.c @@ -72,6 +72,7 @@ get_teximage_source(struct intel_context *intel, GLenum internalFormat) if (irb && irb->region && irb->region->cpp == 4) return irb->region; return NULL; + case 4: case GL_RGBA: case GL_RGBA8: irb = intel_renderbuffer(intel->ctx.ReadBuffer->_ColorReadBuffer); @@ -82,6 +83,7 @@ get_teximage_source(struct intel_context *intel, GLenum internalFormat) if (irb->Base._BaseFormat == GL_RGB) return NULL; return irb->region; + case 3: case GL_RGB: case GL_RGB8: return intel_readbuf_region(intel); @@ -99,7 +101,7 @@ do_copy_texsubimage(struct intel_context *intel, GLint dstx, GLint dsty, GLint x, GLint y, GLsizei width, GLsizei height) { - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; const struct intel_region *src = get_teximage_source(intel, internalFormat); if (!intelImage->mt || !src || !src->buffer) { @@ -170,7 +172,7 @@ do_copy_texsubimage(struct intel_context *intel, static void -intelCopyTexImage1D(GLcontext * ctx, GLenum target, GLint level, +intelCopyTexImage1D(struct gl_context * ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border) { @@ -218,7 +220,7 @@ intelCopyTexImage1D(GLcontext * ctx, GLenum target, GLint level, static void -intelCopyTexImage2D(GLcontext * ctx, GLenum target, GLint level, +intelCopyTexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) @@ -267,7 +269,7 @@ intelCopyTexImage2D(GLcontext * ctx, GLenum target, GLint level, static void -intelCopyTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, +intelCopyTexSubImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) { struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); @@ -293,7 +295,7 @@ intelCopyTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, static void -intelCopyTexSubImage2D(GLcontext * ctx, GLenum target, GLint level, +intelCopyTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { diff --git a/src/mesa/drivers/dri/intel/intel_tex_format.c b/src/mesa/drivers/dri/intel/intel_tex_format.c index e03b203fb4..9d73a2fb37 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_format.c +++ b/src/mesa/drivers/dri/intel/intel_tex_format.c @@ -15,7 +15,7 @@ * immediately after sampling... */ gl_format -intelChooseTextureFormat(GLcontext * ctx, GLint internalFormat, +intelChooseTextureFormat(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type) { struct intel_context *intel = intel_context(ctx); @@ -93,6 +93,10 @@ intelChooseTextureFormat(GLcontext * ctx, GLint internalFormat, case GL_LUMINANCE12_ALPHA4: case GL_LUMINANCE12_ALPHA12: case GL_LUMINANCE16_ALPHA16: + /* i915 could implement this mode using MT_32BIT_RG1616. However, this + * would require an extra swizzle instruction in the fragment shader to + * convert the { R, G, 1.0, 1.0 } to { R, R, R, G }. + */ #ifndef I915 return MESA_FORMAT_AL1616; #else @@ -193,6 +197,22 @@ intelChooseTextureFormat(GLcontext * ctx, GLint internalFormat, case GL_RGBA_SNORM: case GL_RGBA8_SNORM: return MESA_FORMAT_SIGNED_RGBA8888_REV; + + /* i915 can do a RG16, but it can't do any of the other RED or RG formats. + * In addition, it only implements the broken D3D mode where undefined + * components are read as 1.0. I'm not sure who thought reading + * { R, G, 1.0, 1.0 } from a red-green texture would be useful. + */ + case GL_RED: + case GL_R8: + return MESA_FORMAT_R8; + case GL_R16: + return MESA_FORMAT_R16; + case GL_RG: + case GL_RG8: + return MESA_FORMAT_RG88; + case GL_RG16: + return MESA_FORMAT_RG1616; #endif default: diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c index 03aba58e10..35f3d7d382 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@ -10,7 +10,6 @@ #include "main/texstore.h" #include "main/texgetimage.h" #include "main/texobj.h" -#include "main/texstore.h" #include "main/teximage.h" #include "intel_context.h" @@ -301,7 +300,7 @@ try_pbo_zcopy(struct intel_context *intel, static void -intelTexImage(GLcontext * ctx, +intelTexImage(struct gl_context * ctx, GLint dims, GLenum target, GLint level, GLint internalFormat, @@ -540,7 +539,7 @@ intelTexImage(GLcontext * ctx, static void -intelTexImage3D(GLcontext * ctx, +intelTexImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, @@ -557,7 +556,7 @@ intelTexImage3D(GLcontext * ctx, static void -intelTexImage2D(GLcontext * ctx, +intelTexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, @@ -573,7 +572,7 @@ intelTexImage2D(GLcontext * ctx, static void -intelTexImage1D(GLcontext * ctx, +intelTexImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, @@ -589,7 +588,7 @@ intelTexImage1D(GLcontext * ctx, static void -intelCompressedTexImage2D( GLcontext *ctx, GLenum target, GLint level, +intelCompressedTexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -607,7 +606,7 @@ intelCompressedTexImage2D( GLcontext *ctx, GLenum target, GLint level, * then unmap it. */ static void -intel_get_tex_image(GLcontext * ctx, GLenum target, GLint level, +intel_get_tex_image(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLboolean compressed) @@ -667,7 +666,7 @@ intel_get_tex_image(GLcontext * ctx, GLenum target, GLint level, static void -intelGetTexImage(GLcontext * ctx, GLenum target, GLint level, +intelGetTexImage(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -678,7 +677,7 @@ intelGetTexImage(GLcontext * ctx, GLenum target, GLint level, static void -intelGetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level, +intelGetCompressedTexImage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -694,7 +693,7 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target, { struct gl_framebuffer *fb = dPriv->driverPrivate; struct intel_context *intel = pDRICtx->driverPrivate; - GLcontext *ctx = &intel->ctx; + struct gl_context *ctx = &intel->ctx; struct intel_texture_object *intelObj; struct intel_texture_image *intelImage; struct intel_mipmap_tree *mt; @@ -775,7 +774,7 @@ intelSetTexBuffer(__DRIcontext *pDRICtx, GLint target, __DRIdrawable *dPriv) #if FEATURE_OES_EGL_image static void -intel_image_target_texture_2d(GLcontext *ctx, GLenum target, +intel_image_target_texture_2d(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLeglImageOES image_handle) diff --git a/src/mesa/drivers/dri/intel/intel_tex_subimage.c b/src/mesa/drivers/dri/intel/intel_tex_subimage.c index b7ce50a820..c9b992a21b 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_subimage.c +++ b/src/mesa/drivers/dri/intel/intel_tex_subimage.c @@ -40,7 +40,7 @@ #define FILE_DEBUG_FLAG DEBUG_TEXTURE static void -intelTexSubimage(GLcontext * ctx, +intelTexSubimage(struct gl_context * ctx, GLint dims, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -189,7 +189,7 @@ intelTexSubimage(GLcontext * ctx, static void -intelTexSubImage3D(GLcontext * ctx, +intelTexSubImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, @@ -209,7 +209,7 @@ intelTexSubImage3D(GLcontext * ctx, static void -intelTexSubImage2D(GLcontext * ctx, +intelTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -229,7 +229,7 @@ intelTexSubImage2D(GLcontext * ctx, static void -intelTexSubImage1D(GLcontext * ctx, +intelTexSubImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, @@ -248,7 +248,7 @@ intelTexSubImage1D(GLcontext * ctx, } static void -intelCompressedTexSubImage2D(GLcontext * ctx, +intelCompressedTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, diff --git a/src/mesa/drivers/dri/mach64/mach64_context.c b/src/mesa/drivers/dri/mach64/mach64_context.c index a20a1c9655..7c989df5ec 100644 --- a/src/mesa/drivers/dri/mach64/mach64_context.c +++ b/src/mesa/drivers/dri/mach64/mach64_context.c @@ -86,11 +86,11 @@ static const struct dri_extension card_extensions[] = /* Create the device specific context. */ GLboolean mach64CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate ) { - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; __DRIscreen *driScreen = driContextPriv->driScreenPriv; struct dd_function_table functions; mach64ContextPtr mmesa; @@ -334,8 +334,8 @@ mach64MakeCurrent( __DRIcontext *driContextPriv, } _mesa_make_current( newMach64Ctx->glCtx, - (GLframebuffer *) driDrawPriv->driverPrivate, - (GLframebuffer *) driReadPriv->driverPrivate ); + (struct gl_framebuffer *) driDrawPriv->driverPrivate, + (struct gl_framebuffer *) driReadPriv->driverPrivate ); newMach64Ctx->new_state |= MACH64_NEW_CLIP; diff --git a/src/mesa/drivers/dri/mach64/mach64_context.h b/src/mesa/drivers/dri/mach64/mach64_context.h index 893fc8daee..11e8f53b28 100644 --- a/src/mesa/drivers/dri/mach64/mach64_context.h +++ b/src/mesa/drivers/dri/mach64/mach64_context.h @@ -161,7 +161,7 @@ struct mach64_texture_object { typedef struct mach64_texture_object mach64TexObj, *mach64TexObjPtr; struct mach64_context { - GLcontext *glCtx; + struct gl_context *glCtx; /* Driver and hardware state management */ @@ -274,7 +274,7 @@ struct mach64_context { extern GLboolean mach64CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate ); diff --git a/src/mesa/drivers/dri/mach64/mach64_dd.c b/src/mesa/drivers/dri/mach64/mach64_dd.c index ca713e2de5..9cb2c10759 100644 --- a/src/mesa/drivers/dri/mach64/mach64_dd.c +++ b/src/mesa/drivers/dri/mach64/mach64_dd.c @@ -41,7 +41,7 @@ /* Return the current color buffer size. */ -static void mach64DDGetBufferSize( GLframebuffer *buffer, +static void mach64DDGetBufferSize( struct gl_framebuffer *buffer, GLuint *width, GLuint *height ) { GET_CURRENT_CONTEXT(ctx); @@ -55,7 +55,7 @@ static void mach64DDGetBufferSize( GLframebuffer *buffer, /* Return various strings for glGetString(). */ -static const GLubyte *mach64DDGetString( GLcontext *ctx, GLenum name ) +static const GLubyte *mach64DDGetString( struct gl_context *ctx, GLenum name ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); static char buffer[128]; @@ -84,7 +84,7 @@ static const GLubyte *mach64DDGetString( GLcontext *ctx, GLenum name ) * hardware. All commands that are normally sent to the ring are * already considered `flushed'. */ -static void mach64DDFlush( GLcontext *ctx ) +static void mach64DDFlush( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -107,7 +107,7 @@ static void mach64DDFlush( GLcontext *ctx ) /* Make sure all commands have been sent to the hardware and have * completed processing. */ -static void mach64DDFinish( GLcontext *ctx ) +static void mach64DDFinish( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/mach64/mach64_ioctl.c b/src/mesa/drivers/dri/mach64/mach64_ioctl.c index 03587c44fd..0146e0d051 100644 --- a/src/mesa/drivers/dri/mach64/mach64_ioctl.c +++ b/src/mesa/drivers/dri/mach64/mach64_ioctl.c @@ -665,7 +665,7 @@ void mach64PerformanceBoxesLocked( mach64ContextPtr mmesa ) * Buffer clear */ -static void mach64DDClear( GLcontext *ctx, GLbitfield mask ) +static void mach64DDClear( struct gl_context *ctx, GLbitfield mask ) { mach64ContextPtr mmesa = MACH64_CONTEXT( ctx ); __DRIdrawable *dPriv = mmesa->driDrawable; diff --git a/src/mesa/drivers/dri/mach64/mach64_native_vb.c b/src/mesa/drivers/dri/mach64/mach64_native_vb.c index 816682ec5f..d8426ddee1 100644 --- a/src/mesa/drivers/dri/mach64/mach64_native_vb.c +++ b/src/mesa/drivers/dri/mach64/mach64_native_vb.c @@ -35,7 +35,7 @@ #define LOCALVARS #endif -void TAG(translate_vertex)(GLcontext *ctx, +void TAG(translate_vertex)(struct gl_context *ctx, const VERTEX *src, SWvertex *dst) { @@ -108,7 +108,7 @@ void TAG(translate_vertex)(GLcontext *ctx, -void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v ) +void TAG(print_vertex)( struct gl_context *ctx, const VERTEX *v ) { LOCALVARS GLuint format = GET_VERTEX_FORMAT(); @@ -199,7 +199,7 @@ void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v ) #define GET_COLOR(ptr, idx) ((ptr)->data[idx]) -INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx, +INTERP_QUALIFIER void TAG(interp_extras)( struct gl_context *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary ) @@ -230,7 +230,7 @@ INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx, INTERP_VERTEX(ctx, t, dst, out, in, force_boundary); } -INTERP_QUALIFIER void TAG(copy_pv_extras)( GLcontext *ctx, +INTERP_QUALIFIER void TAG(copy_pv_extras)( struct gl_context *ctx, GLuint dst, GLuint src ) { LOCALVARS diff --git a/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h b/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h index 6e5fa3520e..8345f5cdbc 100644 --- a/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h +++ b/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h @@ -52,7 +52,7 @@ #define LOCALVARS #endif -static void TAG(emit)( GLcontext *ctx, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest, GLuint stride ) @@ -312,7 +312,7 @@ static void TAG(emit)( GLcontext *ctx, #if DO_XYZW && DO_RGBA -static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) +static GLboolean TAG(check_tex_sizes)( struct gl_context *ctx ) { LOCALVARS struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -344,7 +344,7 @@ static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) } -static void TAG(interp)( GLcontext *ctx, +static void TAG(interp)( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ) @@ -511,7 +511,7 @@ static void TAG(interp)( GLcontext *ctx, #endif /* DO_RGBA && DO_XYZW */ -static void TAG(copy_pv)( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void TAG(copy_pv)( struct gl_context *ctx, GLuint edst, GLuint esrc ) { #if DO_SPEC || DO_FOG || DO_RGBA LOCALVARS diff --git a/src/mesa/drivers/dri/mach64/mach64_screen.c b/src/mesa/drivers/dri/mach64/mach64_screen.c index 239e8bc8fd..956bccbcd6 100644 --- a/src/mesa/drivers/dri/mach64/mach64_screen.c +++ b/src/mesa/drivers/dri/mach64/mach64_screen.c @@ -71,7 +71,7 @@ mach64FillInModes( __DRIscreen *psp, unsigned stencil_bits, GLboolean have_back_buffer ) { __DRIconfig **configs; - __GLcontextModes * m; + struct gl_config * m; GLenum fb_format; GLenum fb_type; unsigned depth_buffer_factor; @@ -298,7 +298,7 @@ mach64DestroyScreen( __DRIscreen *driScreen ) static GLboolean mach64CreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap ) { mach64ScreenPtr screen = (mach64ScreenPtr) driScrnPriv->private; @@ -369,7 +369,7 @@ mach64CreateBuffer( __DRIscreen *driScrnPriv, static void mach64DestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } @@ -379,7 +379,7 @@ mach64SwapBuffers(__DRIdrawable *dPriv) { if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) { mach64ContextPtr mmesa; - GLcontext *ctx; + struct gl_context *ctx; mmesa = (mach64ContextPtr) dPriv->driContextPriv->driverPrivate; ctx = mmesa->glCtx; if (ctx->Visual.doubleBufferMode) { @@ -414,7 +414,7 @@ mach64InitDriver( __DRIscreen *driScreen ) * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig ** mach64InitScreen(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/mach64/mach64_span.c b/src/mesa/drivers/dri/mach64/mach64_span.c index 0c52c0c88c..4b853c2af3 100644 --- a/src/mesa/drivers/dri/mach64/mach64_span.c +++ b/src/mesa/drivers/dri/mach64/mach64_span.c @@ -128,21 +128,21 @@ #include "depthtmp.h" -static void mach64SpanRenderStart( GLcontext *ctx ) +static void mach64SpanRenderStart( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); LOCK_HARDWARE( mmesa ); FINISH_DMA_LOCKED( mmesa ); } -static void mach64SpanRenderFinish( GLcontext *ctx ) +static void mach64SpanRenderFinish( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); _swrast_flush( ctx ); UNLOCK_HARDWARE( mmesa ); } -void mach64DDInitSpanFuncs( GLcontext *ctx ) +void mach64DDInitSpanFuncs( struct gl_context *ctx ) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = mach64SpanRenderStart; @@ -154,7 +154,7 @@ void mach64DDInitSpanFuncs( GLcontext *ctx ) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -mach64SetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis) +mach64SetSpanFunctions(driRenderbuffer *drb, const struct gl_config *vis) { if (drb->Base.Format == MESA_FORMAT_RGB565) { mach64InitPointers_RGB565(&drb->Base); diff --git a/src/mesa/drivers/dri/mach64/mach64_span.h b/src/mesa/drivers/dri/mach64/mach64_span.h index 65141d05c3..2742e93c8e 100644 --- a/src/mesa/drivers/dri/mach64/mach64_span.h +++ b/src/mesa/drivers/dri/mach64/mach64_span.h @@ -33,9 +33,9 @@ #include "drirenderbuffer.h" -extern void mach64DDInitSpanFuncs( GLcontext *ctx ); +extern void mach64DDInitSpanFuncs( struct gl_context *ctx ); extern void -mach64SetSpanFunctions(driRenderbuffer *rb, const GLvisual *vis); +mach64SetSpanFunctions(driRenderbuffer *rb, const struct gl_config *vis); #endif diff --git a/src/mesa/drivers/dri/mach64/mach64_state.c b/src/mesa/drivers/dri/mach64/mach64_state.c index 69a5aea02c..8e795955c2 100644 --- a/src/mesa/drivers/dri/mach64/mach64_state.c +++ b/src/mesa/drivers/dri/mach64/mach64_state.c @@ -48,7 +48,7 @@ * Alpha blending */ -static void mach64UpdateAlphaMode( GLcontext *ctx ) +static void mach64UpdateAlphaMode( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint a = mmesa->setup.alpha_tst_cntl; @@ -185,7 +185,7 @@ static void mach64UpdateAlphaMode( GLcontext *ctx ) } } -static void mach64DDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) +static void mach64DDAlphaFunc( struct gl_context *ctx, GLenum func, GLfloat ref ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -193,7 +193,7 @@ static void mach64DDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) mmesa->new_state |= MACH64_NEW_ALPHA; } -static void mach64DDBlendEquationSeparate( GLcontext *ctx, +static void mach64DDBlendEquationSeparate( struct gl_context *ctx, GLenum modeRGB, GLenum modeA ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -214,7 +214,7 @@ static void mach64DDBlendEquationSeparate( GLcontext *ctx, mmesa->new_state |= MACH64_NEW_ALPHA; } -static void mach64DDBlendFuncSeparate( GLcontext *ctx, +static void mach64DDBlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -229,7 +229,7 @@ static void mach64DDBlendFuncSeparate( GLcontext *ctx, * Depth testing */ -static void mach64UpdateZMode( GLcontext *ctx ) +static void mach64UpdateZMode( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint z = mmesa->setup.z_cntl; @@ -285,7 +285,7 @@ static void mach64UpdateZMode( GLcontext *ctx ) } } -static void mach64DDDepthFunc( GLcontext *ctx, GLenum func ) +static void mach64DDDepthFunc( struct gl_context *ctx, GLenum func ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -293,7 +293,7 @@ static void mach64DDDepthFunc( GLcontext *ctx, GLenum func ) mmesa->new_state |= MACH64_NEW_DEPTH; } -static void mach64DDDepthMask( GLcontext *ctx, GLboolean flag ) +static void mach64DDDepthMask( struct gl_context *ctx, GLboolean flag ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -301,7 +301,7 @@ static void mach64DDDepthMask( GLcontext *ctx, GLboolean flag ) mmesa->new_state |= MACH64_NEW_DEPTH; } -static void mach64DDClearDepth( GLcontext *ctx, GLclampd d ) +static void mach64DDClearDepth( struct gl_context *ctx, GLclampd d ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -315,7 +315,7 @@ static void mach64DDClearDepth( GLcontext *ctx, GLclampd d ) * Fog */ -static void mach64UpdateFogAttrib( GLcontext *ctx ) +static void mach64UpdateFogAttrib( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -366,7 +366,7 @@ static void mach64UpdateFogAttrib( GLcontext *ctx ) } -static void mach64DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) +static void mach64DDFogfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -379,7 +379,7 @@ static void mach64DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) * Clipping */ -static void mach64UpdateClipping( GLcontext *ctx ) +static void mach64UpdateClipping( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); mach64ScreenPtr mach64Screen = mmesa->mach64Screen; @@ -452,7 +452,7 @@ static void mach64UpdateClipping( GLcontext *ctx ) } } -static void mach64DDScissor( GLcontext *ctx, +static void mach64DDScissor( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -466,7 +466,7 @@ static void mach64DDScissor( GLcontext *ctx, * Culling */ -static void mach64UpdateCull( GLcontext *ctx ) +static void mach64UpdateCull( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLfloat backface_sign = 1; @@ -495,7 +495,7 @@ static void mach64UpdateCull( GLcontext *ctx ) } -static void mach64DDCullFace( GLcontext *ctx, GLenum mode ) +static void mach64DDCullFace( struct gl_context *ctx, GLenum mode ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -503,7 +503,7 @@ static void mach64DDCullFace( GLcontext *ctx, GLenum mode ) mmesa->new_state |= MACH64_NEW_CULL; } -static void mach64DDFrontFace( GLcontext *ctx, GLenum mode ) +static void mach64DDFrontFace( struct gl_context *ctx, GLenum mode ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -516,7 +516,7 @@ static void mach64DDFrontFace( GLcontext *ctx, GLenum mode ) * Masks */ -static void mach64UpdateMasks( GLcontext *ctx ) +static void mach64UpdateMasks( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint mask = 0xffffffff; @@ -536,7 +536,7 @@ static void mach64UpdateMasks( GLcontext *ctx ) } } -static void mach64DDColorMask( GLcontext *ctx, +static void mach64DDColorMask( struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -555,7 +555,7 @@ static void mach64DDColorMask( GLcontext *ctx, * sense to break them out of the core texture state update routines. */ -static void mach64UpdateSpecularLighting( GLcontext *ctx ) +static void mach64UpdateSpecularLighting( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint a = mmesa->setup.alpha_tst_cntl; @@ -578,7 +578,7 @@ static void mach64UpdateSpecularLighting( GLcontext *ctx ) } } -static void mach64DDLightModelfv( GLcontext *ctx, GLenum pname, +static void mach64DDLightModelfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -589,7 +589,7 @@ static void mach64DDLightModelfv( GLcontext *ctx, GLenum pname, } } -static void mach64DDShadeModel( GLcontext *ctx, GLenum mode ) +static void mach64DDShadeModel( struct gl_context *ctx, GLenum mode ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint s = mmesa->setup.setup_cntl; @@ -621,7 +621,7 @@ static void mach64DDShadeModel( GLcontext *ctx, GLenum mode ) */ -void mach64CalcViewport( GLcontext *ctx ) +void mach64CalcViewport( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -639,14 +639,14 @@ void mach64CalcViewport( GLcontext *ctx ) mmesa->SetupNewInputs = ~0; } -static void mach64Viewport( GLcontext *ctx, +static void mach64Viewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { mach64CalcViewport( ctx ); } -static void mach64DepthRange( GLcontext *ctx, +static void mach64DepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { mach64CalcViewport( ctx ); @@ -657,7 +657,7 @@ static void mach64DepthRange( GLcontext *ctx, * Miscellaneous */ -static void mach64DDClearColor( GLcontext *ctx, +static void mach64DDClearColor( struct gl_context *ctx, const GLfloat color[4] ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -672,7 +672,7 @@ static void mach64DDClearColor( GLcontext *ctx, c[0], c[1], c[2], c[3] ); } -static void mach64DDLogicOpCode( GLcontext *ctx, GLenum opcode ) +static void mach64DDLogicOpCode( struct gl_context *ctx, GLenum opcode ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -683,7 +683,7 @@ static void mach64DDLogicOpCode( GLcontext *ctx, GLenum opcode ) } } -void mach64SetCliprects( GLcontext *ctx, GLenum mode ) +void mach64SetCliprects( struct gl_context *ctx, GLenum mode ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); __DRIdrawable *dPriv = mmesa->driDrawable; @@ -717,7 +717,7 @@ void mach64SetCliprects( GLcontext *ctx, GLenum mode ) mmesa->dirty |= MACH64_UPLOAD_CLIPRECTS; } -static void mach64DDDrawBuffer( GLcontext *ctx, GLenum mode ) +static void mach64DDDrawBuffer( struct gl_context *ctx, GLenum mode ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -755,7 +755,7 @@ static void mach64DDDrawBuffer( GLcontext *ctx, GLenum mode ) mmesa->dirty |= MACH64_UPLOAD_DST_OFF_PITCH; } -static void mach64DDReadBuffer( GLcontext *ctx, GLenum mode ) +static void mach64DDReadBuffer( struct gl_context *ctx, GLenum mode ) { /* nothing, until we implement h/w glRead/CopyPixels or CopyTexImage */ } @@ -764,7 +764,7 @@ static void mach64DDReadBuffer( GLcontext *ctx, GLenum mode ) * State enable/disable */ -static void mach64DDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) +static void mach64DDEnable( struct gl_context *ctx, GLenum cap, GLboolean state ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -867,7 +867,7 @@ static void mach64DDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) * Render mode */ -static void mach64DDRenderMode( GLcontext *ctx, GLenum mode ) +static void mach64DDRenderMode( struct gl_context *ctx, GLenum mode ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); FALLBACK( mmesa, MACH64_FALLBACK_RENDER_MODE, (mode != GL_RENDER) ); @@ -971,7 +971,7 @@ static void mach64DDPrintState( const char *msg, GLuint flags ) } /* Update the hardware state */ -void mach64DDUpdateHWState( GLcontext *ctx ) +void mach64DDUpdateHWState( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); int new_state = mmesa->new_state; @@ -1018,7 +1018,7 @@ void mach64DDUpdateHWState( GLcontext *ctx ) } -static void mach64DDInvalidateState( GLcontext *ctx, GLuint new_state ) +static void mach64DDInvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -1152,7 +1152,7 @@ void mach64DDInitState( mach64ContextPtr mmesa ) /* Initialize the driver's state functions. */ -void mach64DDInitStateFuncs( GLcontext *ctx ) +void mach64DDInitStateFuncs( struct gl_context *ctx ) { ctx->Driver.UpdateState = mach64DDInvalidateState; diff --git a/src/mesa/drivers/dri/mach64/mach64_state.h b/src/mesa/drivers/dri/mach64/mach64_state.h index 23081cb2fe..41c4d01d1d 100644 --- a/src/mesa/drivers/dri/mach64/mach64_state.h +++ b/src/mesa/drivers/dri/mach64/mach64_state.h @@ -34,13 +34,13 @@ #include "mach64_context.h" extern void mach64DDInitState( mach64ContextPtr mmesa ); -extern void mach64DDInitStateFuncs( GLcontext *ctx ); +extern void mach64DDInitStateFuncs( struct gl_context *ctx ); -extern void mach64SetCliprects( GLcontext *ctx, GLenum mode ); -extern void mach64CalcViewport( GLcontext *ctx ); +extern void mach64SetCliprects( struct gl_context *ctx, GLenum mode ); +extern void mach64CalcViewport( struct gl_context *ctx ); -extern void mach64DDUpdateState( GLcontext *ctx ); -extern void mach64DDUpdateHWState( GLcontext *ctx ); +extern void mach64DDUpdateState( struct gl_context *ctx ); +extern void mach64DDUpdateHWState( struct gl_context *ctx ); extern void mach64EmitHwStateLocked( mach64ContextPtr mmesa ); diff --git a/src/mesa/drivers/dri/mach64/mach64_tex.c b/src/mesa/drivers/dri/mach64/mach64_tex.c index 09367be5b4..68d273a3e7 100644 --- a/src/mesa/drivers/dri/mach64/mach64_tex.c +++ b/src/mesa/drivers/dri/mach64/mach64_tex.c @@ -133,7 +133,7 @@ mach64AllocTexObj( struct gl_texture_object *texObj ) /* Called by the _mesa_store_teximage[123]d() functions. */ static gl_format -mach64ChooseTextureFormat( GLcontext *ctx, GLint internalFormat, +mach64ChooseTextureFormat( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -241,7 +241,7 @@ mach64ChooseTextureFormat( GLcontext *ctx, GLint internalFormat, } } -static void mach64TexImage1D( GLcontext *ctx, GLenum target, GLint level, +static void mach64TexImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -271,7 +271,7 @@ static void mach64TexImage1D( GLcontext *ctx, GLenum target, GLint level, mmesa->new_state |= MACH64_NEW_TEXTURE; } -static void mach64TexSubImage1D( GLcontext *ctx, +static void mach64TexSubImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -304,7 +304,7 @@ static void mach64TexSubImage1D( GLcontext *ctx, mmesa->new_state |= MACH64_NEW_TEXTURE; } -static void mach64TexImage2D( GLcontext *ctx, GLenum target, GLint level, +static void mach64TexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -334,7 +334,7 @@ static void mach64TexImage2D( GLcontext *ctx, GLenum target, GLint level, mmesa->new_state |= MACH64_NEW_TEXTURE; } -static void mach64TexSubImage2D( GLcontext *ctx, +static void mach64TexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -371,7 +371,7 @@ static void mach64TexSubImage2D( GLcontext *ctx, * Device Driver API texture functions */ -static void mach64DDTexEnv( GLcontext *ctx, GLenum target, +static void mach64DDTexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -425,7 +425,7 @@ static void mach64DDTexEnv( GLcontext *ctx, GLenum target, } } -static void mach64DDTexParameter( GLcontext *ctx, GLenum target, +static void mach64DDTexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj, GLenum pname, const GLfloat *params ) { @@ -489,7 +489,7 @@ static void mach64DDTexParameter( GLcontext *ctx, GLenum target, mmesa->new_state |= MACH64_NEW_TEXTURE; } -static void mach64DDBindTexture( GLcontext *ctx, GLenum target, +static void mach64DDBindTexture( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -510,7 +510,7 @@ static void mach64DDBindTexture( GLcontext *ctx, GLenum target, mmesa->new_state |= MACH64_NEW_TEXTURE; } -static void mach64DDDeleteTexture( GLcontext *ctx, +static void mach64DDDeleteTexture( struct gl_context *ctx, struct gl_texture_object *tObj ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -537,7 +537,7 @@ static void mach64DDDeleteTexture( GLcontext *ctx, * texture object from the core mesa gl_texture_object. Not done at this time. */ static struct gl_texture_object * -mach64NewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +mach64NewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; obj = _mesa_new_texture_object(ctx, name, target); diff --git a/src/mesa/drivers/dri/mach64/mach64_tex.h b/src/mesa/drivers/dri/mach64/mach64_tex.h index 8e0b23ed15..0369982853 100644 --- a/src/mesa/drivers/dri/mach64/mach64_tex.h +++ b/src/mesa/drivers/dri/mach64/mach64_tex.h @@ -32,7 +32,7 @@ #ifndef __MACH64_TEX_H__ #define __MACH64_TEX_H__ -extern void mach64UpdateTextureState( GLcontext *ctx ); +extern void mach64UpdateTextureState( struct gl_context *ctx ); extern void mach64UploadTexImages( mach64ContextPtr mach64ctx, mach64TexObjPtr t ); diff --git a/src/mesa/drivers/dri/mach64/mach64_texstate.c b/src/mesa/drivers/dri/mach64/mach64_texstate.c index adf774ec19..70365c8461 100644 --- a/src/mesa/drivers/dri/mach64/mach64_texstate.c +++ b/src/mesa/drivers/dri/mach64/mach64_texstate.c @@ -108,7 +108,7 @@ static void mach64SetTexImages( mach64ContextPtr mmesa, t->maxLog2 = baseImage->MaxLog2; } -static void mach64UpdateTextureEnv( GLcontext *ctx, int unit ) +static void mach64UpdateTextureEnv( struct gl_context *ctx, int unit ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLint source = mmesa->tmu_source[unit]; @@ -284,7 +284,7 @@ static void mach64UpdateTextureEnv( GLcontext *ctx, int unit ) } -static void mach64UpdateTextureUnit( GLcontext *ctx, int unit ) +static void mach64UpdateTextureUnit( struct gl_context *ctx, int unit ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); int source = mmesa->tmu_source[unit]; @@ -427,7 +427,7 @@ static void mach64UpdateTextureUnit( GLcontext *ctx, int unit ) /* Update the hardware texture state */ -void mach64UpdateTextureState( GLcontext *ctx ) +void mach64UpdateTextureState( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/mach64/mach64_tris.c b/src/mesa/drivers/dri/mach64/mach64_tris.c index a81d21afff..024ee2f435 100644 --- a/src/mesa/drivers/dri/mach64/mach64_tris.c +++ b/src/mesa/drivers/dri/mach64/mach64_tris.c @@ -59,8 +59,8 @@ static const GLuint hw_prim[GL_POLYGON+1] = { MACH64_PRIM_POLYGON, }; -static void mach64RasterPrimitive( GLcontext *ctx, GLuint hwprim ); -static void mach64RenderPrimitive( GLcontext *ctx, GLenum prim ); +static void mach64RasterPrimitive( struct gl_context *ctx, GLuint hwprim ); +static void mach64RenderPrimitive( struct gl_context *ctx, GLenum prim ); /* FIXME: Remove this when native template is finished. */ @@ -120,7 +120,7 @@ static INLINE void mach64_draw_quad( mach64ContextPtr mmesa, mach64VertexPtr v3 ) { #if MACH64_NATIVE_VTXFMT - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; const GLuint vertsize = mmesa->vertex_size; GLint a; GLfloat ooa; @@ -425,7 +425,7 @@ static INLINE void mach64_draw_triangle( mach64ContextPtr mmesa, mach64VertexPtr v2 ) { #if MACH64_NATIVE_VTXFMT - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; GLuint vertsize = mmesa->vertex_size; GLint a; GLfloat ooa; @@ -671,7 +671,7 @@ static INLINE void mach64_draw_line( mach64ContextPtr mmesa, mach64VertexPtr v1 ) { #if MACH64_NATIVE_VTXFMT - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; const GLuint vertsize = mmesa->vertex_size; /* 2 fractional bits for hardware: */ const int width = (int) (2.0 * CLAMP(mmesa->glCtx->Line.Width, @@ -959,7 +959,7 @@ static INLINE void mach64_draw_point( mach64ContextPtr mmesa, mach64VertexPtr v0 ) { #if MACH64_NATIVE_VTXFMT - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; const GLuint vertsize = mmesa->vertex_size; /* 2 fractional bits for hardware: */ GLint sz = (GLint) (2.0 * CLAMP(mmesa->glCtx->Point.Size, @@ -1473,7 +1473,7 @@ mach64_fallback_tri( mach64ContextPtr mmesa, mach64Vertex *v1, mach64Vertex *v2 ) { - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; SWvertex v[3]; mach64_translate_vertex( ctx, v0, &v[0] ); mach64_translate_vertex( ctx, v1, &v[1] ); @@ -1487,7 +1487,7 @@ mach64_fallback_line( mach64ContextPtr mmesa, mach64Vertex *v0, mach64Vertex *v1 ) { - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; SWvertex v[2]; mach64_translate_vertex( ctx, v0, &v[0] ); mach64_translate_vertex( ctx, v1, &v[1] ); @@ -1499,7 +1499,7 @@ static void mach64_fallback_point( mach64ContextPtr mmesa, mach64Vertex *v0 ) { - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; SWvertex v[1]; mach64_translate_vertex( ctx, v0, &v[0] ); _swrast_Point( ctx, &v[0] ); @@ -1549,7 +1549,7 @@ mach64_fallback_point( mach64ContextPtr mmesa, /* Render clipped primitives */ /**********************************************************************/ -static void mach64RenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void mach64RenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { mach64ContextPtr mmesa = MACH64_CONTEXT( ctx ); @@ -1573,14 +1573,14 @@ static void mach64RenderClippedPoly( GLcontext *ctx, const GLuint *elts, } -static void mach64RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +static void mach64RenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); } #if MACH64_NATIVE_VTXFMT -static void mach64FastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void mach64FastRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { mach64ContextPtr mmesa = MACH64_CONTEXT( ctx ); @@ -1675,7 +1675,7 @@ static void mach64FastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, assert( vb == vbchk ); } #else -static void mach64FastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void mach64FastRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { mach64ContextPtr mmesa = MACH64_CONTEXT( ctx ); @@ -1715,7 +1715,7 @@ static void mach64FastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, #define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED) -static void mach64ChooseRenderState(GLcontext *ctx) +static void mach64ChooseRenderState(struct gl_context *ctx) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint flags = ctx->_TriangleCaps; @@ -1769,7 +1769,7 @@ static void mach64ChooseRenderState(GLcontext *ctx) /* Validate state at pipeline start */ /**********************************************************************/ -static void mach64RunPipeline( GLcontext *ctx ) +static void mach64RunPipeline( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -1798,7 +1798,7 @@ static void mach64RunPipeline( GLcontext *ctx ) * and lines, points and bitmaps. */ -static void mach64RasterPrimitive( GLcontext *ctx, GLuint hwprim ) +static void mach64RasterPrimitive( struct gl_context *ctx, GLuint hwprim ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -1811,7 +1811,7 @@ static void mach64RasterPrimitive( GLcontext *ctx, GLuint hwprim ) } } -static void mach64RenderPrimitive( GLcontext *ctx, GLenum prim ) +static void mach64RenderPrimitive( struct gl_context *ctx, GLenum prim ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint hw = hw_prim[prim]; @@ -1825,7 +1825,7 @@ static void mach64RenderPrimitive( GLcontext *ctx, GLenum prim ) } -static void mach64RenderStart( GLcontext *ctx ) +static void mach64RenderStart( struct gl_context *ctx ) { /* Check for projective texturing. Make sure all texcoord * pointers point to something. (fix in mesa?) @@ -1833,7 +1833,7 @@ static void mach64RenderStart( GLcontext *ctx ) mach64CheckTexSizes( ctx ); } -static void mach64RenderFinish( GLcontext *ctx ) +static void mach64RenderFinish( struct gl_context *ctx ) { if (MACH64_CONTEXT(ctx)->RenderIndex & MACH64_FALLBACK_BIT) _swrast_flush( ctx ); @@ -1868,7 +1868,7 @@ static const char *getFallbackString(GLuint bit) return fallbackStrings[i]; } -void mach64Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void mach64Fallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { TNLcontext *tnl = TNL_CONTEXT(ctx); mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); @@ -1908,7 +1908,7 @@ void mach64Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ) /* Initialization. */ /**********************************************************************/ -void mach64InitTriFuncs( GLcontext *ctx ) +void mach64InitTriFuncs( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); static int firsttime = 1; diff --git a/src/mesa/drivers/dri/mach64/mach64_tris.h b/src/mesa/drivers/dri/mach64/mach64_tris.h index 042df42f5b..84f613c4ab 100644 --- a/src/mesa/drivers/dri/mach64/mach64_tris.h +++ b/src/mesa/drivers/dri/mach64/mach64_tris.h @@ -33,10 +33,10 @@ #include "main/mtypes.h" -extern void mach64InitTriFuncs( GLcontext *ctx ); +extern void mach64InitTriFuncs( struct gl_context *ctx ); -extern void mach64Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void mach64Fallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( mmesa, bit, mode ) mach64Fallback( mmesa->glCtx, bit, mode ) diff --git a/src/mesa/drivers/dri/mach64/mach64_vb.c b/src/mesa/drivers/dri/mach64/mach64_vb.c index 046aff28a8..d0c04d3d03 100644 --- a/src/mesa/drivers/dri/mach64/mach64_vb.c +++ b/src/mesa/drivers/dri/mach64/mach64_vb.c @@ -54,10 +54,10 @@ #define MACH64_MAX_SETUP 0x80 static struct { - void (*emit)( GLcontext *, GLuint, GLuint, void *, GLuint ); + void (*emit)( struct gl_context *, GLuint, GLuint, void *, GLuint ); tnl_interp_func interp; tnl_copy_pv_func copy_pv; - GLboolean (*check_tex_sizes)( GLcontext *ctx ); + GLboolean (*check_tex_sizes)( struct gl_context *ctx ); GLuint vertex_size; GLuint vertex_format; } setup_tab[MACH64_MAX_SETUP]; @@ -491,7 +491,7 @@ void mach64PrintSetupFlags( char *msg, GLuint flags ) -void mach64CheckTexSizes( GLcontext *ctx ) +void mach64CheckTexSizes( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT( ctx ); @@ -511,7 +511,7 @@ void mach64CheckTexSizes( GLcontext *ctx ) } } -void mach64BuildVertices( GLcontext *ctx, +void mach64BuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ) @@ -557,7 +557,7 @@ void mach64BuildVertices( GLcontext *ctx, } } -void mach64ChooseVertexState( GLcontext *ctx ) +void mach64ChooseVertexState( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); mach64ContextPtr mmesa = MACH64_CONTEXT( ctx ); @@ -602,7 +602,7 @@ void mach64ChooseVertexState( GLcontext *ctx ) #if 0 -void mach64_emit_contiguous_verts( GLcontext *ctx, +void mach64_emit_contiguous_verts( struct gl_context *ctx, GLuint start, GLuint count ) { @@ -614,7 +614,7 @@ void mach64_emit_contiguous_verts( GLcontext *ctx, #endif -void mach64InitVB( GLcontext *ctx ) +void mach64InitVB( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); GLuint size = TNL_CONTEXT(ctx)->vb.Size; @@ -631,7 +631,7 @@ void mach64InitVB( GLcontext *ctx ) } -void mach64FreeVB( GLcontext *ctx ) +void mach64FreeVB( struct gl_context *ctx ) { mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); if (mmesa->verts) { diff --git a/src/mesa/drivers/dri/mach64/mach64_vb.h b/src/mesa/drivers/dri/mach64/mach64_vb.h index e0b366916b..8d9cd5b492 100644 --- a/src/mesa/drivers/dri/mach64/mach64_vb.h +++ b/src/mesa/drivers/dri/mach64/mach64_vb.h @@ -46,32 +46,32 @@ _NEW_FOG) -extern void mach64CheckTexSizes( GLcontext *ctx ); -extern void mach64ChooseVertexState( GLcontext *ctx ); +extern void mach64CheckTexSizes( struct gl_context *ctx ); +extern void mach64ChooseVertexState( struct gl_context *ctx ); -extern void mach64BuildVertices( GLcontext *ctx, GLuint start, GLuint count, +extern void mach64BuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ); extern void mach64PrintSetupFlags(char *msg, GLuint flags ); -extern void mach64InitVB( GLcontext *ctx ); -extern void mach64FreeVB( GLcontext *ctx ); +extern void mach64InitVB( struct gl_context *ctx ); +extern void mach64FreeVB( struct gl_context *ctx ); #if 0 -extern void mach64_emit_contiguous_verts( GLcontext *ctx, +extern void mach64_emit_contiguous_verts( struct gl_context *ctx, GLuint start, GLuint count ); -extern void mach64_emit_indexed_verts( GLcontext *ctx, +extern void mach64_emit_indexed_verts( struct gl_context *ctx, GLuint start, GLuint count ); #endif -extern void mach64_translate_vertex( GLcontext *ctx, +extern void mach64_translate_vertex( struct gl_context *ctx, const mach64Vertex *src, SWvertex *dst ); -extern void mach64_print_vertex( GLcontext *ctx, const mach64Vertex *v ); +extern void mach64_print_vertex( struct gl_context *ctx, const mach64Vertex *v ); #endif /* __MACH64_VB_H__ */ diff --git a/src/mesa/drivers/dri/mach64/mach64_vbtmp.h b/src/mesa/drivers/dri/mach64/mach64_vbtmp.h index 60bfab8f6d..a126dcae40 100644 --- a/src/mesa/drivers/dri/mach64/mach64_vbtmp.h +++ b/src/mesa/drivers/dri/mach64/mach64_vbtmp.h @@ -118,7 +118,7 @@ #if (HAVE_HW_DIVIDE || DO_SPEC || DO_TEX0 || DO_FOG || !HAVE_TINY_VERTICES) -static void TAG(emit)( GLcontext *ctx, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest, GLuint stride ) @@ -366,7 +366,7 @@ static void TAG(emit)( GLcontext *ctx, #error "cannot use tiny vertices with hw perspective divide" #endif -static void TAG(emit)( GLcontext *ctx, GLuint start, GLuint end, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest, GLuint stride ) { LOCALVARS @@ -422,7 +422,7 @@ static void TAG(emit)( GLcontext *ctx, GLuint start, GLuint end, } } #else -static void TAG(emit)( GLcontext *ctx, GLuint start, GLuint end, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest, GLuint stride ) { LOCALVARS @@ -466,7 +466,7 @@ static void TAG(emit)( GLcontext *ctx, GLuint start, GLuint end, #if (HAVE_PTEX_VERTICES) -static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) +static GLboolean TAG(check_tex_sizes)( struct gl_context *ctx ) { LOCALVARS struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -494,7 +494,7 @@ static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) return GL_TRUE; } #else -static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) +static GLboolean TAG(check_tex_sizes)( struct gl_context *ctx ) { LOCALVARS struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -535,7 +535,7 @@ static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) #endif /* ptex */ -static void TAG(interp)( GLcontext *ctx, +static void TAG(interp)( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ) diff --git a/src/mesa/drivers/dri/mga/mga_texcombine.c b/src/mesa/drivers/dri/mga/mga_texcombine.c index 24083d9651..1488a89bb6 100644 --- a/src/mesa/drivers/dri/mga/mga_texcombine.c +++ b/src/mesa/drivers/dri/mga/mga_texcombine.c @@ -41,7 +41,7 @@ #define MGA_ARG2 1 #define MGA_ALPHA 2 -GLboolean mgaUpdateTextureEnvCombine( GLcontext *ctx, int unit ) +GLboolean mgaUpdateTextureEnvCombine( struct gl_context *ctx, int unit ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); const int source = mmesa->tmu_source[unit]; diff --git a/src/mesa/drivers/dri/mga/mga_texstate.c b/src/mesa/drivers/dri/mga/mga_texstate.c index 54eda62a96..33ad8b4256 100644 --- a/src/mesa/drivers/dri/mga/mga_texstate.c +++ b/src/mesa/drivers/dri/mga/mga_texstate.c @@ -196,7 +196,7 @@ mgaSetTexImages( mgaContextPtr mmesa, * Texture unit state management */ -static void mgaUpdateTextureEnvG200( GLcontext *ctx, GLuint unit ) +static void mgaUpdateTextureEnvG200( struct gl_context *ctx, GLuint unit ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); struct gl_texture_object *tObj = ctx->Texture.Unit[0]._Current; @@ -526,7 +526,7 @@ static const GLuint g400_alpha_combine[][MGA_MAX_COMBFUNC] = }, }; -static GLboolean mgaUpdateTextureEnvBlend( GLcontext *ctx, int unit ) +static GLboolean mgaUpdateTextureEnvBlend( struct gl_context *ctx, int unit ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); const int source = mmesa->tmu_source[unit]; @@ -622,7 +622,7 @@ static GLboolean mgaUpdateTextureEnvBlend( GLcontext *ctx, int unit ) return GL_TRUE; } -static void mgaUpdateTextureEnvG400( GLcontext *ctx, GLuint unit ) +static void mgaUpdateTextureEnvG400( struct gl_context *ctx, GLuint unit ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); const int source = mmesa->tmu_source[unit]; @@ -719,7 +719,7 @@ static void mgaUpdateTextureEnvG400( GLcontext *ctx, GLuint unit ) } } -static void disable_tex( GLcontext *ctx, int unit ) +static void disable_tex( struct gl_context *ctx, int unit ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); @@ -747,7 +747,7 @@ static void disable_tex( GLcontext *ctx, int unit ) mmesa->dirty |= MGA_UPLOAD_CONTEXT | (MGA_UPLOAD_TEX0 << unit); } -static GLboolean enable_tex( GLcontext *ctx, int unit ) +static GLboolean enable_tex( struct gl_context *ctx, int unit ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); const int source = mmesa->tmu_source[unit]; @@ -768,7 +768,7 @@ static GLboolean enable_tex( GLcontext *ctx, int unit ) return GL_TRUE; } -static GLboolean update_tex_common( GLcontext *ctx, int unit ) +static GLboolean update_tex_common( struct gl_context *ctx, int unit ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); const int source = mmesa->tmu_source[unit]; @@ -842,7 +842,7 @@ static GLboolean update_tex_common( GLcontext *ctx, int unit ) } -static GLboolean updateTextureUnit( GLcontext *ctx, int unit ) +static GLboolean updateTextureUnit( struct gl_context *ctx, int unit ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); const int source = mmesa->tmu_source[unit]; @@ -865,7 +865,7 @@ static GLboolean updateTextureUnit( GLcontext *ctx, int unit ) /* The G400 is now programmed quite differently wrt texture environment. */ -void mgaUpdateTextureState( GLcontext *ctx ) +void mgaUpdateTextureState( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); GLboolean ok; diff --git a/src/mesa/drivers/dri/mga/mga_xmesa.c b/src/mesa/drivers/dri/mga/mga_xmesa.c index 069947e252..d1b281a2c0 100644 --- a/src/mesa/drivers/dri/mga/mga_xmesa.c +++ b/src/mesa/drivers/dri/mga/mga_xmesa.c @@ -57,7 +57,6 @@ #include "mgatris.h" #include "mgavb.h" #include "mgapixel.h" -#include "mga_xmesa.h" #include "mga_dri.h" #include "utils.h" @@ -111,7 +110,7 @@ mgaFillInModes( __DRIscreen *psp, unsigned stencil_bits, GLboolean have_back_buffer ) { __DRIconfig **configs; - __GLcontextModes * m; + struct gl_config * m; unsigned depth_buffer_factor; unsigned back_buffer_factor; GLenum fb_format; @@ -422,13 +421,13 @@ static const struct dri_debug_control debug_control[] = static GLboolean mgaCreateContext( gl_api api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate ) { int i; unsigned maxlevels; - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; mgaContextPtr mmesa; __DRIscreen *sPriv = driContextPriv->driScreenPriv; mgaScreenPrivate *mgaScreen = (mgaScreenPrivate *)sPriv->private; @@ -696,7 +695,7 @@ mgaDestroyContext(__DRIcontext *driContextPriv) static GLboolean mgaCreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap ) { mgaScreenPrivate *screen = (mgaScreenPrivate *) driScrnPriv->private; @@ -813,7 +812,7 @@ mgaCreateBuffer( __DRIscreen *driScrnPriv, static void mgaDestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } static void @@ -821,7 +820,7 @@ mgaSwapBuffers(__DRIdrawable *dPriv) { if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) { mgaContextPtr mmesa; - GLcontext *ctx; + struct gl_context *ctx; mmesa = (mgaContextPtr) dPriv->driContextPriv->driverPrivate; ctx = mmesa->glCtx; @@ -876,8 +875,8 @@ mgaMakeCurrent(__DRIcontext *driContextPriv, mmesa->driReadable = driReadPriv; _mesa_make_current(mmesa->glCtx, - (GLframebuffer *) driDrawPriv->driverPrivate, - (GLframebuffer *) driReadPriv->driverPrivate); + (struct gl_framebuffer *) driDrawPriv->driverPrivate, + (struct gl_framebuffer *) driReadPriv->driverPrivate); } else { _mesa_make_current(NULL, NULL, NULL); @@ -926,7 +925,7 @@ void mgaGetLock( mgaContextPtr mmesa, GLuint flags ) * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig **mgaInitScreen(__DRIscreen *psp) { diff --git a/src/mesa/drivers/dri/mga/mgacontext.h b/src/mesa/drivers/dri/mga/mgacontext.h index 4141565931..b1fbb3c45d 100644 --- a/src/mesa/drivers/dri/mga/mgacontext.h +++ b/src/mesa/drivers/dri/mga/mgacontext.h @@ -179,7 +179,7 @@ struct mga_hw_state { struct mga_context_t { - GLcontext *glCtx; + struct gl_context *glCtx; unsigned int lastStamp; /* fullscreen breaks dpriv->laststamp, * need to shadow it here. */ diff --git a/src/mesa/drivers/dri/mga/mgadd.c b/src/mesa/drivers/dri/mga/mgadd.c index 2f23c0e514..1b39813e37 100644 --- a/src/mesa/drivers/dri/mga/mgadd.c +++ b/src/mesa/drivers/dri/mga/mgadd.c @@ -43,7 +43,7 @@ ***************************************/ -static const GLubyte *mgaGetString( GLcontext *ctx, GLenum name ) +static const GLubyte *mgaGetString( struct gl_context *ctx, GLenum name ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); static char buffer[128]; diff --git a/src/mesa/drivers/dri/mga/mgaioctl.c b/src/mesa/drivers/dri/mga/mgaioctl.c index 259358eaa3..a54d86a178 100644 --- a/src/mesa/drivers/dri/mga/mgaioctl.c +++ b/src/mesa/drivers/dri/mga/mgaioctl.c @@ -201,7 +201,7 @@ drmBufPtr mga_get_buffer_ioctl( mgaContextPtr mmesa ) static void -mgaClear( GLcontext *ctx, GLbitfield mask ) +mgaClear( struct gl_context *ctx, GLbitfield mask ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); __DRIdrawable *dPriv = mmesa->driDrawable; @@ -479,7 +479,7 @@ void mgaCopyBuffer( __DRIdrawable *dPriv ) * * \sa glFinish, mgaFlush, mgaFlushDMA */ -static void mgaFinish( GLcontext *ctx ) +static void mgaFinish( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); uint32_t fence; @@ -688,7 +688,7 @@ void mgaGetILoadBufferLocked( mgaContextPtr mmesa ) * * \sa glFlush, mgaFinish, mgaFlushDMA */ -static void mgaFlush( GLcontext *ctx ) +static void mgaFlush( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); diff --git a/src/mesa/drivers/dri/mga/mgapixel.c b/src/mesa/drivers/dri/mga/mgapixel.c index 9cbdbe02c9..b8e365c714 100644 --- a/src/mesa/drivers/dri/mga/mgapixel.c +++ b/src/mesa/drivers/dri/mga/mgapixel.c @@ -56,7 +56,7 @@ static GLboolean -check_depth_stencil_24_8( const GLcontext *ctx, GLenum type, +check_depth_stencil_24_8( const struct gl_context *ctx, GLenum type, const struct gl_pixelstore_attrib *packing, const void *pixels, GLint sz, GLint pitch ) @@ -80,7 +80,7 @@ check_depth_stencil_24_8( const GLcontext *ctx, GLenum type, static GLboolean -check_depth( const GLcontext *ctx, GLenum type, +check_depth( const struct gl_context *ctx, GLenum type, const struct gl_pixelstore_attrib *packing, const void *pixels, GLint sz, GLint pitch ) { @@ -100,7 +100,7 @@ check_depth( const GLcontext *ctx, GLenum type, static GLboolean -check_color( const GLcontext *ctx, GLenum type, GLenum format, +check_color( const struct gl_context *ctx, GLenum type, GLenum format, const struct gl_pixelstore_attrib *packing, const void *pixels, GLint sz, GLint pitch ) { @@ -125,7 +125,7 @@ check_color( const GLcontext *ctx, GLenum type, GLenum format, } static GLboolean -check_color_per_fragment_ops( const GLcontext *ctx ) +check_color_per_fragment_ops( const struct gl_context *ctx ) { return (!( ctx->Color.AlphaEnabled || ctx->Depth.Test || @@ -145,7 +145,7 @@ check_color_per_fragment_ops( const GLcontext *ctx ) } static GLboolean -check_depth_per_fragment_ops( const GLcontext *ctx ) +check_depth_per_fragment_ops( const struct gl_context *ctx ) { return ( ctx->Current.RasterPosValid && ctx->Color.ColorMask[0][RCOMP] == 0 && @@ -160,7 +160,7 @@ check_depth_per_fragment_ops( const GLcontext *ctx ) */ #if defined(MESA_packed_depth_stencil) static GLboolean -check_stencil_per_fragment_ops( const GLcontext *ctx ) +check_stencil_per_fragment_ops( const struct gl_context *ctx ) { return ( !ctx->Pixel.IndexShift && !ctx->Pixel.IndexOffset ); @@ -169,8 +169,8 @@ check_stencil_per_fragment_ops( const GLcontext *ctx ) static GLboolean -clip_pixelrect( const GLcontext *ctx, - const GLframebuffer *buffer, +clip_pixelrect( const struct gl_context *ctx, + const struct gl_framebuffer *buffer, GLint *x, GLint *y, GLsizei *width, GLsizei *height, GLint *skipPixels, GLint *skipRows, @@ -215,7 +215,7 @@ clip_pixelrect( const GLcontext *ctx, } static GLboolean -mgaTryReadPixels( GLcontext *ctx, +mgaTryReadPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, @@ -373,7 +373,7 @@ mgaTryReadPixels( GLcontext *ctx, } static void -mgaDDReadPixels( GLcontext *ctx, +mgaDDReadPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, @@ -386,7 +386,7 @@ mgaDDReadPixels( GLcontext *ctx, -static void do_draw_pix( GLcontext *ctx, +static void do_draw_pix( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLint pitch, const void *pixels, @@ -470,7 +470,7 @@ static void do_draw_pix( GLcontext *ctx, static GLboolean -mgaTryDrawPixels( GLcontext *ctx, +mgaTryDrawPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -619,7 +619,7 @@ mgaTryDrawPixels( GLcontext *ctx, } static void -mgaDDDrawPixels( GLcontext *ctx, +mgaDDDrawPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -637,7 +637,7 @@ mgaDDDrawPixels( GLcontext *ctx, * the same block of agp space which isn't used for anything else at * present. */ -void mgaDDInitPixelFuncs( GLcontext *ctx ) +void mgaDDInitPixelFuncs( struct gl_context *ctx ) { #if 0 /* evidently, these functions don't always work */ diff --git a/src/mesa/drivers/dri/mga/mgapixel.h b/src/mesa/drivers/dri/mga/mgapixel.h index f5f300db56..6241b4b5ef 100644 --- a/src/mesa/drivers/dri/mga/mgapixel.h +++ b/src/mesa/drivers/dri/mga/mgapixel.h @@ -30,6 +30,6 @@ #include "main/mtypes.h" -extern void mgaDDInitPixelFuncs( GLcontext *ctx ); +extern void mgaDDInitPixelFuncs( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/mga/mgarender.c b/src/mesa/drivers/dri/mga/mgarender.c index cc0cea618d..f10a91adce 100644 --- a/src/mesa/drivers/dri/mga/mgarender.c +++ b/src/mesa/drivers/dri/mga/mgarender.c @@ -66,7 +66,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #define HAVE_ELTS 0 /* for now */ -static void mgaDmaPrimitive( GLcontext *ctx, GLenum prim ) +static void mgaDmaPrimitive( struct gl_context *ctx, GLenum prim ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); GLuint hwprim; @@ -124,7 +124,7 @@ static void mgaDmaPrimitive( GLcontext *ctx, GLenum prim ) /**********************************************************************/ -static GLboolean mga_run_render( GLcontext *ctx, +static GLboolean mga_run_render( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/mga/mgaspan.c b/src/mesa/drivers/dri/mga/mgaspan.c index 10606c152c..dd9a8d74ed 100644 --- a/src/mesa/drivers/dri/mga/mgaspan.c +++ b/src/mesa/drivers/dri/mga/mgaspan.c @@ -169,7 +169,7 @@ static void -mgaSpanRenderStart( GLcontext *ctx ) +mgaSpanRenderStart( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); FLUSH_BATCH( mmesa ); @@ -177,7 +177,7 @@ mgaSpanRenderStart( GLcontext *ctx ) } static void -mgaSpanRenderFinish( GLcontext *ctx ) +mgaSpanRenderFinish( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); _swrast_flush( ctx ); @@ -192,7 +192,7 @@ mgaSpanRenderFinish( GLcontext *ctx ) * write routines for 888 and 8888. We also need to determine whether or not * the visual has destination alpha. */ -void mgaDDInitSpanFuncs( GLcontext *ctx ) +void mgaDDInitSpanFuncs( struct gl_context *ctx ) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = mgaSpanRenderStart; @@ -204,7 +204,7 @@ void mgaDDInitSpanFuncs( GLcontext *ctx ) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -mgaSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis) +mgaSetSpanFunctions(driRenderbuffer *drb, const struct gl_config *vis) { if (drb->Base.Format == MESA_FORMAT_RGB565) { mgaInitPointers_565(&drb->Base); diff --git a/src/mesa/drivers/dri/mga/mgaspan.h b/src/mesa/drivers/dri/mga/mgaspan.h index f5e2e49b8a..48186b46e9 100644 --- a/src/mesa/drivers/dri/mga/mgaspan.h +++ b/src/mesa/drivers/dri/mga/mgaspan.h @@ -30,10 +30,10 @@ #include "drirenderbuffer.h" -extern void mgaDDInitSpanFuncs( GLcontext *ctx ); +extern void mgaDDInitSpanFuncs( struct gl_context *ctx ); extern void -mgaSetSpanFunctions(driRenderbuffer *rb, const GLvisual *vis); +mgaSetSpanFunctions(driRenderbuffer *rb, const struct gl_config *vis); #endif diff --git a/src/mesa/drivers/dri/mga/mgastate.c b/src/mesa/drivers/dri/mga/mgastate.c index 745d5e9852..25d7de28fe 100644 --- a/src/mesa/drivers/dri/mga/mgastate.c +++ b/src/mesa/drivers/dri/mga/mgastate.c @@ -51,7 +51,7 @@ #include "drirenderbuffer.h" -static void updateSpecularLighting( GLcontext *ctx ); +static void updateSpecularLighting( struct gl_context *ctx ); static const GLuint mgarop_NoBLK[16] = { DC_atype_rpl | 0x00000000, DC_atype_rstr | 0x00080000, @@ -68,7 +68,7 @@ static const GLuint mgarop_NoBLK[16] = { * Alpha blending */ -static void mgaDDAlphaFunc(GLcontext *ctx, GLenum func, GLfloat ref) +static void mgaDDAlphaFunc(struct gl_context *ctx, GLenum func, GLfloat ref) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); GLubyte refByte; @@ -111,7 +111,7 @@ static void mgaDDAlphaFunc(GLcontext *ctx, GLenum func, GLfloat ref) mmesa->hw.alpha_func = a | MGA_FIELD( AC_atref, refByte ); } -static void updateBlendLogicOp(GLcontext *ctx) +static void updateBlendLogicOp(struct gl_context *ctx) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); GLboolean logicOp = RGBA_LOGICOP_ENABLED(ctx); @@ -126,14 +126,14 @@ static void updateBlendLogicOp(GLcontext *ctx) mmesa->hw.blend_func == (AC_src_src_alpha_sat | AC_dst_zero) ); } -static void mgaDDBlendEquationSeparate(GLcontext *ctx, +static void mgaDDBlendEquationSeparate(struct gl_context *ctx, GLenum modeRGB, GLenum modeA) { assert( modeRGB == modeA ); updateBlendLogicOp( ctx ); } -static void mgaDDBlendFuncSeparate( GLcontext *ctx, GLenum sfactorRGB, +static void mgaDDBlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -205,7 +205,7 @@ static void mgaDDBlendFuncSeparate( GLcontext *ctx, GLenum sfactorRGB, * Depth testing */ -static void mgaDDDepthFunc(GLcontext *ctx, GLenum func) +static void mgaDDDepthFunc(struct gl_context *ctx, GLenum func) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); int zmode; @@ -239,7 +239,7 @@ static void mgaDDDepthFunc(GLcontext *ctx, GLenum func) mmesa->hw.zmode |= zmode; } -static void mgaDDDepthMask(GLcontext *ctx, GLboolean flag) +static void mgaDDDepthMask(struct gl_context *ctx, GLboolean flag) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); @@ -250,7 +250,7 @@ static void mgaDDDepthMask(GLcontext *ctx, GLboolean flag) } -static void mgaDDClearDepth(GLcontext *ctx, GLclampd d) +static void mgaDDClearDepth(struct gl_context *ctx, GLclampd d) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -272,7 +272,7 @@ static void mgaDDClearDepth(GLcontext *ctx, GLclampd d) */ -static void mgaDDFogfv(GLcontext *ctx, GLenum pname, const GLfloat *param) +static void mgaDDFogfv(struct gl_context *ctx, GLenum pname, const GLfloat *param) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -292,7 +292,7 @@ static void mgaDDFogfv(GLcontext *ctx, GLenum pname, const GLfloat *param) */ -void mgaUpdateClipping(const GLcontext *ctx) +void mgaUpdateClipping(const struct gl_context *ctx) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -319,7 +319,7 @@ void mgaUpdateClipping(const GLcontext *ctx) } -static void mgaDDScissor( GLcontext *ctx, GLint x, GLint y, +static void mgaDDScissor( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { if ( ctx->Scissor.Enabled ) { @@ -338,7 +338,7 @@ static void mgaDDScissor( GLcontext *ctx, GLint x, GLint y, #define _CULL_NEGATIVE ((1<<11)|(1<<5)|(1<<16)) #define _CULL_POSITIVE (1<<11) -static void mgaDDCullFaceFrontFace(GLcontext *ctx, GLenum unused) +static void mgaDDCullFaceFrontFace(struct gl_context *ctx, GLenum unused) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -368,7 +368,7 @@ static void mgaDDCullFaceFrontFace(GLcontext *ctx, GLenum unused) * Masks */ -static void mgaDDColorMask(GLcontext *ctx, +static void mgaDDColorMask(struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -421,7 +421,7 @@ static int mgaStipples[16] = { * \param mask Pointer to the 32x32 stipple mask */ -static void mgaDDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) +static void mgaDDPolygonStipple( struct gl_context *ctx, const GLubyte *mask ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); const GLubyte *m = mask; @@ -478,7 +478,7 @@ static void mgaDDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) * sense to break them out of the core texture state update routines. */ -static void updateSpecularLighting( GLcontext *ctx ) +static void updateSpecularLighting( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); unsigned int specen; @@ -497,7 +497,7 @@ static void updateSpecularLighting( GLcontext *ctx ) */ -static void mgaDDLightModelfv(GLcontext *ctx, GLenum pname, +static void mgaDDLightModelfv(struct gl_context *ctx, GLenum pname, const GLfloat *param) { if (pname == GL_LIGHT_MODEL_COLOR_CONTROL) { @@ -513,7 +513,7 @@ static void mgaDDLightModelfv(GLcontext *ctx, GLenum pname, static void -mgaDDStencilFuncSeparate(GLcontext *ctx, GLenum face, GLenum func, GLint ref, +mgaDDStencilFuncSeparate(struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -558,7 +558,7 @@ mgaDDStencilFuncSeparate(GLcontext *ctx, GLenum face, GLenum func, GLint ref, } static void -mgaDDStencilMaskSeparate(GLcontext *ctx, GLenum face, GLuint mask) +mgaDDStencilMaskSeparate(struct gl_context *ctx, GLenum face, GLuint mask) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -568,7 +568,7 @@ mgaDDStencilMaskSeparate(GLcontext *ctx, GLenum face, GLuint mask) } static void -mgaDDStencilOpSeparate(GLcontext *ctx, GLenum face, GLenum fail, GLenum zfail, +mgaDDStencilOpSeparate(struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -676,7 +676,7 @@ mgaDDStencilOpSeparate(GLcontext *ctx, GLenum face, GLenum fail, GLenum zfail, * Window position and viewport transformation */ -void mgaCalcViewport( GLcontext *ctx ) +void mgaCalcViewport( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -694,14 +694,14 @@ void mgaCalcViewport( GLcontext *ctx ) mmesa->SetupNewInputs = ~0; } -static void mgaViewport( GLcontext *ctx, +static void mgaViewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { mgaCalcViewport( ctx ); } -static void mgaDepthRange( GLcontext *ctx, +static void mgaDepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { mgaCalcViewport( ctx ); @@ -712,7 +712,7 @@ static void mgaDepthRange( GLcontext *ctx, * Miscellaneous */ -static void mgaDDClearColor(GLcontext *ctx, +static void mgaDDClearColor(struct gl_context *ctx, const GLfloat color[4] ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -729,13 +729,13 @@ static void mgaDDClearColor(GLcontext *ctx, /* Fallback to swrast for select and feedback. */ -static void mgaRenderMode( GLcontext *ctx, GLenum mode ) +static void mgaRenderMode( struct gl_context *ctx, GLenum mode ) { FALLBACK( ctx, MGA_FALLBACK_RENDERMODE, (mode != GL_RENDER) ); } -static void mgaDDLogicOp( GLcontext *ctx, GLenum opcode ) +static void mgaDDLogicOp( struct gl_context *ctx, GLenum opcode ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); @@ -791,7 +791,7 @@ void mgaUpdateRects( mgaContextPtr mmesa, GLuint buffers ) } -static void mgaDDDrawBuffer(GLcontext *ctx, GLenum mode ) +static void mgaDDDrawBuffer(struct gl_context *ctx, GLenum mode ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -823,7 +823,7 @@ static void mgaDDDrawBuffer(GLcontext *ctx, GLenum mode ) } -static void mgaDDReadBuffer(GLcontext *ctx, GLenum mode ) +static void mgaDDReadBuffer(struct gl_context *ctx, GLenum mode ) { /* nothing, until we implement h/w glRead/CopyPixels or CopyTexImage */ } @@ -834,7 +834,7 @@ static void mgaDDReadBuffer(GLcontext *ctx, GLenum mode ) */ -static void mgaDDEnable(GLcontext *ctx, GLenum cap, GLboolean state) +static void mgaDDEnable(struct gl_context *ctx, GLenum cap, GLboolean state) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); @@ -932,7 +932,7 @@ static void mgaDDPrintDirty( const char *msg, GLuint state ) void mgaEmitHwStateLocked( mgaContextPtr mmesa ) { drm_mga_sarea_t *sarea = mmesa->sarea; - GLcontext * ctx = mmesa->glCtx; + struct gl_context * ctx = mmesa->glCtx; if (MGA_DEBUG & DEBUG_VERBOSE_MSG) mgaDDPrintDirty( __FUNCTION__, mmesa->dirty ); @@ -1009,7 +1009,7 @@ void mgaEmitHwStateLocked( mgaContextPtr mmesa ) */ -static void mgaDDValidateState( GLcontext *ctx ) +static void mgaDDValidateState( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); @@ -1033,7 +1033,7 @@ static void mgaDDValidateState( GLcontext *ctx ) } -static void mgaDDInvalidateState( GLcontext *ctx, GLuint new_state ) +static void mgaDDInvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -1043,7 +1043,7 @@ static void mgaDDInvalidateState( GLcontext *ctx, GLuint new_state ) } -static void mgaRunPipeline( GLcontext *ctx ) +static void mgaRunPipeline( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -1062,7 +1062,7 @@ static void mgaRunPipeline( GLcontext *ctx ) void mgaInitState( mgaContextPtr mmesa ) { mgaScreenPrivate *mgaScreen = mmesa->mgaScreen; - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; if (ctx->Visual.doubleBufferMode) { /* use back buffer by default */ @@ -1161,7 +1161,7 @@ void mgaInitState( mgaContextPtr mmesa ) } -void mgaDDInitStateFuncs( GLcontext *ctx ) +void mgaDDInitStateFuncs( struct gl_context *ctx ) { ctx->Driver.UpdateState = mgaDDInvalidateState; ctx->Driver.Enable = mgaDDEnable; diff --git a/src/mesa/drivers/dri/mga/mgastate.h b/src/mesa/drivers/dri/mga/mgastate.h index ec65d4e6cd..6e8a869cf7 100644 --- a/src/mesa/drivers/dri/mga/mgastate.h +++ b/src/mesa/drivers/dri/mga/mgastate.h @@ -29,10 +29,10 @@ #define _MGA_STATE_H extern void mgaInitState( mgaContextPtr mmesa ); -extern void mgaDDInitStateFuncs(GLcontext *ctx); -extern void mgaUpdateClipping(const GLcontext *ctx); -extern void mgaUpdateCull( GLcontext *ctx ); -extern void mgaCalcViewport( GLcontext *ctx ); +extern void mgaDDInitStateFuncs(struct gl_context *ctx); +extern void mgaUpdateClipping(const struct gl_context *ctx); +extern void mgaUpdateCull( struct gl_context *ctx ); +extern void mgaCalcViewport( struct gl_context *ctx ); extern void mgaUpdateRects( mgaContextPtr mmesa, GLuint buffers ); #endif diff --git a/src/mesa/drivers/dri/mga/mgatex.c b/src/mesa/drivers/dri/mga/mgatex.c index ca3dd4b013..11ab9b6117 100644 --- a/src/mesa/drivers/dri/mga/mgatex.c +++ b/src/mesa/drivers/dri/mga/mgatex.c @@ -161,7 +161,7 @@ static void mgaSetTexBorderColor(mgaTextureObjectPtr t, const GLfloat color[4]) static gl_format -mgaChooseTextureFormat( GLcontext *ctx, GLint internalFormat, +mgaChooseTextureFormat( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -336,7 +336,7 @@ mgaAllocTexObj( struct gl_texture_object *tObj ) } -static void mgaTexEnv( GLcontext *ctx, GLenum target, +static void mgaTexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { GLuint unit = ctx->Texture.CurrentUnit; @@ -355,7 +355,7 @@ static void mgaTexEnv( GLcontext *ctx, GLenum target, } -static void mgaTexImage2D( GLcontext *ctx, GLenum target, GLint level, +static void mgaTexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -384,7 +384,7 @@ static void mgaTexImage2D( GLcontext *ctx, GLenum target, GLint level, t->dirty_images[0] |= (1UL << level); } -static void mgaTexSubImage2D( GLcontext *ctx, +static void mgaTexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -424,7 +424,7 @@ static void mgaTexSubImage2D( GLcontext *ctx, */ static void -mgaTexParameter( GLcontext *ctx, GLenum target, +mgaTexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj, GLenum pname, const GLfloat *params ) { @@ -480,7 +480,7 @@ mgaTexParameter( GLcontext *ctx, GLenum target, static void -mgaBindTexture( GLcontext *ctx, GLenum target, +mgaBindTexture( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj ) { assert( (target != GL_TEXTURE_2D && target != GL_TEXTURE_RECTANGLE_NV) || @@ -489,7 +489,7 @@ mgaBindTexture( GLcontext *ctx, GLenum target, static void -mgaDeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj ) +mgaDeleteTexture( struct gl_context *ctx, struct gl_texture_object *tObj ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); driTextureObject * t = (driTextureObject *) tObj->DriverData; @@ -516,7 +516,7 @@ mgaDeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj ) * texture object from the core mesa gl_texture_object. Not done at this time. */ static struct gl_texture_object * -mgaNewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +mgaNewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; obj = _mesa_new_texture_object(ctx, name, target); diff --git a/src/mesa/drivers/dri/mga/mgatex.h b/src/mesa/drivers/dri/mga/mgatex.h index 789034964a..3827fb0668 100644 --- a/src/mesa/drivers/dri/mga/mgatex.h +++ b/src/mesa/drivers/dri/mga/mgatex.h @@ -37,7 +37,7 @@ typedef struct mga_texture_object_s *mgaTextureObjectPtr; * state is properly setup. Texture residence is checked later * when we grab the lock. */ -void mgaUpdateTextureState( GLcontext *ctx ); +void mgaUpdateTextureState( struct gl_context *ctx ); int mgaUploadTexImages( mgaContextPtr mmesa, mgaTextureObjectPtr t ); @@ -45,6 +45,6 @@ void mgaDestroyTexObj( mgaContextPtr mmesa, mgaTextureObjectPtr t ); void mgaInitTextureFuncs( struct dd_function_table *functions ); -GLboolean mgaUpdateTextureEnvCombine( GLcontext *ctx, int unit ); +GLboolean mgaUpdateTextureEnvCombine( struct gl_context *ctx, int unit ); #endif diff --git a/src/mesa/drivers/dri/mga/mgatris.c b/src/mesa/drivers/dri/mga/mgatris.c index 07cf682f6e..7b06774adb 100644 --- a/src/mesa/drivers/dri/mga/mgatris.c +++ b/src/mesa/drivers/dri/mga/mgatris.c @@ -40,7 +40,7 @@ #include "mgavb.h" -static void mgaRenderPrimitive( GLcontext *ctx, GLenum prim ); +static void mgaRenderPrimitive( struct gl_context *ctx, GLenum prim ); /*********************************************************************** * Functions to draw basic primitives * @@ -285,7 +285,7 @@ mga_fallback_tri( mgaContextPtr mmesa, mgaVertex *v1, mgaVertex *v2 ) { - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; SWvertex v[3]; mga_translate_vertex( ctx, v0, &v[0] ); mga_translate_vertex( ctx, v1, &v[1] ); @@ -299,7 +299,7 @@ mga_fallback_line( mgaContextPtr mmesa, mgaVertex *v0, mgaVertex *v1 ) { - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; SWvertex v[2]; mga_translate_vertex( ctx, v0, &v[0] ); mga_translate_vertex( ctx, v1, &v[1] ); @@ -311,7 +311,7 @@ static void mga_fallback_point( mgaContextPtr mmesa, mgaVertex *v0 ) { - GLcontext *ctx = mmesa->glCtx; + struct gl_context *ctx = mmesa->glCtx; SWvertex v[1]; mga_translate_vertex( ctx, v0, &v[0] ); _swrast_Point( ctx, &v[0] ); @@ -630,7 +630,7 @@ static void init_rast_tab( void ) -static void mgaRenderClippedPoly( GLcontext *ctx, const GLuint *elts, GLuint n ) +static void mgaRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -652,13 +652,13 @@ static void mgaRenderClippedPoly( GLcontext *ctx, const GLuint *elts, GLuint n ) tnl->Driver.Render.PrimitiveNotify( ctx, prim ); } -static void mgaRenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +static void mgaRenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); } -static void mgaFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void mgaFastRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); @@ -687,7 +687,7 @@ static void mgaFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, #define ANY_RASTER_FLAGS (DD_FLATSHADE|DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET| \ DD_TRI_UNFILLED) -void mgaChooseRenderState(GLcontext *ctx) +void mgaChooseRenderState(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -773,7 +773,7 @@ static GLenum reduced_prim[GL_POLYGON+1] = { /* Always called between RenderStart and RenderFinish --> We already * hold the lock. */ -void mgaRasterPrimitive( GLcontext *ctx, GLenum prim, GLuint hwprim ) +void mgaRasterPrimitive( struct gl_context *ctx, GLenum prim, GLuint hwprim ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); @@ -806,7 +806,7 @@ void mgaRasterPrimitive( GLcontext *ctx, GLenum prim, GLuint hwprim ) * which renders strips as strips, the equivalent calculations are * performed in mgarender.c. */ -static void mgaRenderPrimitive( GLcontext *ctx, GLenum prim ) +static void mgaRenderPrimitive( struct gl_context *ctx, GLenum prim ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); GLuint rprim = reduced_prim[prim]; @@ -821,7 +821,7 @@ static void mgaRenderPrimitive( GLcontext *ctx, GLenum prim ) } } -static void mgaRenderFinish( GLcontext *ctx ) +static void mgaRenderFinish( struct gl_context *ctx ) { if (MGA_CONTEXT(ctx)->RenderIndex & MGA_FALLBACK_BIT) _swrast_flush( ctx ); @@ -856,7 +856,7 @@ static const char *getFallbackString(GLuint bit) } -void mgaFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void mgaFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { TNLcontext *tnl = TNL_CONTEXT(ctx); mgaContextPtr mmesa = MGA_CONTEXT(ctx); @@ -893,7 +893,7 @@ void mgaFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) } -void mgaDDInitTriFuncs( GLcontext *ctx ) +void mgaDDInitTriFuncs( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); mgaContextPtr mmesa = MGA_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/mga/mgatris.h b/src/mesa/drivers/dri/mga/mgatris.h index 43612b80a1..2f574feb93 100644 --- a/src/mesa/drivers/dri/mga/mgatris.h +++ b/src/mesa/drivers/dri/mga/mgatris.h @@ -30,11 +30,11 @@ #include "main/mtypes.h" -extern void mgaDDInitTriFuncs( GLcontext *ctx ); -extern void mgaChooseRenderState( GLcontext *ctx ); -extern void mgaRasterPrimitive( GLcontext *ctx, GLenum prim, GLuint hwprim ); +extern void mgaDDInitTriFuncs( struct gl_context *ctx ); +extern void mgaChooseRenderState( struct gl_context *ctx ); +extern void mgaRasterPrimitive( struct gl_context *ctx, GLenum prim, GLuint hwprim ); -extern void mgaFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void mgaFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( ctx, bit, mode ) mgaFallback( ctx, bit, mode ) #define _MGA_NEW_RENDERSTATE (_DD_NEW_POINT_SMOOTH | \ diff --git a/src/mesa/drivers/dri/mga/mgavb.c b/src/mesa/drivers/dri/mga/mgavb.c index 71bbf33f23..f098aa5cbc 100644 --- a/src/mesa/drivers/dri/mga/mgavb.c +++ b/src/mesa/drivers/dri/mga/mgavb.c @@ -52,10 +52,10 @@ #define MGA_MAX_SETUP 0x80 static struct { - void (*emit)( GLcontext *, GLuint, GLuint, void *, GLuint ); + void (*emit)( struct gl_context *, GLuint, GLuint, void *, GLuint ); tnl_interp_func interp; tnl_copy_pv_func copy_pv; - GLboolean (*check_tex_sizes)( GLcontext *ctx ); + GLboolean (*check_tex_sizes)( struct gl_context *ctx ); GLuint vertex_size; GLuint vertex_format; } setup_tab[MGA_MAX_SETUP]; @@ -316,7 +316,7 @@ void mgaPrintSetupFlags(char *msg, GLuint flags ) } -void mgaCheckTexSizes( GLcontext *ctx ) +void mgaCheckTexSizes( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -339,7 +339,7 @@ void mgaCheckTexSizes( GLcontext *ctx ) } -void mgaBuildVertices( GLcontext *ctx, +void mgaBuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ) @@ -386,7 +386,7 @@ void mgaBuildVertices( GLcontext *ctx, } -void mgaChooseVertexState( GLcontext *ctx ) +void mgaChooseVertexState( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT( ctx ); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -433,7 +433,7 @@ void mgaChooseVertexState( GLcontext *ctx ) -void *mga_emit_contiguous_verts( GLcontext *ctx, +void *mga_emit_contiguous_verts( struct gl_context *ctx, GLuint start, GLuint count, void *dest) @@ -446,7 +446,7 @@ void *mga_emit_contiguous_verts( GLcontext *ctx, -void mgaInitVB( GLcontext *ctx ) +void mgaInitVB( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); GLuint size = TNL_CONTEXT(ctx)->vb.Size; @@ -467,7 +467,7 @@ void mgaInitVB( GLcontext *ctx ) } -void mgaFreeVB( GLcontext *ctx ) +void mgaFreeVB( struct gl_context *ctx ) { mgaContextPtr mmesa = MGA_CONTEXT(ctx); if (mmesa->verts) { diff --git a/src/mesa/drivers/dri/mga/mgavb.h b/src/mesa/drivers/dri/mga/mgavb.h index 8d24ab7b5f..20e5d8ba70 100644 --- a/src/mesa/drivers/dri/mga/mgavb.h +++ b/src/mesa/drivers/dri/mga/mgavb.h @@ -39,27 +39,27 @@ _NEW_FOG) -extern void mgaChooseVertexState( GLcontext *ctx ); -extern void mgaCheckTexSizes( GLcontext *ctx ); -extern void mgaBuildVertices( GLcontext *ctx, +extern void mgaChooseVertexState( struct gl_context *ctx ); +extern void mgaCheckTexSizes( struct gl_context *ctx ); +extern void mgaBuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ); extern void mgaPrintSetupFlags(char *msg, GLuint flags ); -extern void mgaInitVB( GLcontext *ctx ); -extern void mgaFreeVB( GLcontext *ctx ); +extern void mgaInitVB( struct gl_context *ctx ); +extern void mgaFreeVB( struct gl_context *ctx ); -extern void *mga_emit_contiguous_verts( GLcontext *ctx, +extern void *mga_emit_contiguous_verts( struct gl_context *ctx, GLuint start, GLuint count, void *dest ); -extern void mga_translate_vertex(GLcontext *ctx, +extern void mga_translate_vertex(struct gl_context *ctx, const mgaVertex *src, SWvertex *dst); -extern void mga_print_vertex( GLcontext *ctx, const mgaVertex *v ); +extern void mga_print_vertex( struct gl_context *ctx, const mgaVertex *v ); #endif diff --git a/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c b/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c index fc5f77b46a..f31772fe1d 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_bo_state.c @@ -28,7 +28,7 @@ #include "nouveau_context.h" static GLboolean -nouveau_bo_marker_emit(GLcontext *ctx, struct nouveau_bo_marker *m, +nouveau_bo_marker_emit(struct gl_context *ctx, struct nouveau_bo_marker *m, uint32_t flags) { struct nouveau_channel *chan = context_chan(ctx); @@ -136,7 +136,7 @@ nouveau_bo_context_reset(struct nouveau_bo_context *bctx) } GLboolean -nouveau_bo_state_emit(GLcontext *ctx) +nouveau_bo_state_emit(struct gl_context *ctx) { struct nouveau_bo_state *s = &to_nouveau_context(ctx)->bo; int i, j; @@ -155,7 +155,7 @@ nouveau_bo_state_emit(GLcontext *ctx) } void -nouveau_bo_state_init(GLcontext *ctx) +nouveau_bo_state_init(struct gl_context *ctx) { struct nouveau_bo_state *s = &to_nouveau_context(ctx)->bo; int i; @@ -165,7 +165,7 @@ nouveau_bo_state_init(GLcontext *ctx) } void -nouveau_bo_state_destroy(GLcontext *ctx) +nouveau_bo_state_destroy(struct gl_context *ctx) { struct nouveau_bo_state *s = &to_nouveau_context(ctx)->bo; int i, j; diff --git a/src/mesa/drivers/dri/nouveau/nouveau_bo_state.h b/src/mesa/drivers/dri/nouveau/nouveau_bo_state.h index da0a3a5c6f..6119a8336e 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_bo_state.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_bo_state.h @@ -52,7 +52,7 @@ struct nouveau_bo_marker { }; struct nouveau_bo_context { - GLcontext *ctx; + struct gl_context *ctx; struct nouveau_bo_marker *marker; int allocated; @@ -84,13 +84,13 @@ void nouveau_bo_context_reset(struct nouveau_bo_context *bctx); GLboolean -nouveau_bo_state_emit(GLcontext *ctx); +nouveau_bo_state_emit(struct gl_context *ctx); void -nouveau_bo_state_init(GLcontext *ctx); +nouveau_bo_state_init(struct gl_context *ctx); void -nouveau_bo_state_destroy(GLcontext *ctx); +nouveau_bo_state_destroy(struct gl_context *ctx); #define __context_bctx(ctx, i) \ ({ \ diff --git a/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c b/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c index 5906ad6d39..ad6e5bd805 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c @@ -31,7 +31,7 @@ #include "main/bufferobj.h" static struct gl_buffer_object * -nouveau_bufferobj_new(GLcontext *ctx, GLuint buffer, GLenum target) +nouveau_bufferobj_new(struct gl_context *ctx, GLuint buffer, GLenum target) { struct nouveau_bufferobj *nbo; @@ -45,7 +45,7 @@ nouveau_bufferobj_new(GLcontext *ctx, GLuint buffer, GLenum target) } static void -nouveau_bufferobj_del(GLcontext *ctx, struct gl_buffer_object *obj) +nouveau_bufferobj_del(struct gl_context *ctx, struct gl_buffer_object *obj) { struct nouveau_bufferobj *nbo = to_nouveau_bufferobj(obj); @@ -54,7 +54,7 @@ nouveau_bufferobj_del(GLcontext *ctx, struct gl_buffer_object *obj) } static GLboolean -nouveau_bufferobj_data(GLcontext *ctx, GLenum target, GLsizeiptrARB size, +nouveau_bufferobj_data(struct gl_context *ctx, GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage, struct gl_buffer_object *obj) { @@ -80,7 +80,7 @@ nouveau_bufferobj_data(GLcontext *ctx, GLenum target, GLsizeiptrARB size, } static void -nouveau_bufferobj_subdata(GLcontext *ctx, GLenum target, GLintptrARB offset, +nouveau_bufferobj_subdata(struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data, struct gl_buffer_object *obj) { @@ -92,7 +92,7 @@ nouveau_bufferobj_subdata(GLcontext *ctx, GLenum target, GLintptrARB offset, } static void -nouveau_bufferobj_get_subdata(GLcontext *ctx, GLenum target, GLintptrARB offset, +nouveau_bufferobj_get_subdata(struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data, struct gl_buffer_object *obj) { @@ -104,7 +104,7 @@ nouveau_bufferobj_get_subdata(GLcontext *ctx, GLenum target, GLintptrARB offset, } static void * -nouveau_bufferobj_map(GLcontext *ctx, GLenum target, GLenum access, +nouveau_bufferobj_map(struct gl_context *ctx, GLenum target, GLenum access, struct gl_buffer_object *obj) { return ctx->Driver.MapBufferRange(ctx, target, 0, obj->Size, access, @@ -112,7 +112,7 @@ nouveau_bufferobj_map(GLcontext *ctx, GLenum target, GLenum access, } static void * -nouveau_bufferobj_map_range(GLcontext *ctx, GLenum target, GLintptr offset, +nouveau_bufferobj_map_range(struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLenum access, struct gl_buffer_object *obj) { @@ -142,7 +142,7 @@ nouveau_bufferobj_map_range(GLcontext *ctx, GLenum target, GLintptr offset, } static GLboolean -nouveau_bufferobj_unmap(GLcontext *ctx, GLenum target, struct gl_buffer_object *obj) +nouveau_bufferobj_unmap(struct gl_context *ctx, GLenum target, struct gl_buffer_object *obj) { struct nouveau_bufferobj *nbo = to_nouveau_bufferobj(obj); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_class.h b/src/mesa/drivers/dri/nouveau/nouveau_class.h index 5cb13acf7b..d41d431f79 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_class.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_class.h @@ -3191,6 +3191,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV17TCL_DMA_IN_MEMORY4 0x000001ac #define NV17TCL_DMA_IN_MEMORY5 0x000001b0 #define NV17TCL_COLOR_MASK_ENABLE 0x000002bc +#define NV17TCL_ZCLEAR_ENABLE 0x000003f8 +#define NV17TCL_ZCLEAR_VALUE 0x000003fc +#define NV17TCL_ZCLEAR_VALUE_DEPTH_SHIFT 8 +#define NV17TCL_ZCLEAR_VALUE_DEPTH_MASK 0xffffff00 +#define NV17TCL_ZCLEAR_VALUE_SEQUENCE_SHIFT 0 +#define NV17TCL_ZCLEAR_VALUE_SEQUENCE_MASK 0x000000ff #define NV17TCL_LMA_DEPTH_BUFFER_PITCH 0x00000d5c #define NV17TCL_LMA_DEPTH_BUFFER_OFFSET 0x00000d60 #define NV17TCL_LMA_DEPTH_FILL_VALUE 0x00000d68 diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c index fbe4edea58..d3e2c0df6c 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_context.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c @@ -69,7 +69,7 @@ static void nouveau_channel_flush_notify(struct nouveau_channel *chan) { struct nouveau_context *nctx = chan->user_private; - GLcontext *ctx = &nctx->base; + struct gl_context *ctx = &nctx->base; if (nctx->fallback < SWRAST) nouveau_bo_state_emit(ctx); @@ -77,13 +77,13 @@ nouveau_channel_flush_notify(struct nouveau_channel *chan) GLboolean nouveau_context_create(gl_api api, - const __GLcontextModes *visual, __DRIcontext *dri_ctx, + const struct gl_config *visual, __DRIcontext *dri_ctx, void *share_ctx) { __DRIscreen *dri_screen = dri_ctx->driScreenPriv; struct nouveau_screen *screen = dri_screen->private; struct nouveau_context *nctx; - GLcontext *ctx; + struct gl_context *ctx; ctx = screen->driver->context_create(screen, visual, share_ctx); if (!ctx) @@ -97,8 +97,8 @@ nouveau_context_create(gl_api api, } GLboolean -nouveau_context_init(GLcontext *ctx, struct nouveau_screen *screen, - const GLvisual *visual, GLcontext *share_ctx) +nouveau_context_init(struct gl_context *ctx, struct nouveau_screen *screen, + const struct gl_config *visual, struct gl_context *share_ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct dd_function_table functions; @@ -128,7 +128,7 @@ nouveau_context_init(GLcontext *ctx, struct nouveau_screen *screen, /* Allocate a hardware channel. */ ret = nouveau_channel_alloc(context_dev(ctx), 0xbeef0201, 0xbeef0202, - &nctx->hw.chan); + 512*1024, &nctx->hw.chan); if (ret) { nouveau_error("Error initializing the FIFO.\n"); return GL_FALSE; @@ -144,7 +144,7 @@ nouveau_context_init(GLcontext *ctx, struct nouveau_screen *screen, } void -nouveau_context_deinit(GLcontext *ctx) +nouveau_context_deinit(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -171,7 +171,7 @@ void nouveau_context_destroy(__DRIcontext *dri_ctx) { struct nouveau_context *nctx = dri_ctx->driverPrivate; - GLcontext *ctx = &nctx->base; + struct gl_context *ctx = &nctx->base; context_drv(ctx)->context_destroy(ctx); } @@ -179,7 +179,7 @@ nouveau_context_destroy(__DRIcontext *dri_ctx) void nouveau_update_renderbuffers(__DRIcontext *dri_ctx, __DRIdrawable *draw) { - GLcontext *ctx = dri_ctx->driverPrivate; + struct gl_context *ctx = dri_ctx->driverPrivate; __DRIscreen *screen = dri_ctx->driScreenPriv; struct gl_framebuffer *fb = draw->driverPrivate; struct nouveau_framebuffer *nfb = to_nouveau_framebuffer(fb); @@ -253,7 +253,7 @@ static void update_framebuffer(__DRIcontext *dri_ctx, __DRIdrawable *draw, int *stamp) { - GLcontext *ctx = dri_ctx->driverPrivate; + struct gl_context *ctx = dri_ctx->driverPrivate; struct gl_framebuffer *fb = draw->driverPrivate; *stamp = *draw->pStamp; @@ -273,7 +273,7 @@ nouveau_context_make_current(__DRIcontext *dri_ctx, __DRIdrawable *dri_draw, { if (dri_ctx) { struct nouveau_context *nctx = dri_ctx->driverPrivate; - GLcontext *ctx = &nctx->base; + struct gl_context *ctx = &nctx->base; /* Ask the X server for new renderbuffers. */ if (dri_draw->driverPrivate != ctx->WinSysDrawBuffer) @@ -307,7 +307,7 @@ nouveau_context_unbind(__DRIcontext *dri_ctx) } void -nouveau_fallback(GLcontext *ctx, enum nouveau_fallback mode) +nouveau_fallback(struct gl_context *ctx, enum nouveau_fallback mode) { struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -339,7 +339,7 @@ validate_framebuffer(__DRIcontext *dri_ctx, __DRIdrawable *draw, } void -nouveau_validate_framebuffer(GLcontext *ctx) +nouveau_validate_framebuffer(struct gl_context *ctx) { __DRIcontext *dri_ctx = to_nouveau_context(ctx)->dri_context; __DRIdrawable *dri_draw = dri_ctx->driDrawablePriv; @@ -353,8 +353,5 @@ nouveau_validate_framebuffer(GLcontext *ctx) validate_framebuffer(dri_ctx, dri_read, &dri_ctx->dri2.read_stamp); - if (nouveau_next_dirty_state(ctx) >= 0) { - nouveau_state_emit(ctx); - FIRE_RING(context_chan(ctx)); - } + nouveau_state_emit(ctx); } diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.h b/src/mesa/drivers/dri/nouveau/nouveau_context.h index 3dbe72900a..23a8725672 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_context.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_context.h @@ -57,7 +57,7 @@ struct nouveau_hw_state { }; struct nouveau_context { - GLcontext base; + struct gl_context base; __DRIcontext *dri_context; struct nouveau_screen *screen; @@ -67,6 +67,11 @@ struct nouveau_context { struct nouveau_hw_state hw; struct nouveau_bo_state bo; struct nouveau_render_state render; + + struct { + GLboolean clear_blocked; + int clear_seq; + } hierz; }; #define to_nouveau_context(ctx) ((struct nouveau_context *)(ctx)) @@ -90,15 +95,15 @@ struct nouveau_context { GLboolean nouveau_context_create(gl_api api, - const __GLcontextModes *visual, __DRIcontext *dri_ctx, + const struct gl_config *visual, __DRIcontext *dri_ctx, void *share_ctx); GLboolean -nouveau_context_init(GLcontext *ctx, struct nouveau_screen *screen, - const GLvisual *visual, GLcontext *share_ctx); +nouveau_context_init(struct gl_context *ctx, struct nouveau_screen *screen, + const struct gl_config *visual, struct gl_context *share_ctx); void -nouveau_context_deinit(GLcontext *ctx); +nouveau_context_deinit(struct gl_context *ctx); void nouveau_context_destroy(__DRIcontext *dri_ctx); @@ -114,10 +119,10 @@ GLboolean nouveau_context_unbind(__DRIcontext *dri_ctx); void -nouveau_fallback(GLcontext *ctx, enum nouveau_fallback mode); +nouveau_fallback(struct gl_context *ctx, enum nouveau_fallback mode); void -nouveau_validate_framebuffer(GLcontext *ctx); +nouveau_validate_framebuffer(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.c b/src/mesa/drivers/dri/nouveau/nouveau_driver.c index 6452fe218e..27e2892f71 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_driver.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.c @@ -32,7 +32,7 @@ #include "drivers/common/meta.h" static const GLubyte * -nouveau_get_string(GLcontext *ctx, GLenum name) +nouveau_get_string(struct gl_context *ctx, GLenum name) { static char buffer[128]; char hardware_name[32]; @@ -52,7 +52,7 @@ nouveau_get_string(GLcontext *ctx, GLenum name) } static void -nouveau_flush(GLcontext *ctx) +nouveau_flush(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -70,13 +70,13 @@ nouveau_flush(GLcontext *ctx) } static void -nouveau_finish(GLcontext *ctx) +nouveau_finish(struct gl_context *ctx) { nouveau_flush(ctx); } void -nouveau_clear(GLcontext *ctx, GLbitfield buffers) +nouveau_clear(struct gl_context *ctx, GLbitfield buffers) { struct gl_framebuffer *fb = ctx->DrawBuffer; int x, y, w, h; diff --git a/src/mesa/drivers/dri/nouveau/nouveau_driver.h b/src/mesa/drivers/dri/nouveau/nouveau_driver.h index 283f6eac2c..8036b18edc 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_driver.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_driver.h @@ -51,16 +51,16 @@ #define DRIVER_AUTHOR "Nouveau" struct nouveau_driver { - GLcontext *(*context_create)(struct nouveau_screen *screen, - const GLvisual *visual, - GLcontext *share_ctx); - void (*context_destroy)(GLcontext *ctx); + struct gl_context *(*context_create)(struct nouveau_screen *screen, + const struct gl_config *visual, + struct gl_context *share_ctx); + void (*context_destroy)(struct gl_context *ctx); - void (*surface_copy)(GLcontext *ctx, + void (*surface_copy)(struct gl_context *ctx, struct nouveau_surface *dst, struct nouveau_surface *src, int dx, int dy, int sx, int sy, int w, int h); - void (*surface_fill)(GLcontext *ctx, + void (*surface_fill)(struct gl_context *ctx, struct nouveau_surface *dst, unsigned mask, unsigned value, int dx, int dy, int w, int h); @@ -73,10 +73,10 @@ struct nouveau_driver { fprintf(stderr, "%s: " format, __func__, ## __VA_ARGS__) void -nouveau_clear(GLcontext *ctx, GLbitfield buffers); +nouveau_clear(struct gl_context *ctx, GLbitfield buffers); void -nouveau_span_functions_init(GLcontext *ctx); +nouveau_span_functions_init(struct gl_context *ctx); void nouveau_driver_functions_init(struct dd_function_table *functions); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_fbo.c b/src/mesa/drivers/dri/nouveau/nouveau_fbo.c index f0caf4c629..079b5d63e4 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_fbo.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_fbo.c @@ -86,7 +86,7 @@ set_renderbuffer_format(struct gl_renderbuffer *rb, GLenum internalFormat) } static GLboolean -nouveau_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +nouveau_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { @@ -115,7 +115,7 @@ nouveau_renderbuffer_del(struct gl_renderbuffer *rb) } static struct gl_renderbuffer * -nouveau_renderbuffer_new(GLcontext *ctx, GLuint name) +nouveau_renderbuffer_new(struct gl_context *ctx, GLuint name) { struct gl_renderbuffer *rb; @@ -133,7 +133,7 @@ nouveau_renderbuffer_new(GLcontext *ctx, GLuint name) } static GLboolean -nouveau_renderbuffer_dri_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +nouveau_renderbuffer_dri_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { @@ -166,7 +166,7 @@ nouveau_renderbuffer_dri_new(GLenum format, __DRIdrawable *drawable) } static struct gl_framebuffer * -nouveau_framebuffer_new(GLcontext *ctx, GLuint name) +nouveau_framebuffer_new(struct gl_context *ctx, GLuint name) { struct nouveau_framebuffer *nfb; @@ -180,7 +180,7 @@ nouveau_framebuffer_new(GLcontext *ctx, GLuint name) } struct gl_framebuffer * -nouveau_framebuffer_dri_new(const GLvisual *visual) +nouveau_framebuffer_dri_new(const struct gl_config *visual) { struct nouveau_framebuffer *nfb; @@ -195,7 +195,7 @@ nouveau_framebuffer_dri_new(const GLvisual *visual) } static void -nouveau_bind_framebuffer(GLcontext *ctx, GLenum target, +nouveau_bind_framebuffer(struct gl_context *ctx, GLenum target, struct gl_framebuffer *dfb, struct gl_framebuffer *rfb) { @@ -203,7 +203,7 @@ nouveau_bind_framebuffer(GLcontext *ctx, GLenum target, } static void -nouveau_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +nouveau_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb) { _mesa_framebuffer_renderbuffer(ctx, fb, attachment, rb); @@ -227,7 +227,7 @@ get_tex_format(struct gl_texture_image *ti) } static void -nouveau_render_texture(GLcontext *ctx, struct gl_framebuffer *fb, +nouveau_render_texture(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att) { struct gl_renderbuffer *rb = att->Renderbuffer; @@ -255,7 +255,7 @@ nouveau_render_texture(GLcontext *ctx, struct gl_framebuffer *fb, } static void -nouveau_finish_render_texture(GLcontext *ctx, +nouveau_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) { texture_dirty(att->Texture); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_fbo.h b/src/mesa/drivers/dri/nouveau/nouveau_fbo.h index 0fe6c08be5..b1d5d8da45 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_fbo.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_fbo.h @@ -29,8 +29,12 @@ struct nouveau_framebuffer { struct gl_framebuffer base; - struct nouveau_bo *lma_bo; GLboolean need_front; + + struct { + struct nouveau_bo *bo; + uint32_t clear_value; + } hierz; }; #define to_nouveau_framebuffer(x) ((struct nouveau_framebuffer *)(x)) @@ -41,7 +45,7 @@ struct nouveau_renderbuffer { #define to_nouveau_renderbuffer(x) ((struct nouveau_renderbuffer *)(x)) struct gl_framebuffer * -nouveau_framebuffer_dri_new(const GLvisual *visual); +nouveau_framebuffer_dri_new(const struct gl_config *visual); struct gl_renderbuffer * nouveau_renderbuffer_dri_new(GLenum format, __DRIdrawable *drawable); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_render.h b/src/mesa/drivers/dri/nouveau/nouveau_render.h index 923b79b2cf..81c6119fcc 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_render.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_render.h @@ -31,7 +31,7 @@ struct nouveau_array_state; -typedef void (*dispatch_t)(GLcontext *, unsigned int, int, unsigned int); +typedef void (*dispatch_t)(struct gl_context *, unsigned int, int, unsigned int); typedef unsigned (*extract_u_t)(struct nouveau_array_state *, int, int); typedef float (*extract_f_t)(struct nouveau_array_state *, int, int); @@ -40,7 +40,7 @@ struct nouveau_attr_info { int imm_method; int imm_fields; - void (*emit)(GLcontext *, struct nouveau_array_state *, const void *); + void (*emit)(struct gl_context *, struct nouveau_array_state *, const void *); }; struct nouveau_array_state { @@ -55,8 +55,8 @@ struct nouveau_array_state { extract_f_t extract_f; }; -#define RENDER_SCRATCH_COUNT 32 -#define RENDER_SCRATCH_SIZE 64*1024 +#define RENDER_SCRATCH_COUNT 2 +#define RENDER_SCRATCH_SIZE 2*1024*1024 struct nouveau_scratch_state { struct nouveau_bo *bo[RENDER_SCRATCH_COUNT]; diff --git a/src/mesa/drivers/dri/nouveau/nouveau_render_t.c b/src/mesa/drivers/dri/nouveau/nouveau_render_t.c index 7ccd7e6416..dd38c14aa7 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_render_t.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_render_t.c @@ -104,9 +104,9 @@ static void get_array_dispatch(struct nouveau_array_state *a, dispatch_t *dispatch) { if (!a->fields) { - auto void f(GLcontext *, unsigned int, int, unsigned int); + auto void f(struct gl_context *, unsigned int, int, unsigned int); - void f(GLcontext *ctx, unsigned int start, int delta, + void f(struct gl_context *ctx, unsigned int start, int delta, unsigned int n) { struct nouveau_channel *chan = context_chan(ctx); RENDER_LOCALS(ctx); @@ -117,9 +117,9 @@ get_array_dispatch(struct nouveau_array_state *a, dispatch_t *dispatch) *dispatch = f; } else if (a->type == GL_UNSIGNED_INT) { - auto void f(GLcontext *, unsigned int, int, unsigned int); + auto void f(struct gl_context *, unsigned int, int, unsigned int); - void f(GLcontext *ctx, unsigned int start, int delta, + void f(struct gl_context *ctx, unsigned int start, int delta, unsigned int n) { struct nouveau_channel *chan = context_chan(ctx); RENDER_LOCALS(ctx); @@ -130,9 +130,9 @@ get_array_dispatch(struct nouveau_array_state *a, dispatch_t *dispatch) *dispatch = f; } else { - auto void f(GLcontext *, unsigned int, int, unsigned int); + auto void f(struct gl_context *, unsigned int, int, unsigned int); - void f(GLcontext *ctx, unsigned int start, int delta, + void f(struct gl_context *ctx, unsigned int start, int delta, unsigned int n) { struct nouveau_channel *chan = context_chan(ctx); RENDER_LOCALS(ctx); @@ -208,7 +208,7 @@ get_array_extract(struct nouveau_array_state *a, * always be located right at the beginning of <bo>. */ static inline void * -get_scratch_vbo(GLcontext *ctx, unsigned size, struct nouveau_bo **bo, +get_scratch_vbo(struct gl_context *ctx, unsigned size, struct nouveau_bo **bo, unsigned *offset) { struct nouveau_scratch_state *scratch = &to_render_state(ctx)->scratch; @@ -253,7 +253,7 @@ get_scratch_vbo(GLcontext *ctx, unsigned size, struct nouveau_bo **bo, * Returns how many vertices you can draw using <n> pushbuf dwords. */ static inline unsigned -get_max_vertices(GLcontext *ctx, const struct _mesa_index_buffer *ib, +get_max_vertices(struct gl_context *ctx, const struct _mesa_index_buffer *ib, int n) { struct nouveau_render_state *render = to_render_state(ctx); @@ -290,7 +290,7 @@ get_max_vertices(GLcontext *ctx, const struct _mesa_index_buffer *ib, #include "nouveau_swtnl_t.c" static void -TAG(emit_material)(GLcontext *ctx, struct nouveau_array_state *a, +TAG(emit_material)(struct gl_context *ctx, struct nouveau_array_state *a, const void *v) { const int attr = a->attr - VERT_ATTRIB_GENERIC0; @@ -314,7 +314,7 @@ TAG(emit_material)(GLcontext *ctx, struct nouveau_array_state *a, } static void -TAG(render_prims)(GLcontext *ctx, const struct gl_client_array **arrays, +TAG(render_prims)(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, GLboolean index_bounds_valid, @@ -334,7 +334,7 @@ TAG(render_prims)(GLcontext *ctx, const struct gl_client_array **arrays, } void -TAG(render_init)(GLcontext *ctx) +TAG(render_init)(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); struct nouveau_scratch_state *scratch = &render->scratch; @@ -355,7 +355,7 @@ TAG(render_init)(GLcontext *ctx) } void -TAG(render_destroy)(GLcontext *ctx) +TAG(render_destroy)(struct gl_context *ctx) { TAG(swtnl_destroy)(ctx); } diff --git a/src/mesa/drivers/dri/nouveau/nouveau_screen.c b/src/mesa/drivers/dri/nouveau/nouveau_screen.c index 4330c8d947..a6e2186cf4 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_screen.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_screen.c @@ -153,7 +153,7 @@ nouveau_destroy_screen(__DRIscreen *dri_screen) static GLboolean nouveau_create_buffer(__DRIscreen *dri_screen, __DRIdrawable *drawable, - const __GLcontextModes *visual, + const struct gl_config *visual, GLboolean is_pixmap) { struct gl_renderbuffer *rb; diff --git a/src/mesa/drivers/dri/nouveau/nouveau_span.c b/src/mesa/drivers/dri/nouveau/nouveau_span.c index 1bfdecc6a2..761cc769ef 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_span.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_span.c @@ -131,7 +131,7 @@ renderbuffer_map_unmap(struct gl_renderbuffer *rb, GLboolean map) } static void -texture_unit_map_unmap(GLcontext *ctx, struct gl_texture_unit *u, GLboolean map) +texture_unit_map_unmap(struct gl_context *ctx, struct gl_texture_unit *u, GLboolean map) { if (!u->_ReallyEnabled) return; @@ -157,7 +157,7 @@ framebuffer_map_unmap(struct gl_framebuffer *fb, GLboolean map) } static void -span_map_unmap(GLcontext *ctx, GLboolean map) +span_map_unmap(struct gl_context *ctx, GLboolean map) { int i; @@ -171,21 +171,21 @@ span_map_unmap(GLcontext *ctx, GLboolean map) } static void -nouveau_span_start(GLcontext *ctx) +nouveau_span_start(struct gl_context *ctx) { nouveau_fallback(ctx, SWRAST); span_map_unmap(ctx, GL_TRUE); } static void -nouveau_span_finish(GLcontext *ctx) +nouveau_span_finish(struct gl_context *ctx) { span_map_unmap(ctx, GL_FALSE); nouveau_fallback(ctx, HWTNL); } void -nouveau_span_functions_init(GLcontext *ctx) +nouveau_span_functions_init(struct gl_context *ctx) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_state.c b/src/mesa/drivers/dri/nouveau/nouveau_state.c index 01bcbc4b3c..7b7ddd2f54 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_state.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_state.c @@ -33,45 +33,45 @@ #include "tnl/tnl.h" static void -nouveau_alpha_func(GLcontext *ctx, GLenum func, GLfloat ref) +nouveau_alpha_func(struct gl_context *ctx, GLenum func, GLfloat ref) { context_dirty(ctx, ALPHA_FUNC); } static void -nouveau_blend_color(GLcontext *ctx, const GLfloat color[4]) +nouveau_blend_color(struct gl_context *ctx, const GLfloat color[4]) { context_dirty(ctx, BLEND_COLOR); } static void -nouveau_blend_equation_separate(GLcontext *ctx, GLenum modeRGB, GLenum modeA) +nouveau_blend_equation_separate(struct gl_context *ctx, GLenum modeRGB, GLenum modeA) { context_dirty(ctx, BLEND_EQUATION); } static void -nouveau_blend_func_separate(GLcontext *ctx, GLenum sfactorRGB, +nouveau_blend_func_separate(struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA) { context_dirty(ctx, BLEND_FUNC); } static void -nouveau_clip_plane(GLcontext *ctx, GLenum plane, const GLfloat *equation) +nouveau_clip_plane(struct gl_context *ctx, GLenum plane, const GLfloat *equation) { context_dirty_i(ctx, CLIP_PLANE, plane - GL_CLIP_PLANE0); } static void -nouveau_color_mask(GLcontext *ctx, GLboolean rmask, GLboolean gmask, +nouveau_color_mask(struct gl_context *ctx, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask) { context_dirty(ctx, COLOR_MASK); } static void -nouveau_color_material(GLcontext *ctx, GLenum face, GLenum mode) +nouveau_color_material(struct gl_context *ctx, GLenum face, GLenum mode) { context_dirty(ctx, COLOR_MATERIAL); context_dirty(ctx, MATERIAL_FRONT_AMBIENT); @@ -83,44 +83,44 @@ nouveau_color_material(GLcontext *ctx, GLenum face, GLenum mode) } static void -nouveau_cull_face(GLcontext *ctx, GLenum mode) +nouveau_cull_face(struct gl_context *ctx, GLenum mode) { context_dirty(ctx, CULL_FACE); } static void -nouveau_front_face(GLcontext *ctx, GLenum mode) +nouveau_front_face(struct gl_context *ctx, GLenum mode) { context_dirty(ctx, FRONT_FACE); } static void -nouveau_depth_func(GLcontext *ctx, GLenum func) +nouveau_depth_func(struct gl_context *ctx, GLenum func) { context_dirty(ctx, DEPTH); } static void -nouveau_depth_mask(GLcontext *ctx, GLboolean flag) +nouveau_depth_mask(struct gl_context *ctx, GLboolean flag) { context_dirty(ctx, DEPTH); } static void -nouveau_depth_range(GLcontext *ctx, GLclampd nearval, GLclampd farval) +nouveau_depth_range(struct gl_context *ctx, GLclampd nearval, GLclampd farval) { context_dirty(ctx, VIEWPORT); } static void -nouveau_draw_buffers(GLcontext *ctx, GLsizei n, const GLenum *buffers) +nouveau_draw_buffers(struct gl_context *ctx, GLsizei n, const GLenum *buffers) { nouveau_validate_framebuffer(ctx); context_dirty(ctx, FRAMEBUFFER); } static void -nouveau_enable(GLcontext *ctx, GLenum cap, GLboolean state) +nouveau_enable(struct gl_context *ctx, GLenum cap, GLboolean state) { int i; @@ -242,13 +242,13 @@ nouveau_enable(GLcontext *ctx, GLenum cap, GLboolean state) } static void -nouveau_fog(GLcontext *ctx, GLenum pname, const GLfloat *params) +nouveau_fog(struct gl_context *ctx, GLenum pname, const GLfloat *params) { context_dirty(ctx, FOG); } static void -nouveau_light(GLcontext *ctx, GLenum light, GLenum pname, const GLfloat *params) +nouveau_light(struct gl_context *ctx, GLenum light, GLenum pname, const GLfloat *params) { switch (pname) { case GL_AMBIENT: @@ -276,100 +276,100 @@ nouveau_light(GLcontext *ctx, GLenum light, GLenum pname, const GLfloat *params) } static void -nouveau_light_model(GLcontext *ctx, GLenum pname, const GLfloat *params) +nouveau_light_model(struct gl_context *ctx, GLenum pname, const GLfloat *params) { context_dirty(ctx, LIGHT_MODEL); context_dirty(ctx, MODELVIEW); } static void -nouveau_line_stipple(GLcontext *ctx, GLint factor, GLushort pattern ) +nouveau_line_stipple(struct gl_context *ctx, GLint factor, GLushort pattern ) { context_dirty(ctx, LINE_STIPPLE); } static void -nouveau_line_width(GLcontext *ctx, GLfloat width) +nouveau_line_width(struct gl_context *ctx, GLfloat width) { context_dirty(ctx, LINE_MODE); } static void -nouveau_logic_opcode(GLcontext *ctx, GLenum opcode) +nouveau_logic_opcode(struct gl_context *ctx, GLenum opcode) { context_dirty(ctx, LOGIC_OPCODE); } static void -nouveau_point_parameter(GLcontext *ctx, GLenum pname, const GLfloat *params) +nouveau_point_parameter(struct gl_context *ctx, GLenum pname, const GLfloat *params) { context_dirty(ctx, POINT_PARAMETER); } static void -nouveau_point_size(GLcontext *ctx, GLfloat size) +nouveau_point_size(struct gl_context *ctx, GLfloat size) { context_dirty(ctx, POINT_MODE); } static void -nouveau_polygon_mode(GLcontext *ctx, GLenum face, GLenum mode) +nouveau_polygon_mode(struct gl_context *ctx, GLenum face, GLenum mode) { context_dirty(ctx, POLYGON_MODE); } static void -nouveau_polygon_offset(GLcontext *ctx, GLfloat factor, GLfloat units) +nouveau_polygon_offset(struct gl_context *ctx, GLfloat factor, GLfloat units) { context_dirty(ctx, POLYGON_OFFSET); } static void -nouveau_polygon_stipple(GLcontext *ctx, const GLubyte *mask) +nouveau_polygon_stipple(struct gl_context *ctx, const GLubyte *mask) { context_dirty(ctx, POLYGON_STIPPLE); } static void -nouveau_render_mode(GLcontext *ctx, GLenum mode) +nouveau_render_mode(struct gl_context *ctx, GLenum mode) { context_dirty(ctx, RENDER_MODE); } static void -nouveau_scissor(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) +nouveau_scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { context_dirty(ctx, SCISSOR); } static void -nouveau_shade_model(GLcontext *ctx, GLenum mode) +nouveau_shade_model(struct gl_context *ctx, GLenum mode) { context_dirty(ctx, SHADE_MODEL); } static void -nouveau_stencil_func_separate(GLcontext *ctx, GLenum face, GLenum func, +nouveau_stencil_func_separate(struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask) { context_dirty(ctx, STENCIL_FUNC); } static void -nouveau_stencil_mask_separate(GLcontext *ctx, GLenum face, GLuint mask) +nouveau_stencil_mask_separate(struct gl_context *ctx, GLenum face, GLuint mask) { context_dirty(ctx, STENCIL_MASK); } static void -nouveau_stencil_op_separate(GLcontext *ctx, GLenum face, GLenum fail, +nouveau_stencil_op_separate(struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { context_dirty(ctx, STENCIL_OP); } static void -nouveau_tex_gen(GLcontext *ctx, GLenum coord, GLenum pname, +nouveau_tex_gen(struct gl_context *ctx, GLenum coord, GLenum pname, const GLfloat *params) { switch (pname) { @@ -384,7 +384,7 @@ nouveau_tex_gen(GLcontext *ctx, GLenum coord, GLenum pname, } static void -nouveau_tex_env(GLcontext *ctx, GLenum target, GLenum pname, +nouveau_tex_env(struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param) { switch (target) { @@ -398,7 +398,7 @@ nouveau_tex_env(GLcontext *ctx, GLenum target, GLenum pname, } static void -nouveau_tex_parameter(GLcontext *ctx, GLenum target, +nouveau_tex_parameter(struct gl_context *ctx, GLenum target, struct gl_texture_object *t, GLenum pname, const GLfloat *params) { @@ -424,18 +424,18 @@ nouveau_tex_parameter(GLcontext *ctx, GLenum target, } static void -nouveau_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) +nouveau_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { context_dirty(ctx, VIEWPORT); } void -nouveau_emit_nothing(GLcontext *ctx, int emit) +nouveau_emit_nothing(struct gl_context *ctx, int emit) { } int -nouveau_next_dirty_state(GLcontext *ctx) +nouveau_next_dirty_state(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); int i = BITSET_FFS(nctx->dirty) - 1; @@ -447,7 +447,7 @@ nouveau_next_dirty_state(GLcontext *ctx) } void -nouveau_state_emit(GLcontext *ctx) +nouveau_state_emit(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); const struct nouveau_driver *drv = context_drv(ctx); @@ -462,7 +462,7 @@ nouveau_state_emit(GLcontext *ctx) } static void -nouveau_update_state(GLcontext *ctx, GLbitfield new_state) +nouveau_update_state(struct gl_context *ctx, GLbitfield new_state) { int i; @@ -496,7 +496,7 @@ nouveau_update_state(GLcontext *ctx, GLbitfield new_state) } void -nouveau_state_init(GLcontext *ctx) +nouveau_state_init(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_state.h b/src/mesa/drivers/dri/nouveau/nouveau_state.h index 38ac9753c8..cc61cf1a52 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_state.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_state.h @@ -105,18 +105,18 @@ enum { MAX_NOUVEAU_STATE = NUM_NOUVEAU_STATE + 16, }; -typedef void (*nouveau_state_func)(GLcontext *ctx, int emit); +typedef void (*nouveau_state_func)(struct gl_context *ctx, int emit); void -nouveau_state_init(GLcontext *ctx); +nouveau_state_init(struct gl_context *ctx); void -nouveau_emit_nothing(GLcontext *ctx, int emit); +nouveau_emit_nothing(struct gl_context *ctx, int emit); int -nouveau_next_dirty_state(GLcontext *ctx); +nouveau_next_dirty_state(struct gl_context *ctx); void -nouveau_state_emit(GLcontext *ctx); +nouveau_state_emit(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/nouveau/nouveau_surface.c b/src/mesa/drivers/dri/nouveau/nouveau_surface.c index 33393970a0..e6a712095c 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_surface.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_surface.c @@ -29,13 +29,13 @@ #include "nouveau_util.h" void -nouveau_surface_alloc(GLcontext *ctx, struct nouveau_surface *s, +nouveau_surface_alloc(struct gl_context *ctx, struct nouveau_surface *s, enum nouveau_surface_layout layout, unsigned flags, unsigned format, unsigned width, unsigned height) { - unsigned tile_mode, cpp = _mesa_get_format_bytes(format); - int ret; + unsigned tile_mode = 0, tile_flags = 0; + int ret, cpp = _mesa_get_format_bytes(format); nouveau_bo_ref(NULL, &s->bo); @@ -51,13 +51,21 @@ nouveau_surface_alloc(GLcontext *ctx, struct nouveau_surface *s, if (layout == TILED) { s->pitch = align(s->pitch, 256); tile_mode = s->pitch; + + if (cpp == 4) + tile_flags = NOUVEAU_BO_TILE_32BPP; + else if (cpp == 2) + tile_flags = NOUVEAU_BO_TILE_16BPP; + + if (_mesa_get_format_bits(format, GL_DEPTH_BITS)) + tile_flags |= NOUVEAU_BO_TILE_ZETA; + } else { s->pitch = align(s->pitch, 64); - tile_mode = 0; } ret = nouveau_bo_new_tile(context_dev(ctx), flags, 0, s->pitch * height, - tile_mode, 0, &s->bo); + tile_mode, tile_flags, &s->bo); assert(!ret); } diff --git a/src/mesa/drivers/dri/nouveau/nouveau_surface.h b/src/mesa/drivers/dri/nouveau/nouveau_surface.h index ebdc89afb4..8915ee4ca0 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_surface.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_surface.h @@ -46,7 +46,7 @@ struct nouveau_surface { }; void -nouveau_surface_alloc(GLcontext *ctx, struct nouveau_surface *s, +nouveau_surface_alloc(struct gl_context *ctx, struct nouveau_surface *s, enum nouveau_surface_layout layout, unsigned flags, unsigned format, unsigned width, unsigned height); diff --git a/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c b/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c index a1609a0dd5..b3588e8fd3 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c @@ -99,7 +99,7 @@ static struct swtnl_attr_info { }; static void -swtnl_choose_attrs(GLcontext *ctx) +swtnl_choose_attrs(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -153,7 +153,7 @@ swtnl_choose_attrs(GLcontext *ctx) } static void -swtnl_alloc_vertices(GLcontext *ctx) +swtnl_alloc_vertices(struct gl_context *ctx) { struct nouveau_swtnl_state *swtnl = &to_render_state(ctx)->swtnl; @@ -164,7 +164,7 @@ swtnl_alloc_vertices(GLcontext *ctx) } static void -swtnl_bind_vertices(GLcontext *ctx) +swtnl_bind_vertices(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); struct nouveau_swtnl_state *swtnl = &render->swtnl; @@ -182,7 +182,7 @@ swtnl_bind_vertices(GLcontext *ctx) } static void -swtnl_unbind_vertices(GLcontext *ctx) +swtnl_unbind_vertices(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); int i; @@ -200,7 +200,7 @@ swtnl_unbind_vertices(GLcontext *ctx) } static void -swtnl_flush_vertices(GLcontext *ctx) +swtnl_flush_vertices(struct gl_context *ctx) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_swtnl_state *swtnl = &to_render_state(ctx)->swtnl; @@ -232,25 +232,25 @@ swtnl_flush_vertices(GLcontext *ctx) /* TnL renderer entry points */ static void -swtnl_start(GLcontext *ctx) +swtnl_start(struct gl_context *ctx) { swtnl_choose_attrs(ctx); } static void -swtnl_finish(GLcontext *ctx) +swtnl_finish(struct gl_context *ctx) { swtnl_flush_vertices(ctx); swtnl_unbind_vertices(ctx); } static void -swtnl_primitive(GLcontext *ctx, GLenum mode) +swtnl_primitive(struct gl_context *ctx, GLenum mode) { } static void -swtnl_reset_stipple(GLcontext *ctx) +swtnl_reset_stipple(struct gl_context *ctx) { } @@ -273,7 +273,7 @@ swtnl_reset_stipple(GLcontext *ctx) } while (0) static void -swtnl_points(GLcontext *ctx, GLuint first, GLuint last) +swtnl_points(struct gl_context *ctx, GLuint first, GLuint last) { int i, count; @@ -289,7 +289,7 @@ swtnl_points(GLcontext *ctx, GLuint first, GLuint last) } static void -swtnl_line(GLcontext *ctx, GLuint v1, GLuint v2) +swtnl_line(struct gl_context *ctx, GLuint v1, GLuint v2) { BEGIN_PRIMITIVE(GL_LINES, 2); OUT_VERTEX(v1); @@ -297,7 +297,7 @@ swtnl_line(GLcontext *ctx, GLuint v1, GLuint v2) } static void -swtnl_triangle(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3) +swtnl_triangle(struct gl_context *ctx, GLuint v1, GLuint v2, GLuint v3) { BEGIN_PRIMITIVE(GL_TRIANGLES, 3); OUT_VERTEX(v1); @@ -306,7 +306,7 @@ swtnl_triangle(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3) } static void -swtnl_quad(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) +swtnl_quad(struct gl_context *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) { BEGIN_PRIMITIVE(GL_QUADS, 4); OUT_VERTEX(v1); @@ -317,7 +317,7 @@ swtnl_quad(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) /* TnL initialization. */ static void -TAG(swtnl_init)(GLcontext *ctx) +TAG(swtnl_init)(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -348,7 +348,7 @@ TAG(swtnl_init)(GLcontext *ctx) } static void -TAG(swtnl_destroy)(GLcontext *ctx) +TAG(swtnl_destroy)(struct gl_context *ctx) { nouveau_bo_ref(NULL, &to_render_state(ctx)->swtnl.vbo); } diff --git a/src/mesa/drivers/dri/nouveau/nouveau_texture.c b/src/mesa/drivers/dri/nouveau/nouveau_texture.c index 14c7b5f64b..cd063702af 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_texture.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_texture.c @@ -41,7 +41,7 @@ #include "drivers/common/meta.h" static struct gl_texture_object * -nouveau_texture_new(GLcontext *ctx, GLuint name, GLenum target) +nouveau_texture_new(struct gl_context *ctx, GLuint name, GLenum target) { struct nouveau_texture *nt = CALLOC_STRUCT(nouveau_texture); @@ -51,7 +51,7 @@ nouveau_texture_new(GLcontext *ctx, GLuint name, GLenum target) } static void -nouveau_texture_free(GLcontext *ctx, struct gl_texture_object *t) +nouveau_texture_free(struct gl_context *ctx, struct gl_texture_object *t) { struct nouveau_texture *nt = to_nouveau_texture(t); int i; @@ -63,7 +63,7 @@ nouveau_texture_free(GLcontext *ctx, struct gl_texture_object *t) } static struct gl_texture_image * -nouveau_teximage_new(GLcontext *ctx) +nouveau_teximage_new(struct gl_context *ctx) { struct nouveau_teximage *nti = CALLOC_STRUCT(nouveau_teximage); @@ -71,7 +71,7 @@ nouveau_teximage_new(GLcontext *ctx) } static void -nouveau_teximage_free(GLcontext *ctx, struct gl_texture_image *ti) +nouveau_teximage_free(struct gl_context *ctx, struct gl_texture_image *ti) { struct nouveau_teximage *nti = to_nouveau_teximage(ti); @@ -79,7 +79,7 @@ nouveau_teximage_free(GLcontext *ctx, struct gl_texture_image *ti) } static void -nouveau_teximage_map(GLcontext *ctx, struct gl_texture_image *ti) +nouveau_teximage_map(struct gl_context *ctx, struct gl_texture_image *ti) { struct nouveau_surface *s = &to_nouveau_teximage(ti)->surface; int ret; @@ -93,7 +93,7 @@ nouveau_teximage_map(GLcontext *ctx, struct gl_texture_image *ti) } static void -nouveau_teximage_unmap(GLcontext *ctx, struct gl_texture_image *ti) +nouveau_teximage_unmap(struct gl_context *ctx, struct gl_texture_image *ti) { struct nouveau_surface *s = &to_nouveau_teximage(ti)->surface; @@ -103,7 +103,7 @@ nouveau_teximage_unmap(GLcontext *ctx, struct gl_texture_image *ti) } static gl_format -nouveau_choose_tex_format(GLcontext *ctx, GLint internalFormat, +nouveau_choose_tex_format(struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType) { switch (internalFormat) { @@ -195,7 +195,7 @@ teximage_fits(struct gl_texture_object *t, int level) } static GLboolean -validate_teximage(GLcontext *ctx, struct gl_texture_object *t, +validate_teximage(struct gl_context *ctx, struct gl_texture_object *t, int level, int x, int y, int z, int width, int height, int depth) { @@ -231,7 +231,7 @@ get_last_level(struct gl_texture_object *t) } static void -relayout_texture(GLcontext *ctx, struct gl_texture_object *t) +relayout_texture(struct gl_context *ctx, struct gl_texture_object *t) { struct gl_texture_image *base = t->Image[0][t->BaseLevel]; @@ -284,7 +284,7 @@ relayout_texture(GLcontext *ctx, struct gl_texture_object *t) } GLboolean -nouveau_texture_validate(GLcontext *ctx, struct gl_texture_object *t) +nouveau_texture_validate(struct gl_context *ctx, struct gl_texture_object *t) { struct nouveau_texture *nt = to_nouveau_texture(t); int i, last = get_last_level(t); @@ -311,7 +311,7 @@ nouveau_texture_validate(GLcontext *ctx, struct gl_texture_object *t) } void -nouveau_texture_reallocate(GLcontext *ctx, struct gl_texture_object *t) +nouveau_texture_reallocate(struct gl_context *ctx, struct gl_texture_object *t) { if (!teximage_fits(t, t->BaseLevel) || !teximage_fits(t, get_last_level(t))) { @@ -335,7 +335,7 @@ get_teximage_placement(struct gl_texture_image *ti) } static void -nouveau_teximage(GLcontext *ctx, GLint dims, GLenum target, GLint level, +nouveau_teximage(struct gl_context *ctx, GLint dims, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -386,7 +386,7 @@ nouveau_teximage(GLcontext *ctx, GLint dims, GLenum target, GLint level, } static void -nouveau_teximage_1d(GLcontext *ctx, GLenum target, GLint level, +nouveau_teximage_1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -400,7 +400,7 @@ nouveau_teximage_1d(GLcontext *ctx, GLenum target, GLint level, } static void -nouveau_teximage_2d(GLcontext *ctx, GLenum target, GLint level, +nouveau_teximage_2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -414,7 +414,7 @@ nouveau_teximage_2d(GLcontext *ctx, GLenum target, GLint level, } static void -nouveau_teximage_3d(GLcontext *ctx, GLenum target, GLint level, +nouveau_teximage_3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -428,7 +428,7 @@ nouveau_teximage_3d(GLcontext *ctx, GLenum target, GLint level, } static void -nouveau_texsubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level, +nouveau_texsubimage(struct gl_context *ctx, GLint dims, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, GLenum format, GLenum type, const void *pixels, @@ -462,7 +462,7 @@ nouveau_texsubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level, } static void -nouveau_texsubimage_3d(GLcontext *ctx, GLenum target, GLint level, +nouveau_texsubimage_3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, GLenum format, GLenum type, const void *pixels, @@ -476,7 +476,7 @@ nouveau_texsubimage_3d(GLcontext *ctx, GLenum target, GLint level, } static void -nouveau_texsubimage_2d(GLcontext *ctx, GLenum target, GLint level, +nouveau_texsubimage_2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint width, GLint height, GLenum format, GLenum type, const void *pixels, @@ -490,7 +490,7 @@ nouveau_texsubimage_2d(GLcontext *ctx, GLenum target, GLint level, } static void -nouveau_texsubimage_1d(GLcontext *ctx, GLenum target, GLint level, +nouveau_texsubimage_1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint width, GLenum format, GLenum type, const void *pixels, const struct gl_pixelstore_attrib *packing, @@ -503,7 +503,7 @@ nouveau_texsubimage_1d(GLcontext *ctx, GLenum target, GLint level, } static void -nouveau_get_teximage(GLcontext *ctx, GLenum target, GLint level, +nouveau_get_teximage(struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *t, struct gl_texture_image *ti) @@ -515,7 +515,7 @@ nouveau_get_teximage(GLcontext *ctx, GLenum target, GLint level, } static void -nouveau_bind_texture(GLcontext *ctx, GLenum target, +nouveau_bind_texture(struct gl_context *ctx, GLenum target, struct gl_texture_object *t) { context_dirty_i(ctx, TEX_OBJ, ctx->Texture.CurrentUnit); @@ -541,7 +541,7 @@ nouveau_set_texbuffer(__DRIcontext *dri_ctx, __DRIdrawable *draw) { struct nouveau_context *nctx = dri_ctx->driverPrivate; - GLcontext *ctx = &nctx->base; + struct gl_context *ctx = &nctx->base; struct gl_framebuffer *fb = draw->driverPrivate; struct gl_renderbuffer *rb = fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer; @@ -574,7 +574,7 @@ nouveau_set_texbuffer(__DRIcontext *dri_ctx, } static void -nouveau_texture_map(GLcontext *ctx, struct gl_texture_object *t) +nouveau_texture_map(struct gl_context *ctx, struct gl_texture_object *t) { int i; @@ -585,7 +585,7 @@ nouveau_texture_map(GLcontext *ctx, struct gl_texture_object *t) } static void -nouveau_texture_unmap(GLcontext *ctx, struct gl_texture_object *t) +nouveau_texture_unmap(struct gl_context *ctx, struct gl_texture_object *t) { int i; @@ -596,7 +596,7 @@ nouveau_texture_unmap(GLcontext *ctx, struct gl_texture_object *t) } static void -store_mipmap(GLcontext *ctx, GLenum target, int first, int last, +store_mipmap(struct gl_context *ctx, GLenum target, int first, int last, struct gl_texture_object *t) { struct gl_pixelstore_attrib packing = { @@ -624,7 +624,7 @@ store_mipmap(GLcontext *ctx, GLenum target, int first, int last, } static void -nouveau_generate_mipmap(GLcontext *ctx, GLenum target, +nouveau_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *t) { if (_mesa_meta_check_generate_mipmap_fallback(ctx, target, t)) { diff --git a/src/mesa/drivers/dri/nouveau/nouveau_texture.h b/src/mesa/drivers/dri/nouveau/nouveau_texture.h index 251f537bba..fc170215f3 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_texture.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_texture.h @@ -49,9 +49,9 @@ nouveau_set_texbuffer(__DRIcontext *dri_ctx, __DRIdrawable *draw); GLboolean -nouveau_texture_validate(GLcontext *ctx, struct gl_texture_object *t); +nouveau_texture_validate(struct gl_context *ctx, struct gl_texture_object *t); void -nouveau_texture_reallocate(GLcontext *ctx, struct gl_texture_object *t); +nouveau_texture_reallocate(struct gl_context *ctx, struct gl_texture_object *t); #endif diff --git a/src/mesa/drivers/dri/nouveau/nouveau_util.h b/src/mesa/drivers/dri/nouveau/nouveau_util.h index 584cb80ef6..8df8867d14 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_util.h +++ b/src/mesa/drivers/dri/nouveau/nouveau_util.h @@ -130,7 +130,7 @@ get_scissors(struct gl_framebuffer *fb, int *x, int *y, int *w, int *h) } static inline void -get_viewport_scale(GLcontext *ctx, float a[16]) +get_viewport_scale(struct gl_context *ctx, float a[16]) { struct gl_viewport_attrib *vp = &ctx->Viewport; struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -147,7 +147,7 @@ get_viewport_scale(GLcontext *ctx, float a[16]) } static inline void -get_viewport_translate(GLcontext *ctx, float a[4]) +get_viewport_translate(struct gl_context *ctx, float a[4]) { struct gl_viewport_attrib *vp = &ctx->Viewport; struct gl_framebuffer *fb = ctx->DrawBuffer; diff --git a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c index e4415cbedb..394f3c9b50 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c @@ -32,7 +32,7 @@ /* Arbitrary pushbuf length we can assume we can get with a single * WAIT_RING. */ -#define PUSHBUF_DWORDS 2048 +#define PUSHBUF_DWORDS 65536 /* Functions to set up struct nouveau_array_state from something like * a GL array or index buffer. */ @@ -86,7 +86,7 @@ vbo_deinit_array(struct nouveau_array_state *a) } static int -get_array_stride(GLcontext *ctx, const struct gl_client_array *a) +get_array_stride(struct gl_context *ctx, const struct gl_client_array *a) { struct nouveau_render_state *render = to_render_state(ctx); @@ -98,7 +98,7 @@ get_array_stride(GLcontext *ctx, const struct gl_client_array *a) } static void -vbo_init_arrays(GLcontext *ctx, const struct _mesa_index_buffer *ib, +vbo_init_arrays(struct gl_context *ctx, const struct _mesa_index_buffer *ib, const struct gl_client_array **arrays) { struct nouveau_render_state *render = to_render_state(ctx); @@ -124,7 +124,7 @@ vbo_init_arrays(GLcontext *ctx, const struct _mesa_index_buffer *ib, } static void -vbo_deinit_arrays(GLcontext *ctx, const struct _mesa_index_buffer *ib, +vbo_deinit_arrays(struct gl_context *ctx, const struct _mesa_index_buffer *ib, const struct gl_client_array **arrays) { struct nouveau_render_state *render = to_render_state(ctx); @@ -149,7 +149,7 @@ vbo_deinit_arrays(GLcontext *ctx, const struct _mesa_index_buffer *ib, /* Make some rendering decisions from the GL context. */ static void -vbo_choose_render_mode(GLcontext *ctx, const struct gl_client_array **arrays) +vbo_choose_render_mode(struct gl_context *ctx, const struct gl_client_array **arrays) { struct nouveau_render_state *render = to_render_state(ctx); int i; @@ -172,7 +172,7 @@ vbo_choose_render_mode(GLcontext *ctx, const struct gl_client_array **arrays) } static void -vbo_emit_attr(GLcontext *ctx, const struct gl_client_array **arrays, int attr) +vbo_emit_attr(struct gl_context *ctx, const struct gl_client_array **arrays, int attr) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_render_state *render = to_render_state(ctx); @@ -209,7 +209,7 @@ vbo_emit_attr(GLcontext *ctx, const struct gl_client_array **arrays, int attr) #define MAT(a) (VERT_ATTRIB_GENERIC0 + MAT_ATTRIB_##a) static void -vbo_choose_attrs(GLcontext *ctx, const struct gl_client_array **arrays) +vbo_choose_attrs(struct gl_context *ctx, const struct gl_client_array **arrays) { struct nouveau_render_state *render = to_render_state(ctx); int i; @@ -251,7 +251,7 @@ vbo_choose_attrs(GLcontext *ctx, const struct gl_client_array **arrays) } static int -get_max_client_stride(GLcontext *ctx, const struct gl_client_array **arrays) +get_max_client_stride(struct gl_context *ctx, const struct gl_client_array **arrays) { struct nouveau_render_state *render = to_render_state(ctx); int i, s = 0; @@ -271,14 +271,14 @@ get_max_client_stride(GLcontext *ctx, const struct gl_client_array **arrays) } static void -TAG(vbo_render_prims)(GLcontext *ctx, const struct gl_client_array **arrays, +TAG(vbo_render_prims)(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, GLboolean index_bounds_valid, GLuint min_index, GLuint max_index); static GLboolean -vbo_maybe_split(GLcontext *ctx, const struct gl_client_array **arrays, +vbo_maybe_split(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, GLuint min_index, GLuint max_index) @@ -316,7 +316,7 @@ vbo_maybe_split(GLcontext *ctx, const struct gl_client_array **arrays, /* VBO rendering path. */ static void -vbo_bind_vertices(GLcontext *ctx, const struct gl_client_array **arrays, +vbo_bind_vertices(struct gl_context *ctx, const struct gl_client_array **arrays, GLint basevertex, GLuint min_index, GLuint max_index) { struct nouveau_render_state *render = to_render_state(ctx); @@ -354,7 +354,7 @@ vbo_bind_vertices(GLcontext *ctx, const struct gl_client_array **arrays, } static void -vbo_draw_vbo(GLcontext *ctx, const struct gl_client_array **arrays, +vbo_draw_vbo(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, GLuint min_index, GLuint max_index) @@ -396,7 +396,7 @@ extract_id(struct nouveau_array_state *a, int i, int j) } static void -vbo_draw_imm(GLcontext *ctx, const struct gl_client_array **arrays, +vbo_draw_imm(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, GLuint min_index, GLuint max_index) @@ -433,7 +433,7 @@ vbo_draw_imm(GLcontext *ctx, const struct gl_client_array **arrays, /* draw_prims entry point when we're doing hw-tnl. */ static void -TAG(vbo_render_prims)(GLcontext *ctx, const struct gl_client_array **arrays, +TAG(vbo_render_prims)(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, GLboolean index_bounds_valid, diff --git a/src/mesa/drivers/dri/nouveau/nv04_context.c b/src/mesa/drivers/dri/nouveau/nv04_context.c index 94422f559d..8683343b39 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_context.c +++ b/src/mesa/drivers/dri/nouveau/nv04_context.c @@ -46,7 +46,7 @@ texunit_needs_combiners(struct gl_texture_unit *u) } struct nouveau_grobj * -nv04_context_engine(GLcontext *ctx) +nv04_context_engine(struct gl_context *ctx) { struct nv04_context *nctx = to_nv04_context(ctx); struct nouveau_hw_state *hw = &to_nouveau_context(ctx)->hw; @@ -90,7 +90,7 @@ static void nv04_channel_flush_notify(struct nouveau_channel *chan) { struct nouveau_context *nctx = chan->user_private; - GLcontext *ctx = &nctx->base; + struct gl_context *ctx = &nctx->base; if (nctx->fallback < SWRAST) { nouveau_bo_state_emit(ctx); @@ -106,7 +106,7 @@ nv04_channel_flush_notify(struct nouveau_channel *chan) } static void -nv04_hwctx_init(GLcontext *ctx) +nv04_hwctx_init(struct gl_context *ctx) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_hw_state *hw = &to_nouveau_context(ctx)->hw; @@ -136,7 +136,7 @@ nv04_hwctx_init(GLcontext *ctx) } static void -init_dummy_texture(GLcontext *ctx) +init_dummy_texture(struct gl_context *ctx) { struct nouveau_surface *s = &to_nv04_context(ctx)->dummy_texture; @@ -150,7 +150,7 @@ init_dummy_texture(GLcontext *ctx) } static void -nv04_context_destroy(GLcontext *ctx) +nv04_context_destroy(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -166,13 +166,13 @@ nv04_context_destroy(GLcontext *ctx) FREE(ctx); } -static GLcontext * -nv04_context_create(struct nouveau_screen *screen, const GLvisual *visual, - GLcontext *share_ctx) +static struct gl_context * +nv04_context_create(struct nouveau_screen *screen, const struct gl_config *visual, + struct gl_context *share_ctx) { struct nv04_context *nctx; struct nouveau_hw_state *hw; - GLcontext *ctx; + struct gl_context *ctx; int ret; nctx = CALLOC_STRUCT(nv04_context); diff --git a/src/mesa/drivers/dri/nouveau/nv04_context.h b/src/mesa/drivers/dri/nouveau/nv04_context.h index ccd3b61e26..45e70d2bc3 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_context.h +++ b/src/mesa/drivers/dri/nouveau/nv04_context.h @@ -40,7 +40,7 @@ struct nv04_context { #define nv04_mtex_engine(obj) ((obj)->grclass == NV04_MULTITEX_TRIANGLE) struct nouveau_grobj * -nv04_context_engine(GLcontext *ctx); +nv04_context_engine(struct gl_context *ctx); extern const struct nouveau_driver nv04_driver; diff --git a/src/mesa/drivers/dri/nouveau/nv04_driver.h b/src/mesa/drivers/dri/nouveau/nv04_driver.h index 4d599e683a..554914d1c3 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_driver.h +++ b/src/mesa/drivers/dri/nouveau/nv04_driver.h @@ -39,55 +39,55 @@ enum { /* nv04_render.c */ void -nv04_render_init(GLcontext *ctx); +nv04_render_init(struct gl_context *ctx); void -nv04_render_destroy(GLcontext *ctx); +nv04_render_destroy(struct gl_context *ctx); /* nv04_surface.c */ GLboolean -nv04_surface_init(GLcontext *ctx); +nv04_surface_init(struct gl_context *ctx); void -nv04_surface_takedown(GLcontext *ctx); +nv04_surface_takedown(struct gl_context *ctx); void -nv04_surface_copy(GLcontext *ctx, +nv04_surface_copy(struct gl_context *ctx, struct nouveau_surface *dst, struct nouveau_surface *src, int dx, int dy, int sx, int sy, int w, int h); void -nv04_surface_fill(GLcontext *ctx, +nv04_surface_fill(struct gl_context *ctx, struct nouveau_surface *dst, unsigned mask, unsigned value, int dx, int dy, int w, int h); /* nv04_state_fb.c */ void -nv04_emit_framebuffer(GLcontext *ctx, int emit); +nv04_emit_framebuffer(struct gl_context *ctx, int emit); void -nv04_emit_scissor(GLcontext *ctx, int emit); +nv04_emit_scissor(struct gl_context *ctx, int emit); /* nv04_state_raster.c */ void -nv04_defer_control(GLcontext *ctx, int emit); +nv04_defer_control(struct gl_context *ctx, int emit); void -nv04_emit_control(GLcontext *ctx, int emit); +nv04_emit_control(struct gl_context *ctx, int emit); void -nv04_defer_blend(GLcontext *ctx, int emit); +nv04_defer_blend(struct gl_context *ctx, int emit); void -nv04_emit_blend(GLcontext *ctx, int emit); +nv04_emit_blend(struct gl_context *ctx, int emit); /* nv04_state_frag.c */ void -nv04_emit_tex_env(GLcontext *ctx, int emit); +nv04_emit_tex_env(struct gl_context *ctx, int emit); /* nv04_state_tex.c */ void -nv04_emit_tex_obj(GLcontext *ctx, int emit); +nv04_emit_tex_obj(struct gl_context *ctx, int emit); #endif diff --git a/src/mesa/drivers/dri/nouveau/nv04_render.c b/src/mesa/drivers/dri/nouveau/nv04_render.c index 56e396d51f..47bad24f9d 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_render.c +++ b/src/mesa/drivers/dri/nouveau/nv04_render.c @@ -37,7 +37,7 @@ #define NUM_VERTEX_ATTRS 6 static void -swtnl_update_viewport(GLcontext *ctx) +swtnl_update_viewport(struct gl_context *ctx) { float *viewport = to_nv04_context(ctx)->viewport; struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -51,7 +51,7 @@ swtnl_update_viewport(GLcontext *ctx) } static void -swtnl_emit_attr(GLcontext *ctx, struct tnl_attr_map *m, int attr, int emit) +swtnl_emit_attr(struct gl_context *ctx, struct tnl_attr_map *m, int attr, int emit) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -68,7 +68,7 @@ swtnl_emit_attr(GLcontext *ctx, struct tnl_attr_map *m, int attr, int emit) } static void -swtnl_choose_attrs(GLcontext *ctx) +swtnl_choose_attrs(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct nouveau_grobj *fahrenheit = nv04_context_engine(ctx); @@ -94,24 +94,24 @@ swtnl_choose_attrs(GLcontext *ctx) /* TnL renderer entry points */ static void -swtnl_start(GLcontext *ctx) +swtnl_start(struct gl_context *ctx) { swtnl_choose_attrs(ctx); } static void -swtnl_finish(GLcontext *ctx) +swtnl_finish(struct gl_context *ctx) { FIRE_RING(context_chan(ctx)); } static void -swtnl_primitive(GLcontext *ctx, GLenum mode) +swtnl_primitive(struct gl_context *ctx, GLenum mode) { } static void -swtnl_reset_stipple(GLcontext *ctx) +swtnl_reset_stipple(struct gl_context *ctx) { } @@ -146,17 +146,17 @@ swtnl_reset_stipple(GLcontext *ctx) } static void -swtnl_points(GLcontext *ctx, GLuint first, GLuint last) +swtnl_points(struct gl_context *ctx, GLuint first, GLuint last) { } static void -swtnl_line(GLcontext *ctx, GLuint v1, GLuint v2) +swtnl_line(struct gl_context *ctx, GLuint v1, GLuint v2) { } static void -swtnl_triangle(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3) +swtnl_triangle(struct gl_context *ctx, GLuint v1, GLuint v2, GLuint v3) { BEGIN_PRIMITIVE(3); OUT_VERTEX(v1); @@ -166,7 +166,7 @@ swtnl_triangle(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3) } static void -swtnl_quad(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) +swtnl_quad(struct gl_context *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) { BEGIN_PRIMITIVE(4); OUT_VERTEX(v1); @@ -178,7 +178,7 @@ swtnl_quad(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) /* TnL initialization. */ void -nv04_render_init(GLcontext *ctx) +nv04_render_init(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -207,6 +207,6 @@ nv04_render_init(GLcontext *ctx) } void -nv04_render_destroy(GLcontext *ctx) +nv04_render_destroy(struct gl_context *ctx) { } diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_fb.c b/src/mesa/drivers/dri/nouveau/nv04_state_fb.c index b9d232dbb8..a3e343660f 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_state_fb.c +++ b/src/mesa/drivers/dri/nouveau/nv04_state_fb.c @@ -47,7 +47,7 @@ get_rt_format(gl_format format) } void -nv04_emit_framebuffer(GLcontext *ctx, int emit) +nv04_emit_framebuffer(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_hw_state *hw = &to_nouveau_context(ctx)->hw; @@ -97,7 +97,7 @@ nv04_emit_framebuffer(GLcontext *ctx, int emit) } void -nv04_emit_scissor(GLcontext *ctx, int emit) +nv04_emit_scissor(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_hw_state *hw = &to_nouveau_context(ctx)->hw; diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c index bb5d7dc20f..658b23a4d9 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c @@ -41,7 +41,7 @@ NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA0 struct combiner_state { - GLcontext *ctx; + struct gl_context *ctx; int unit; GLboolean alpha; GLboolean premodulate; @@ -234,7 +234,7 @@ setup_combiner(struct combiner_state *rc) } void -nv04_emit_tex_env(GLcontext *ctx, int emit) +nv04_emit_tex_env(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_ENV0; struct nouveau_channel *chan = context_chan(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_raster.c b/src/mesa/drivers/dri/nouveau/nv04_state_raster.c index c191571a5f..a114f44b22 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_state_raster.c +++ b/src/mesa/drivers/dri/nouveau/nv04_state_raster.c @@ -127,13 +127,13 @@ get_blend_func(unsigned func) } void -nv04_defer_control(GLcontext *ctx, int emit) +nv04_defer_control(struct gl_context *ctx, int emit) { context_dirty(ctx, CONTROL); } void -nv04_emit_control(GLcontext *ctx, int emit) +nv04_emit_control(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *fahrenheit = nv04_context_engine(ctx); @@ -247,13 +247,13 @@ nv04_emit_control(GLcontext *ctx, int emit) } void -nv04_defer_blend(GLcontext *ctx, int emit) +nv04_defer_blend(struct gl_context *ctx, int emit) { context_dirty(ctx, BLEND); } void -nv04_emit_blend(GLcontext *ctx, int emit) +nv04_emit_blend(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *fahrenheit = nv04_context_engine(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c index b720089fbf..1fe47a30e4 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c @@ -56,7 +56,7 @@ get_tex_format(struct gl_texture_image *ti) } void -nv04_emit_tex_obj(GLcontext *ctx, int emit) +nv04_emit_tex_obj(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_OBJ0; struct nouveau_channel *chan = context_chan(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv04_surface.c b/src/mesa/drivers/dri/nouveau/nv04_surface.c index ce0103604c..6d3ffa26d3 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_surface.c +++ b/src/mesa/drivers/dri/nouveau/nv04_surface.c @@ -191,7 +191,7 @@ sifm_format(gl_format format) } static void -nv04_surface_copy_swizzle(GLcontext *ctx, +nv04_surface_copy_swizzle(struct gl_context *ctx, struct nouveau_surface *dst, struct nouveau_surface *src, int dx, int dy, int sx, int sy, @@ -269,7 +269,7 @@ nv04_surface_copy_swizzle(GLcontext *ctx, } static void -nv04_surface_copy_m2mf(GLcontext *ctx, +nv04_surface_copy_m2mf(struct gl_context *ctx, struct nouveau_surface *dst, struct nouveau_surface *src, int dx, int dy, int sx, int sy, @@ -362,7 +362,7 @@ get_swizzled_offset(struct nouveau_surface *s, unsigned x, unsigned y) } static void -nv04_surface_copy_cpu(GLcontext *ctx, +nv04_surface_copy_cpu(struct gl_context *ctx, struct nouveau_surface *dst, struct nouveau_surface *src, int dx, int dy, int sx, int sy, @@ -393,7 +393,7 @@ nv04_surface_copy_cpu(GLcontext *ctx, } void -nv04_surface_copy(GLcontext *ctx, +nv04_surface_copy(struct gl_context *ctx, struct nouveau_surface *dst, struct nouveau_surface *src, int dx, int dy, int sx, int sy, @@ -418,7 +418,7 @@ nv04_surface_copy(GLcontext *ctx, } void -nv04_surface_fill(GLcontext *ctx, +nv04_surface_fill(struct gl_context *ctx, struct nouveau_surface *dst, unsigned mask, unsigned value, int dx, int dy, int w, int h) @@ -460,7 +460,7 @@ nv04_surface_fill(GLcontext *ctx, } void -nv04_surface_takedown(GLcontext *ctx) +nv04_surface_takedown(struct gl_context *ctx) { struct nouveau_hw_state *hw = &to_nouveau_context(ctx)->hw; @@ -475,7 +475,7 @@ nv04_surface_takedown(GLcontext *ctx) } GLboolean -nv04_surface_init(GLcontext *ctx) +nv04_surface_init(struct gl_context *ctx) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_hw_state *hw = &to_nouveau_context(ctx)->hw; diff --git a/src/mesa/drivers/dri/nouveau/nv10_context.c b/src/mesa/drivers/dri/nouveau/nv10_context.c index 08be2a25a0..fdcb43b771 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_context.c +++ b/src/mesa/drivers/dri/nouveau/nv10_context.c @@ -40,33 +40,157 @@ static const struct dri_extension nv10_extensions[] = { { NULL, NULL } }; +static GLboolean +use_fast_zclear(struct gl_context *ctx, GLbitfield buffers) +{ + struct nouveau_context *nctx = to_nouveau_context(ctx); + struct gl_framebuffer *fb = ctx->DrawBuffer; + + if (buffers & BUFFER_BIT_STENCIL) { + /* + * The stencil test is bypassed when fast Z clears are + * enabled. + */ + nctx->hierz.clear_blocked = GL_TRUE; + context_dirty(ctx, ZCLEAR); + return GL_FALSE; + } + + return !nctx->hierz.clear_blocked && + fb->_Xmax == fb->Width && fb->_Xmin == 0 && + fb->_Ymax == fb->Height && fb->_Ymin == 0; +} + +GLboolean +nv10_use_viewport_zclear(struct gl_context *ctx) +{ + struct nouveau_context *nctx = to_nouveau_context(ctx); + struct gl_framebuffer *fb = ctx->DrawBuffer; + + return context_chipset(ctx) < 0x17 && + !nctx->hierz.clear_blocked && fb->_DepthBuffer && + (_mesa_get_format_bits(fb->_DepthBuffer->Format, + GL_DEPTH_BITS) >= 24); +} + +float +nv10_transform_depth(struct gl_context *ctx, float z) +{ + struct nouveau_context *nctx = to_nouveau_context(ctx); + + if (nv10_use_viewport_zclear(ctx)) + return 2097152.0 * (z + (nctx->hierz.clear_seq & 7)); + else + return ctx->DrawBuffer->_DepthMaxF * z; +} + static void -nv10_clear(GLcontext *ctx, GLbitfield buffers) +nv10_zclear(struct gl_context *ctx, GLbitfield *buffers) { + /* + * Pre-nv17 cards don't have native support for fast Z clears, + * but in some cases we can still "clear" the Z buffer without + * actually blitting to it if we're willing to sacrifice a few + * bits of depth precision. + * + * Each time a clear is requested we modify the viewport + * transform in such a way that the old contents of the depth + * buffer are clamped to the requested clear value when + * they're read by the GPU. + */ + struct nouveau_context *nctx = to_nouveau_context(ctx); + struct gl_framebuffer *fb = ctx->DrawBuffer; + struct nouveau_framebuffer *nfb = to_nouveau_framebuffer(fb); + struct nouveau_surface *s = &to_nouveau_renderbuffer( + fb->_DepthBuffer->Wrapped)->surface; + + if (nv10_use_viewport_zclear(ctx)) { + int x, y, w, h; + float z = ctx->Depth.Clear; + uint32_t value = pack_zs_f(s->format, z, 0); + + get_scissors(fb, &x, &y, &w, &h); + *buffers &= ~BUFFER_BIT_DEPTH; + + if (use_fast_zclear(ctx, *buffers)) { + if (nfb->hierz.clear_value != value) { + /* Don't fast clear if we're changing + * the depth value. */ + nfb->hierz.clear_value = value; + + } else if (z == 0.0) { + nctx->hierz.clear_seq++; + context_dirty(ctx, ZCLEAR); + + if ((nctx->hierz.clear_seq & 7) != 0 && + nctx->hierz.clear_seq != 1) + /* We didn't wrap around -- no need to + * clear the depth buffer for real. */ + return; + + } else if (z == 1.0) { + nctx->hierz.clear_seq--; + context_dirty(ctx, ZCLEAR); + + if ((nctx->hierz.clear_seq & 7) != 7) + /* No wrap around */ + return; + } + } + + value = pack_zs_f(s->format, + (z + (nctx->hierz.clear_seq & 7)) / 8, 0); + context_drv(ctx)->surface_fill(ctx, s, ~0, value, x, y, w, h); + } +} + +static void +nv17_zclear(struct gl_context *ctx, GLbitfield *buffers) +{ + struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); struct nouveau_framebuffer *nfb = to_nouveau_framebuffer( ctx->DrawBuffer); + struct nouveau_surface *s = &to_nouveau_renderbuffer( + nfb->base._DepthBuffer->Wrapped)->surface; - nouveau_validate_framebuffer(ctx); + /* Clear the hierarchical depth buffer */ + BEGIN_RING(chan, celsius, NV17TCL_LMA_DEPTH_FILL_VALUE, 1); + OUT_RING(chan, pack_zs_f(s->format, ctx->Depth.Clear, 0)); + BEGIN_RING(chan, celsius, NV17TCL_LMA_DEPTH_BUFFER_CLEAR, 1); + OUT_RING(chan, 1); - /* Clear the LMA depth buffer, if present. */ - if ((buffers & BUFFER_BIT_DEPTH) && ctx->Depth.Mask && - nfb->lma_bo) { - struct nouveau_surface *s = &to_nouveau_renderbuffer( - nfb->base._DepthBuffer->Wrapped)->surface; + /* Mark the depth buffer as cleared */ + if (use_fast_zclear(ctx, *buffers)) { + if (nctx->hierz.clear_seq) + *buffers &= ~BUFFER_BIT_DEPTH; - BEGIN_RING(chan, celsius, NV17TCL_LMA_DEPTH_FILL_VALUE, 1); - OUT_RING(chan, pack_zs_f(s->format, ctx->Depth.Clear, 0)); - BEGIN_RING(chan, celsius, NV17TCL_LMA_DEPTH_BUFFER_CLEAR, 1); - OUT_RING(chan, 1); + nfb->hierz.clear_value = + pack_zs_f(s->format, ctx->Depth.Clear, 0); + nctx->hierz.clear_seq++; + + context_dirty(ctx, ZCLEAR); + } +} + +static void +nv10_clear(struct gl_context *ctx, GLbitfield buffers) +{ + nouveau_validate_framebuffer(ctx); + + if ((buffers & BUFFER_BIT_DEPTH) && ctx->Depth.Mask) { + if (context_chipset(ctx) >= 0x17) + nv17_zclear(ctx, &buffers); + else + nv10_zclear(ctx, &buffers); } nouveau_clear(ctx, buffers); } static void -nv10_hwctx_init(GLcontext *ctx) +nv10_hwctx_init(struct gl_context *ctx) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -271,14 +395,14 @@ nv10_hwctx_init(GLcontext *ctx) OUT_RING(chan, 1); BEGIN_RING(chan, celsius, NV10TCL_DEPTH_RANGE_NEAR, 2); - OUT_RING(chan, 0.0); + OUT_RINGf(chan, 0.0); OUT_RINGf(chan, 16777216.0); FIRE_RING(chan); } static void -nv10_context_destroy(GLcontext *ctx) +nv10_context_destroy(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -291,12 +415,12 @@ nv10_context_destroy(GLcontext *ctx) FREE(ctx); } -static GLcontext * -nv10_context_create(struct nouveau_screen *screen, const GLvisual *visual, - GLcontext *share_ctx) +static struct gl_context * +nv10_context_create(struct nouveau_screen *screen, const struct gl_config *visual, + struct gl_context *share_ctx) { struct nouveau_context *nctx; - GLcontext *ctx; + struct gl_context *ctx; unsigned celsius_class; int ret; @@ -423,7 +547,8 @@ const struct nouveau_driver nv10_driver = { nv10_emit_tex_obj, nouveau_emit_nothing, nouveau_emit_nothing, - nv10_emit_viewport + nv10_emit_viewport, + nv10_emit_zclear }, - .num_emit = NUM_NOUVEAU_STATE, + .num_emit = NUM_NV10_STATE, }; diff --git a/src/mesa/drivers/dri/nouveau/nv10_driver.h b/src/mesa/drivers/dri/nouveau/nv10_driver.h index cefd6c6fba..dec3d64e7d 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_driver.h +++ b/src/mesa/drivers/dri/nouveau/nv10_driver.h @@ -27,121 +27,135 @@ #ifndef __NV10_DRIVER_H__ #define __NV10_DRIVER_H__ +enum { + NOUVEAU_STATE_ZCLEAR = NUM_NOUVEAU_STATE, + NUM_NV10_STATE +}; + #define NV10_TEXTURE_UNITS 2 /* nv10_context.c */ extern const struct nouveau_driver nv10_driver; +GLboolean +nv10_use_viewport_zclear(struct gl_context *ctx); + +float +nv10_transform_depth(struct gl_context *ctx, float z); + /* nv10_render.c */ void -nv10_render_init(GLcontext *ctx); +nv10_render_init(struct gl_context *ctx); void -nv10_render_destroy(GLcontext *ctx); +nv10_render_destroy(struct gl_context *ctx); /* nv10_state_fb.c */ void -nv10_emit_framebuffer(GLcontext *ctx, int emit); +nv10_emit_framebuffer(struct gl_context *ctx, int emit); + +void +nv10_emit_render_mode(struct gl_context *ctx, int emit); void -nv10_emit_render_mode(GLcontext *ctx, int emit); +nv10_emit_scissor(struct gl_context *ctx, int emit); void -nv10_emit_scissor(GLcontext *ctx, int emit); +nv10_emit_viewport(struct gl_context *ctx, int emit); void -nv10_emit_viewport(GLcontext *ctx, int emit); +nv10_emit_zclear(struct gl_context *ctx, int emit); /* nv10_state_polygon.c */ void -nv10_emit_cull_face(GLcontext *ctx, int emit); +nv10_emit_cull_face(struct gl_context *ctx, int emit); void -nv10_emit_front_face(GLcontext *ctx, int emit); +nv10_emit_front_face(struct gl_context *ctx, int emit); void -nv10_emit_line_mode(GLcontext *ctx, int emit); +nv10_emit_line_mode(struct gl_context *ctx, int emit); void -nv10_emit_line_stipple(GLcontext *ctx, int emit); +nv10_emit_line_stipple(struct gl_context *ctx, int emit); void -nv10_emit_point_mode(GLcontext *ctx, int emit); +nv10_emit_point_mode(struct gl_context *ctx, int emit); void -nv10_emit_polygon_mode(GLcontext *ctx, int emit); +nv10_emit_polygon_mode(struct gl_context *ctx, int emit); void -nv10_emit_polygon_offset(GLcontext *ctx, int emit); +nv10_emit_polygon_offset(struct gl_context *ctx, int emit); void -nv10_emit_polygon_stipple(GLcontext *ctx, int emit); +nv10_emit_polygon_stipple(struct gl_context *ctx, int emit); /* nv10_state_raster.c */ void -nv10_emit_alpha_func(GLcontext *ctx, int emit); +nv10_emit_alpha_func(struct gl_context *ctx, int emit); void -nv10_emit_blend_color(GLcontext *ctx, int emit); +nv10_emit_blend_color(struct gl_context *ctx, int emit); void -nv10_emit_blend_equation(GLcontext *ctx, int emit); +nv10_emit_blend_equation(struct gl_context *ctx, int emit); void -nv10_emit_blend_func(GLcontext *ctx, int emit); +nv10_emit_blend_func(struct gl_context *ctx, int emit); void -nv10_emit_color_mask(GLcontext *ctx, int emit); +nv10_emit_color_mask(struct gl_context *ctx, int emit); void -nv10_emit_depth(GLcontext *ctx, int emit); +nv10_emit_depth(struct gl_context *ctx, int emit); void -nv10_emit_dither(GLcontext *ctx, int emit); +nv10_emit_dither(struct gl_context *ctx, int emit); void -nv10_emit_logic_opcode(GLcontext *ctx, int emit); +nv10_emit_logic_opcode(struct gl_context *ctx, int emit); void -nv10_emit_shade_model(GLcontext *ctx, int emit); +nv10_emit_shade_model(struct gl_context *ctx, int emit); void -nv10_emit_stencil_func(GLcontext *ctx, int emit); +nv10_emit_stencil_func(struct gl_context *ctx, int emit); void -nv10_emit_stencil_mask(GLcontext *ctx, int emit); +nv10_emit_stencil_mask(struct gl_context *ctx, int emit); void -nv10_emit_stencil_op(GLcontext *ctx, int emit); +nv10_emit_stencil_op(struct gl_context *ctx, int emit); /* nv10_state_frag.c */ void -nv10_get_general_combiner(GLcontext *ctx, int i, +nv10_get_general_combiner(struct gl_context *ctx, int i, uint32_t *a_in, uint32_t *a_out, uint32_t *c_in, uint32_t *c_out, uint32_t *k); void -nv10_get_final_combiner(GLcontext *ctx, uint64_t *in, int *n); +nv10_get_final_combiner(struct gl_context *ctx, uint64_t *in, int *n); void -nv10_emit_tex_env(GLcontext *ctx, int emit); +nv10_emit_tex_env(struct gl_context *ctx, int emit); void -nv10_emit_frag(GLcontext *ctx, int emit); +nv10_emit_frag(struct gl_context *ctx, int emit); /* nv10_state_tex.c */ void -nv10_emit_tex_gen(GLcontext *ctx, int emit); +nv10_emit_tex_gen(struct gl_context *ctx, int emit); void -nv10_emit_tex_mat(GLcontext *ctx, int emit); +nv10_emit_tex_mat(struct gl_context *ctx, int emit); void -nv10_emit_tex_obj(GLcontext *ctx, int emit); +nv10_emit_tex_obj(struct gl_context *ctx, int emit); /* nv10_state_tnl.c */ void -nv10_get_fog_coeff(GLcontext *ctx, float k[3]); +nv10_get_fog_coeff(struct gl_context *ctx, float k[3]); void nv10_get_spot_coeff(struct gl_light *l, float k[7]); @@ -150,42 +164,42 @@ void nv10_get_shininess_coeff(float s, float k[6]); void -nv10_emit_clip_plane(GLcontext *ctx, int emit); +nv10_emit_clip_plane(struct gl_context *ctx, int emit); void -nv10_emit_color_material(GLcontext *ctx, int emit); +nv10_emit_color_material(struct gl_context *ctx, int emit); void -nv10_emit_fog(GLcontext *ctx, int emit); +nv10_emit_fog(struct gl_context *ctx, int emit); void -nv10_emit_light_enable(GLcontext *ctx, int emit); +nv10_emit_light_enable(struct gl_context *ctx, int emit); void -nv10_emit_light_model(GLcontext *ctx, int emit); +nv10_emit_light_model(struct gl_context *ctx, int emit); void -nv10_emit_light_source(GLcontext *ctx, int emit); +nv10_emit_light_source(struct gl_context *ctx, int emit); void -nv10_emit_material_ambient(GLcontext *ctx, int emit); +nv10_emit_material_ambient(struct gl_context *ctx, int emit); void -nv10_emit_material_diffuse(GLcontext *ctx, int emit); +nv10_emit_material_diffuse(struct gl_context *ctx, int emit); void -nv10_emit_material_specular(GLcontext *ctx, int emit); +nv10_emit_material_specular(struct gl_context *ctx, int emit); void -nv10_emit_material_shininess(GLcontext *ctx, int emit); +nv10_emit_material_shininess(struct gl_context *ctx, int emit); void -nv10_emit_modelview(GLcontext *ctx, int emit); +nv10_emit_modelview(struct gl_context *ctx, int emit); void -nv10_emit_point_parameter(GLcontext *ctx, int emit); +nv10_emit_point_parameter(struct gl_context *ctx, int emit); void -nv10_emit_projection(GLcontext *ctx, int emit); +nv10_emit_projection(struct gl_context *ctx, int emit); #endif diff --git a/src/mesa/drivers/dri/nouveau/nv10_render.c b/src/mesa/drivers/dri/nouveau/nv10_render.c index 54245ea6ba..a03ace3536 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_render.c +++ b/src/mesa/drivers/dri/nouveau/nv10_render.c @@ -32,7 +32,7 @@ #define NUM_VERTEX_ATTRS 8 static void -nv10_emit_material(GLcontext *ctx, struct nouveau_array_state *a, +nv10_emit_material(struct gl_context *ctx, struct nouveau_array_state *a, const void *v); /* Vertex attribute format. */ @@ -106,7 +106,7 @@ get_hw_format(int type) } static void -nv10_render_set_format(GLcontext *ctx) +nv10_render_set_format(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -136,7 +136,7 @@ nv10_render_set_format(GLcontext *ctx) } static void -nv10_render_bind_vertices(GLcontext *ctx) +nv10_render_bind_vertices(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); struct nouveau_bo_context *bctx = context_bctx(ctx, VERTEX); @@ -167,35 +167,35 @@ nv10_render_bind_vertices(GLcontext *ctx) #define BATCH_BEGIN(prim) \ BEGIN_RING(chan, celsius, NV10TCL_VERTEX_BUFFER_BEGIN_END, 1); \ - OUT_RING(chan, prim); + OUT_RING(chan, prim) #define BATCH_END() \ BEGIN_RING(chan, celsius, NV10TCL_VERTEX_BUFFER_BEGIN_END, 1); \ - OUT_RING(chan, 0); + OUT_RING(chan, 0) #define MAX_PACKET 0x400 #define MAX_OUT_L 0x100 #define BATCH_PACKET_L(n) \ - BEGIN_RING_NI(chan, celsius, NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS, n); + BEGIN_RING_NI(chan, celsius, NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS, n) #define BATCH_OUT_L(i, n) \ - OUT_RING(chan, ((n) - 1) << 24 | (i)); + OUT_RING(chan, ((n) - 1) << 24 | (i)) #define MAX_OUT_I16 0x2 #define BATCH_PACKET_I16(n) \ - BEGIN_RING_NI(chan, celsius, NV10TCL_VB_ELEMENT_U16, n); + BEGIN_RING_NI(chan, celsius, NV10TCL_VB_ELEMENT_U16, n) #define BATCH_OUT_I16(i0, i1) \ - OUT_RING(chan, (i1) << 16 | (i0)); + OUT_RING(chan, (i1) << 16 | (i0)) #define MAX_OUT_I32 0x1 #define BATCH_PACKET_I32(n) \ - BEGIN_RING_NI(chan, celsius, NV10TCL_VB_ELEMENT_U32, n); + BEGIN_RING_NI(chan, celsius, NV10TCL_VB_ELEMENT_U32, n) #define BATCH_OUT_I32(i) \ - OUT_RING(chan, i); + OUT_RING(chan, i) #define IMM_PACKET(m, n) \ - BEGIN_RING(chan, celsius, m, n); + BEGIN_RING(chan, celsius, m, n) #define IMM_OUT(x) \ - OUT_RINGf(chan, x); + OUT_RINGf(chan, x) #define TAG(x) nv10_##x #include "nouveau_render_t.c" diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_fb.c b/src/mesa/drivers/dri/nouveau/nv10_state_fb.c index a2fcb6b695..d87fe96b1c 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_fb.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_fb.c @@ -51,7 +51,7 @@ get_rt_format(gl_format format) } static void -setup_lma_buffer(GLcontext *ctx) +setup_lma_buffer(struct gl_context *ctx) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -62,14 +62,14 @@ setup_lma_buffer(GLcontext *ctx) height = align(fb->Height, 2), size = pitch * height; - if (!nfb->lma_bo || nfb->lma_bo->size != size) { - nouveau_bo_ref(NULL, &nfb->lma_bo); - nouveau_bo_new(context_dev(ctx), NOUVEAU_BO_VRAM, 0, size, - &nfb->lma_bo); + if (!nfb->hierz.bo || nfb->hierz.bo->size != size) { + nouveau_bo_ref(NULL, &nfb->hierz.bo); + nouveau_bo_new_tile(context_dev(ctx), NOUVEAU_BO_VRAM, 0, size, + 0, NOUVEAU_BO_TILE_ZETA, &nfb->hierz.bo); } nouveau_bo_markl(bctx, celsius, NV17TCL_LMA_DEPTH_BUFFER_OFFSET, - nfb->lma_bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_RDWR); + nfb->hierz.bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_RDWR); WAIT_RING(chan, 9); BEGIN_RING(chan, celsius, NV17TCL_LMA_DEPTH_WINDOW_X, 4); @@ -86,7 +86,7 @@ setup_lma_buffer(GLcontext *ctx) } void -nv10_emit_framebuffer(GLcontext *ctx, int emit) +nv10_emit_framebuffer(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -134,8 +134,10 @@ nv10_emit_framebuffer(GLcontext *ctx, int emit) nouveau_bo_markl(bctx, celsius, NV10TCL_ZETA_OFFSET, s->bo, 0, bo_flags); - if (context_chipset(ctx) >= 0x17) + if (context_chipset(ctx) >= 0x17) { setup_lma_buffer(ctx); + context_dirty(ctx, ZCLEAR); + } } BEGIN_RING(chan, celsius, NV10TCL_RT_FORMAT, 2); @@ -147,12 +149,12 @@ nv10_emit_framebuffer(GLcontext *ctx, int emit) } void -nv10_emit_render_mode(GLcontext *ctx, int emit) +nv10_emit_render_mode(struct gl_context *ctx, int emit) { } void -nv10_emit_scissor(GLcontext *ctx, int emit) +nv10_emit_scissor(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -166,16 +168,19 @@ nv10_emit_scissor(GLcontext *ctx, int emit) } void -nv10_emit_viewport(GLcontext *ctx, int emit) +nv10_emit_viewport(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); + struct gl_viewport_attrib *vp = &ctx->Viewport; struct gl_framebuffer *fb = ctx->DrawBuffer; float a[4] = {}; get_viewport_translate(ctx, a); a[0] -= 2048; a[1] -= 2048; + if (nv10_use_viewport_zclear(ctx)) + a[2] = nv10_transform_depth(ctx, (vp->Far + vp->Near) / 2); BEGIN_RING(chan, celsius, NV10TCL_VIEWPORT_TRANSLATE_X, 4); OUT_RINGp(chan, a, 4); @@ -187,3 +192,25 @@ nv10_emit_viewport(GLcontext *ctx, int emit) context_dirty(ctx, PROJECTION); } + +void +nv10_emit_zclear(struct gl_context *ctx, int emit) +{ + struct nouveau_context *nctx = to_nouveau_context(ctx); + struct nouveau_channel *chan = context_chan(ctx); + struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_framebuffer *nfb = + to_nouveau_framebuffer(ctx->DrawBuffer); + + if (nfb->hierz.bo) { + BEGIN_RING(chan, celsius, NV17TCL_ZCLEAR_ENABLE, 2); + OUT_RING(chan, nctx->hierz.clear_blocked ? 0 : 1); + OUT_RING(chan, nfb->hierz.clear_value | + (nctx->hierz.clear_seq & 0xff)); + } else { + BEGIN_RING(chan, celsius, NV10TCL_DEPTH_RANGE_NEAR, 2); + OUT_RINGf(chan, nv10_transform_depth(ctx, 0)); + OUT_RINGf(chan, nv10_transform_depth(ctx, 1)); + context_dirty(ctx, VIEWPORT); + } +} diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c index ab713f9dbf..5138c36df7 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c @@ -61,7 +61,7 @@ #define RC_OUT_SUM NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0 struct combiner_state { - GLcontext *ctx; + struct gl_context *ctx; int unit; GLboolean premodulate; @@ -298,7 +298,7 @@ setup_combiner(struct combiner_state *rc) } void -nv10_get_general_combiner(GLcontext *ctx, int i, +nv10_get_general_combiner(struct gl_context *ctx, int i, uint32_t *a_in, uint32_t *a_out, uint32_t *c_in, uint32_t *c_out, uint32_t *k) { @@ -328,7 +328,7 @@ nv10_get_general_combiner(GLcontext *ctx, int i, } void -nv10_get_final_combiner(GLcontext *ctx, uint64_t *in, int *n) +nv10_get_final_combiner(struct gl_context *ctx, uint64_t *in, int *n) { struct combiner_state rc = {}; @@ -366,7 +366,7 @@ nv10_get_final_combiner(GLcontext *ctx, uint64_t *in, int *n) } void -nv10_emit_tex_env(GLcontext *ctx, int emit) +nv10_emit_tex_env(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_ENV0; struct nouveau_channel *chan = context_chan(ctx); @@ -398,7 +398,7 @@ nv10_emit_tex_env(GLcontext *ctx, int emit) } void -nv10_emit_frag(GLcontext *ctx, int emit) +nv10_emit_frag(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_polygon.c b/src/mesa/drivers/dri/nouveau/nv10_state_polygon.c index deddca1011..4e49b0278c 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_polygon.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_polygon.c @@ -31,7 +31,7 @@ #include "nv10_driver.h" void -nv10_emit_cull_face(GLcontext *ctx, int emit) +nv10_emit_cull_face(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -47,7 +47,7 @@ nv10_emit_cull_face(GLcontext *ctx, int emit) } void -nv10_emit_front_face(GLcontext *ctx, int emit) +nv10_emit_front_face(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -58,7 +58,7 @@ nv10_emit_front_face(GLcontext *ctx, int emit) } void -nv10_emit_line_mode(GLcontext *ctx, int emit) +nv10_emit_line_mode(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -73,12 +73,12 @@ nv10_emit_line_mode(GLcontext *ctx, int emit) } void -nv10_emit_line_stipple(GLcontext *ctx, int emit) +nv10_emit_line_stipple(struct gl_context *ctx, int emit) { } void -nv10_emit_point_mode(GLcontext *ctx, int emit) +nv10_emit_point_mode(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -91,7 +91,7 @@ nv10_emit_point_mode(GLcontext *ctx, int emit) } void -nv10_emit_polygon_mode(GLcontext *ctx, int emit) +nv10_emit_polygon_mode(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -105,7 +105,7 @@ nv10_emit_polygon_mode(GLcontext *ctx, int emit) } void -nv10_emit_polygon_offset(GLcontext *ctx, int emit) +nv10_emit_polygon_offset(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -121,6 +121,6 @@ nv10_emit_polygon_offset(GLcontext *ctx, int emit) } void -nv10_emit_polygon_stipple(GLcontext *ctx, int emit) +nv10_emit_polygon_stipple(struct gl_context *ctx, int emit) { } diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_raster.c b/src/mesa/drivers/dri/nouveau/nv10_state_raster.c index a62cd807a9..99609844a1 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_raster.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_raster.c @@ -31,7 +31,7 @@ #include "nv10_driver.h" void -nv10_emit_alpha_func(GLcontext *ctx, int emit) +nv10_emit_alpha_func(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -45,7 +45,7 @@ nv10_emit_alpha_func(GLcontext *ctx, int emit) } void -nv10_emit_blend_color(GLcontext *ctx, int emit) +nv10_emit_blend_color(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -58,7 +58,7 @@ nv10_emit_blend_color(GLcontext *ctx, int emit) } void -nv10_emit_blend_equation(GLcontext *ctx, int emit) +nv10_emit_blend_equation(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -71,7 +71,7 @@ nv10_emit_blend_equation(GLcontext *ctx, int emit) } void -nv10_emit_blend_func(GLcontext *ctx, int emit) +nv10_emit_blend_func(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -82,7 +82,7 @@ nv10_emit_blend_func(GLcontext *ctx, int emit) } void -nv10_emit_color_mask(GLcontext *ctx, int emit) +nv10_emit_color_mask(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -95,7 +95,7 @@ nv10_emit_color_mask(GLcontext *ctx, int emit) } void -nv10_emit_depth(GLcontext *ctx, int emit) +nv10_emit_depth(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -109,7 +109,7 @@ nv10_emit_depth(GLcontext *ctx, int emit) } void -nv10_emit_dither(GLcontext *ctx, int emit) +nv10_emit_dither(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -119,7 +119,7 @@ nv10_emit_dither(GLcontext *ctx, int emit) } void -nv10_emit_logic_opcode(GLcontext *ctx, int emit) +nv10_emit_logic_opcode(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -133,7 +133,7 @@ nv10_emit_logic_opcode(GLcontext *ctx, int emit) } void -nv10_emit_shade_model(GLcontext *ctx, int emit) +nv10_emit_shade_model(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -144,7 +144,7 @@ nv10_emit_shade_model(GLcontext *ctx, int emit) } void -nv10_emit_stencil_func(GLcontext *ctx, int emit) +nv10_emit_stencil_func(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -159,7 +159,7 @@ nv10_emit_stencil_func(GLcontext *ctx, int emit) } void -nv10_emit_stencil_mask(GLcontext *ctx, int emit) +nv10_emit_stencil_mask(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -169,7 +169,7 @@ nv10_emit_stencil_mask(GLcontext *ctx, int emit) } void -nv10_emit_stencil_op(GLcontext *ctx, int emit) +nv10_emit_stencil_op(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c index 6961ccbb45..0092ad0c20 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c @@ -37,7 +37,7 @@ #define TX_MATRIX(i) (NV10TCL_TX0_MATRIX(0) + 64 * (i)) void -nv10_emit_tex_gen(GLcontext *ctx, int emit) +nv10_emit_tex_gen(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_GEN0; struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -70,7 +70,7 @@ nv10_emit_tex_gen(GLcontext *ctx, int emit) } void -nv10_emit_tex_mat(GLcontext *ctx, int emit) +nv10_emit_tex_mat(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_MAT0; struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -151,7 +151,7 @@ get_tex_format_rect(struct gl_texture_image *ti) } void -nv10_emit_tex_obj(GLcontext *ctx, int emit) +nv10_emit_tex_obj(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_OBJ0; struct nouveau_channel *chan = context_chan(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_tnl.c b/src/mesa/drivers/dri/nouveau/nv10_state_tnl.c index 0e592a1629..175abfca5c 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_tnl.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_tnl.c @@ -32,7 +32,7 @@ #include "nv10_driver.h" void -nv10_emit_clip_plane(GLcontext *ctx, int emit) +nv10_emit_clip_plane(struct gl_context *ctx, int emit) { } @@ -54,7 +54,7 @@ get_material_bitmask(unsigned m) } void -nv10_emit_color_material(GLcontext *ctx, int emit) +nv10_emit_color_material(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -93,7 +93,7 @@ get_fog_source(unsigned source) } void -nv10_get_fog_coeff(GLcontext *ctx, float k[3]) +nv10_get_fog_coeff(struct gl_context *ctx, float k[3]) { struct gl_fog_attrib *f = &ctx->Fog; @@ -121,7 +121,7 @@ nv10_get_fog_coeff(GLcontext *ctx, float k[3]) } void -nv10_emit_fog(GLcontext *ctx, int emit) +nv10_emit_fog(struct gl_context *ctx, int emit) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -161,7 +161,7 @@ get_light_mode(struct gl_light *l) } void -nv10_emit_light_enable(GLcontext *ctx, int emit) +nv10_emit_light_enable(struct gl_context *ctx, int emit) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -187,7 +187,7 @@ nv10_emit_light_enable(GLcontext *ctx, int emit) } void -nv10_emit_light_model(GLcontext *ctx, int emit) +nv10_emit_light_model(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -273,7 +273,7 @@ nv10_get_spot_coeff(struct gl_light *l, float k[7]) } void -nv10_emit_light_source(GLcontext *ctx, int emit) +nv10_emit_light_source(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_LIGHT_SOURCE0; struct nouveau_channel *chan = context_chan(ctx); @@ -313,7 +313,7 @@ nv10_emit_light_source(GLcontext *ctx, int emit) ctx->Light.ColorMaterialBitmask & (1 << MAT_ATTRIB_FRONT_##attr)) void -nv10_emit_material_ambient(GLcontext *ctx, int emit) +nv10_emit_material_ambient(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -355,7 +355,7 @@ nv10_emit_material_ambient(GLcontext *ctx, int emit) } void -nv10_emit_material_diffuse(GLcontext *ctx, int emit) +nv10_emit_material_diffuse(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -377,7 +377,7 @@ nv10_emit_material_diffuse(GLcontext *ctx, int emit) } void -nv10_emit_material_specular(GLcontext *ctx, int emit) +nv10_emit_material_specular(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -419,7 +419,7 @@ nv10_get_shininess_coeff(float s, float k[6]) } void -nv10_emit_material_shininess(GLcontext *ctx, int emit) +nv10_emit_material_shininess(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *celsius = context_eng3d(ctx); @@ -435,7 +435,7 @@ nv10_emit_material_shininess(GLcontext *ctx, int emit) } void -nv10_emit_modelview(GLcontext *ctx, int emit) +nv10_emit_modelview(struct gl_context *ctx, int emit) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -464,12 +464,12 @@ nv10_emit_modelview(GLcontext *ctx, int emit) } void -nv10_emit_point_parameter(GLcontext *ctx, int emit) +nv10_emit_point_parameter(struct gl_context *ctx, int emit) { } void -nv10_emit_projection(GLcontext *ctx, int emit) +nv10_emit_projection(struct gl_context *ctx, int emit) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -479,6 +479,9 @@ nv10_emit_projection(GLcontext *ctx, int emit) _math_matrix_ctr(&m); get_viewport_scale(ctx, m.m); + if (nv10_use_viewport_zclear(ctx)) + m.m[MAT_SZ] /= 8; + if (nctx->fallback == HWTNL) _math_matrix_mul_matrix(&m, &m, &ctx->_ModelProjectMatrix); diff --git a/src/mesa/drivers/dri/nouveau/nv20_context.c b/src/mesa/drivers/dri/nouveau/nv20_context.c index b9c221e716..c6111a2a9a 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_context.c +++ b/src/mesa/drivers/dri/nouveau/nv20_context.c @@ -40,7 +40,7 @@ static const struct dri_extension nv20_extensions[] = { }; static void -nv20_hwctx_init(GLcontext *ctx) +nv20_hwctx_init(struct gl_context *ctx) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); @@ -371,7 +371,7 @@ nv20_hwctx_init(GLcontext *ctx) } static void -nv20_context_destroy(GLcontext *ctx) +nv20_context_destroy(struct gl_context *ctx) { struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -384,12 +384,12 @@ nv20_context_destroy(GLcontext *ctx) FREE(ctx); } -static GLcontext * -nv20_context_create(struct nouveau_screen *screen, const GLvisual *visual, - GLcontext *share_ctx) +static struct gl_context * +nv20_context_create(struct nouveau_screen *screen, const struct gl_config *visual, + struct gl_context *share_ctx) { struct nouveau_context *nctx; - GLcontext *ctx; + struct gl_context *ctx; unsigned kelvin_class; int ret; diff --git a/src/mesa/drivers/dri/nouveau/nv20_driver.h b/src/mesa/drivers/dri/nouveau/nv20_driver.h index 8adecef2c4..7fbe6ccfa6 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_driver.h +++ b/src/mesa/drivers/dri/nouveau/nv20_driver.h @@ -39,78 +39,78 @@ extern const struct nouveau_driver nv20_driver; /* nv20_render.c */ void -nv20_render_init(GLcontext *ctx); +nv20_render_init(struct gl_context *ctx); void -nv20_render_destroy(GLcontext *ctx); +nv20_render_destroy(struct gl_context *ctx); /* nv20_state_fb.c */ void -nv20_emit_framebuffer(GLcontext *ctx, int emit); +nv20_emit_framebuffer(struct gl_context *ctx, int emit); void -nv20_emit_viewport(GLcontext *ctx, int emit); +nv20_emit_viewport(struct gl_context *ctx, int emit); /* nv20_state_polygon.c */ void -nv20_emit_point_mode(GLcontext *ctx, int emit); +nv20_emit_point_mode(struct gl_context *ctx, int emit); /* nv20_state_raster.c */ void -nv20_emit_logic_opcode(GLcontext *ctx, int emit); +nv20_emit_logic_opcode(struct gl_context *ctx, int emit); /* nv20_state_frag.c */ void -nv20_emit_tex_env(GLcontext *ctx, int emit); +nv20_emit_tex_env(struct gl_context *ctx, int emit); void -nv20_emit_frag(GLcontext *ctx, int emit); +nv20_emit_frag(struct gl_context *ctx, int emit); /* nv20_state_tex.c */ void -nv20_emit_tex_gen(GLcontext *ctx, int emit); +nv20_emit_tex_gen(struct gl_context *ctx, int emit); void -nv20_emit_tex_mat(GLcontext *ctx, int emit); +nv20_emit_tex_mat(struct gl_context *ctx, int emit); void -nv20_emit_tex_obj(GLcontext *ctx, int emit); +nv20_emit_tex_obj(struct gl_context *ctx, int emit); void -nv20_emit_tex_shader(GLcontext *ctx, int emit); +nv20_emit_tex_shader(struct gl_context *ctx, int emit); /* nv20_state_tnl.c */ void -nv20_emit_clip_plane(GLcontext *ctx, int emit); +nv20_emit_clip_plane(struct gl_context *ctx, int emit); void -nv20_emit_color_material(GLcontext *ctx, int emit); +nv20_emit_color_material(struct gl_context *ctx, int emit); void -nv20_emit_fog(GLcontext *ctx, int emit); +nv20_emit_fog(struct gl_context *ctx, int emit); void -nv20_emit_light_model(GLcontext *ctx, int emit); +nv20_emit_light_model(struct gl_context *ctx, int emit); void -nv20_emit_light_source(GLcontext *ctx, int emit); +nv20_emit_light_source(struct gl_context *ctx, int emit); void -nv20_emit_material_ambient(GLcontext *ctx, int emit); +nv20_emit_material_ambient(struct gl_context *ctx, int emit); void -nv20_emit_material_diffuse(GLcontext *ctx, int emit); +nv20_emit_material_diffuse(struct gl_context *ctx, int emit); void -nv20_emit_material_specular(GLcontext *ctx, int emit); +nv20_emit_material_specular(struct gl_context *ctx, int emit); void -nv20_emit_material_shininess(GLcontext *ctx, int emit); +nv20_emit_material_shininess(struct gl_context *ctx, int emit); void -nv20_emit_modelview(GLcontext *ctx, int emit); +nv20_emit_modelview(struct gl_context *ctx, int emit); void -nv20_emit_projection(GLcontext *ctx, int emit); +nv20_emit_projection(struct gl_context *ctx, int emit); #endif diff --git a/src/mesa/drivers/dri/nouveau/nv20_render.c b/src/mesa/drivers/dri/nouveau/nv20_render.c index a696ac107f..6b66854462 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_render.c +++ b/src/mesa/drivers/dri/nouveau/nv20_render.c @@ -32,7 +32,7 @@ #define NUM_VERTEX_ATTRS 16 static void -nv20_emit_material(GLcontext *ctx, struct nouveau_array_state *a, +nv20_emit_material(struct gl_context *ctx, struct nouveau_array_state *a, const void *v); /* Vertex attribute format. */ @@ -130,7 +130,7 @@ get_hw_format(int type) } static void -nv20_render_set_format(GLcontext *ctx) +nv20_render_set_format(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -158,7 +158,7 @@ nv20_render_set_format(GLcontext *ctx) } static void -nv20_render_bind_vertices(GLcontext *ctx) +nv20_render_bind_vertices(struct gl_context *ctx) { struct nouveau_render_state *render = to_render_state(ctx); struct nouveau_bo_context *bctx = context_bctx(ctx, VERTEX); @@ -191,35 +191,35 @@ nv20_render_bind_vertices(GLcontext *ctx) #define BATCH_BEGIN(prim) \ BEGIN_RING(chan, kelvin, NV20TCL_VERTEX_BEGIN_END, 1); \ - OUT_RING(chan, prim); + OUT_RING(chan, prim) #define BATCH_END() \ BEGIN_RING(chan, kelvin, NV20TCL_VERTEX_BEGIN_END, 1); \ - OUT_RING(chan, 0); + OUT_RING(chan, 0) #define MAX_PACKET 0x400 #define MAX_OUT_L 0x100 #define BATCH_PACKET_L(n) \ - BEGIN_RING_NI(chan, kelvin, NV20TCL_VB_VERTEX_BATCH, n); + BEGIN_RING_NI(chan, kelvin, NV20TCL_VB_VERTEX_BATCH, n) #define BATCH_OUT_L(i, n) \ - OUT_RING(chan, ((n) - 1) << 24 | (i)); + OUT_RING(chan, ((n) - 1) << 24 | (i)) #define MAX_OUT_I16 0x2 #define BATCH_PACKET_I16(n) \ - BEGIN_RING_NI(chan, kelvin, NV20TCL_VB_ELEMENT_U16, n); + BEGIN_RING_NI(chan, kelvin, NV20TCL_VB_ELEMENT_U16, n) #define BATCH_OUT_I16(i0, i1) \ - OUT_RING(chan, (i1) << 16 | (i0)); + OUT_RING(chan, (i1) << 16 | (i0)) #define MAX_OUT_I32 0x1 #define BATCH_PACKET_I32(n) \ - BEGIN_RING_NI(chan, kelvin, NV20TCL_VB_ELEMENT_U32, n); + BEGIN_RING_NI(chan, kelvin, NV20TCL_VB_ELEMENT_U32, n) #define BATCH_OUT_I32(i) \ - OUT_RING(chan, i); + OUT_RING(chan, i) #define IMM_PACKET(m, n) \ - BEGIN_RING(chan, kelvin, m, n); + BEGIN_RING(chan, kelvin, m, n) #define IMM_OUT(x) \ - OUT_RINGf(chan, x); + OUT_RINGf(chan, x) #define TAG(x) nv20_##x #include "nouveau_render_t.c" diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_fb.c b/src/mesa/drivers/dri/nouveau/nv20_state_fb.c index 95691cad04..7822ca2a09 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_fb.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_fb.c @@ -52,7 +52,7 @@ get_rt_format(gl_format format) } void -nv20_emit_framebuffer(GLcontext *ctx, int emit) +nv20_emit_framebuffer(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); @@ -103,7 +103,7 @@ nv20_emit_framebuffer(GLcontext *ctx, int emit) } void -nv20_emit_viewport(GLcontext *ctx, int emit) +nv20_emit_viewport(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_frag.c b/src/mesa/drivers/dri/nouveau/nv20_state_frag.c index 74803d2ae8..f9212d8b39 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_frag.c @@ -31,7 +31,7 @@ #include "nv20_driver.h" void -nv20_emit_tex_env(GLcontext *ctx, int emit) +nv20_emit_tex_env(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_ENV0; struct nouveau_channel *chan = context_chan(ctx); @@ -55,7 +55,7 @@ nv20_emit_tex_env(GLcontext *ctx, int emit) } void -nv20_emit_frag(GLcontext *ctx, int emit) +nv20_emit_frag(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_polygon.c b/src/mesa/drivers/dri/nouveau/nv20_state_polygon.c index 3a320e2dac..a6e237f8c4 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_polygon.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_polygon.c @@ -31,7 +31,7 @@ #include "nv20_driver.h" void -nv20_emit_point_mode(GLcontext *ctx, int emit) +nv20_emit_point_mode(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_raster.c b/src/mesa/drivers/dri/nouveau/nv20_state_raster.c index b43b29bb23..0fc7a3259d 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_raster.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_raster.c @@ -31,7 +31,7 @@ #include "nv20_driver.h" void -nv20_emit_logic_opcode(GLcontext *ctx, int emit) +nv20_emit_logic_opcode(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c index ea6b9b96db..cfff1fe839 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c @@ -37,7 +37,7 @@ #define TX_MATRIX(i) (NV20TCL_TX0_MATRIX(0) + 64 * (i)) void -nv20_emit_tex_gen(GLcontext *ctx, int emit) +nv20_emit_tex_gen(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_GEN0; struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -67,7 +67,7 @@ nv20_emit_tex_gen(GLcontext *ctx, int emit) } void -nv20_emit_tex_mat(GLcontext *ctx, int emit) +nv20_emit_tex_mat(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_MAT0; struct nouveau_context *nctx = to_nouveau_context(ctx); @@ -154,7 +154,7 @@ get_tex_format_rect(struct gl_texture_image *ti) } void -nv20_emit_tex_obj(GLcontext *ctx, int emit) +nv20_emit_tex_obj(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_TEX_OBJ0; struct nouveau_channel *chan = context_chan(ctx); @@ -251,7 +251,7 @@ nv20_emit_tex_obj(GLcontext *ctx, int emit) } void -nv20_emit_tex_shader(GLcontext *ctx, int emit) +nv20_emit_tex_shader(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c b/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c index 2daaae260c..b65cd9ad87 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_tnl.c @@ -55,7 +55,7 @@ NV20TCL_FRONT_MATERIAL_SHININESS(0)) void -nv20_emit_clip_plane(GLcontext *ctx, int emit) +nv20_emit_clip_plane(struct gl_context *ctx, int emit) { } @@ -86,7 +86,7 @@ get_material_bitmask(unsigned m) } void -nv20_emit_color_material(GLcontext *ctx, int emit) +nv20_emit_color_material(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); @@ -140,7 +140,7 @@ get_fog_source(unsigned source) } void -nv20_emit_fog(GLcontext *ctx, int emit) +nv20_emit_fog(struct gl_context *ctx, int emit) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -165,7 +165,7 @@ nv20_emit_fog(GLcontext *ctx, int emit) } void -nv20_emit_light_model(GLcontext *ctx, int emit) +nv20_emit_light_model(struct gl_context *ctx, int emit) { struct nouveau_channel *chan = context_chan(ctx); struct nouveau_grobj *kelvin = context_eng3d(ctx); @@ -187,7 +187,7 @@ nv20_emit_light_model(GLcontext *ctx, int emit) } void -nv20_emit_light_source(GLcontext *ctx, int emit) +nv20_emit_light_source(struct gl_context *ctx, int emit) { const int i = emit - NOUVEAU_STATE_LIGHT_SOURCE0; struct nouveau_channel *chan = context_chan(ctx); @@ -226,7 +226,7 @@ nv20_emit_light_source(GLcontext *ctx, int emit) ctx->Light.ColorMaterialBitmask & (1 << MAT_ATTRIB_##attr(side))) void -nv20_emit_material_ambient(GLcontext *ctx, int emit) +nv20_emit_material_ambient(struct gl_context *ctx, int emit) { const int side = emit - NOUVEAU_STATE_MATERIAL_FRONT_AMBIENT; struct nouveau_channel *chan = context_chan(ctx); @@ -269,7 +269,7 @@ nv20_emit_material_ambient(GLcontext *ctx, int emit) } void -nv20_emit_material_diffuse(GLcontext *ctx, int emit) +nv20_emit_material_diffuse(struct gl_context *ctx, int emit) { const int side = emit - NOUVEAU_STATE_MATERIAL_FRONT_DIFFUSE; struct nouveau_channel *chan = context_chan(ctx); @@ -292,7 +292,7 @@ nv20_emit_material_diffuse(GLcontext *ctx, int emit) } void -nv20_emit_material_specular(GLcontext *ctx, int emit) +nv20_emit_material_specular(struct gl_context *ctx, int emit) { const int side = emit - NOUVEAU_STATE_MATERIAL_FRONT_SPECULAR; struct nouveau_channel *chan = context_chan(ctx); @@ -311,7 +311,7 @@ nv20_emit_material_specular(GLcontext *ctx, int emit) } void -nv20_emit_material_shininess(GLcontext *ctx, int emit) +nv20_emit_material_shininess(struct gl_context *ctx, int emit) { const int side = emit - NOUVEAU_STATE_MATERIAL_FRONT_SHININESS; struct nouveau_channel *chan = context_chan(ctx); @@ -328,7 +328,7 @@ nv20_emit_material_shininess(GLcontext *ctx, int emit) } void -nv20_emit_modelview(GLcontext *ctx, int emit) +nv20_emit_modelview(struct gl_context *ctx, int emit) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); @@ -357,7 +357,7 @@ nv20_emit_modelview(GLcontext *ctx, int emit) } void -nv20_emit_projection(GLcontext *ctx, int emit) +nv20_emit_projection(struct gl_context *ctx, int emit) { struct nouveau_context *nctx = to_nouveau_context(ctx); struct nouveau_channel *chan = context_chan(ctx); diff --git a/src/mesa/drivers/dri/r128/r128_context.c b/src/mesa/drivers/dri/r128/r128_context.c index b917e0e0dc..274108005f 100644 --- a/src/mesa/drivers/dri/r128/r128_context.c +++ b/src/mesa/drivers/dri/r128/r128_context.c @@ -99,11 +99,11 @@ static const struct dri_debug_control debug_control[] = /* Create the device specific context. */ GLboolean r128CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate ) { - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; __DRIscreen *sPriv = driContextPriv->driScreenPriv; struct dd_function_table functions; r128ContextPtr rmesa; @@ -348,8 +348,8 @@ r128MakeCurrent( __DRIcontext *driContextPriv, newR128Ctx->driDrawable = driDrawPriv; _mesa_make_current( newR128Ctx->glCtx, - (GLframebuffer *) driDrawPriv->driverPrivate, - (GLframebuffer *) driReadPriv->driverPrivate ); + (struct gl_framebuffer *) driDrawPriv->driverPrivate, + (struct gl_framebuffer *) driReadPriv->driverPrivate ); newR128Ctx->new_state |= R128_NEW_WINDOW | R128_NEW_CLIP; } else { diff --git a/src/mesa/drivers/dri/r128/r128_context.h b/src/mesa/drivers/dri/r128/r128_context.h index 65ddb3bd23..0a06c43878 100644 --- a/src/mesa/drivers/dri/r128/r128_context.h +++ b/src/mesa/drivers/dri/r128/r128_context.h @@ -113,7 +113,7 @@ typedef void (*r128_point_func)( r128ContextPtr, struct r128_context { - GLcontext *glCtx; /* Mesa context */ + struct gl_context *glCtx; /* Mesa context */ /* Driver and hardware state management */ @@ -225,7 +225,7 @@ struct r128_context { extern GLboolean r128CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate ); diff --git a/src/mesa/drivers/dri/r128/r128_dd.c b/src/mesa/drivers/dri/r128/r128_dd.c index 64dec70cdd..0b7005eba6 100644 --- a/src/mesa/drivers/dri/r128/r128_dd.c +++ b/src/mesa/drivers/dri/r128/r128_dd.c @@ -45,7 +45,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* Return the width and height of the current color buffer. */ -static void r128GetBufferSize( GLframebuffer *buffer, +static void r128GetBufferSize( struct gl_framebuffer *buffer, GLuint *width, GLuint *height ) { GET_CURRENT_CONTEXT(ctx); @@ -59,7 +59,7 @@ static void r128GetBufferSize( GLframebuffer *buffer, /* Return various strings for glGetString(). */ -static const GLubyte *r128GetString( GLcontext *ctx, GLenum name ) +static const GLubyte *r128GetString( struct gl_context *ctx, GLenum name ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); static char buffer[128]; @@ -97,7 +97,7 @@ static const GLubyte *r128GetString( GLcontext *ctx, GLenum name ) * hardware. All commands that are normally sent to the ring are * already considered `flushed'. */ -static void r128Flush( GLcontext *ctx ) +static void r128Flush( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -118,7 +118,7 @@ static void r128Flush( GLcontext *ctx ) /* Make sure all commands have been sent to the hardware and have * completed processing. */ -static void r128Finish( GLcontext *ctx ) +static void r128Finish( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/r128/r128_ioctl.c b/src/mesa/drivers/dri/r128/r128_ioctl.c index 56758d971c..950e1d4fbd 100644 --- a/src/mesa/drivers/dri/r128/r128_ioctl.c +++ b/src/mesa/drivers/dri/r128/r128_ioctl.c @@ -398,7 +398,7 @@ void r128PageFlip( __DRIdrawable *dPriv ) * Buffer clear */ -static void r128Clear( GLcontext *ctx, GLbitfield mask ) +static void r128Clear( struct gl_context *ctx, GLbitfield mask ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); __DRIdrawable *dPriv = rmesa->driDrawable; diff --git a/src/mesa/drivers/dri/r128/r128_screen.c b/src/mesa/drivers/dri/r128/r128_screen.c index 7626a159d6..bbcb6ee180 100644 --- a/src/mesa/drivers/dri/r128/r128_screen.c +++ b/src/mesa/drivers/dri/r128/r128_screen.c @@ -262,7 +262,7 @@ r128DestroyScreen( __DRIscreen *sPriv ) static GLboolean r128CreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap ) { r128ScreenPtr screen = (r128ScreenPtr) driScrnPriv->private; @@ -349,7 +349,7 @@ r128CreateBuffer( __DRIscreen *driScrnPriv, static void r128DestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } @@ -359,7 +359,7 @@ r128SwapBuffers(__DRIdrawable *dPriv) { if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) { r128ContextPtr rmesa; - GLcontext *ctx; + struct gl_context *ctx; rmesa = (r128ContextPtr) dPriv->driContextPriv->driverPrivate; ctx = rmesa->glCtx; if (ctx->Visual.doubleBufferMode) { @@ -400,7 +400,7 @@ r128FillInModes( __DRIscreen *psp, unsigned stencil_bits, GLboolean have_back_buffer ) { __DRIconfig **configs; - __GLcontextModes * m; + struct gl_config * m; unsigned depth_buffer_factor; unsigned back_buffer_factor; GLenum fb_format; @@ -473,7 +473,7 @@ r128FillInModes( __DRIscreen *psp, * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig ** r128InitScreen(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/r128/r128_span.c b/src/mesa/drivers/dri/r128/r128_span.c index 2fbe93c590..307de56ee1 100644 --- a/src/mesa/drivers/dri/r128/r128_span.c +++ b/src/mesa/drivers/dri/r128/r128_span.c @@ -400,7 +400,7 @@ do { \ #include "stenciltmp.h" static void -r128SpanRenderStart( GLcontext *ctx ) +r128SpanRenderStart( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); FLUSH_BATCH(rmesa); @@ -409,7 +409,7 @@ r128SpanRenderStart( GLcontext *ctx ) } static void -r128SpanRenderFinish( GLcontext *ctx ) +r128SpanRenderFinish( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); _swrast_flush( ctx ); @@ -417,7 +417,7 @@ r128SpanRenderFinish( GLcontext *ctx ) UNLOCK_HARDWARE( rmesa ); } -void r128DDInitSpanFuncs( GLcontext *ctx ) +void r128DDInitSpanFuncs( struct gl_context *ctx ) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = r128SpanRenderStart; @@ -429,7 +429,7 @@ void r128DDInitSpanFuncs( GLcontext *ctx ) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -r128SetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis) +r128SetSpanFunctions(driRenderbuffer *drb, const struct gl_config *vis) { if (drb->Base.Format == MESA_FORMAT_RGB565) { r128InitPointers_RGB565(&drb->Base); diff --git a/src/mesa/drivers/dri/r128/r128_span.h b/src/mesa/drivers/dri/r128/r128_span.h index 9af4058129..adb571d4d0 100644 --- a/src/mesa/drivers/dri/r128/r128_span.h +++ b/src/mesa/drivers/dri/r128/r128_span.h @@ -37,9 +37,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "drirenderbuffer.h" -extern void r128DDInitSpanFuncs( GLcontext *ctx ); +extern void r128DDInitSpanFuncs( struct gl_context *ctx ); extern void -r128SetSpanFunctions(driRenderbuffer *rb, const GLvisual *vis); +r128SetSpanFunctions(driRenderbuffer *rb, const struct gl_config *vis); #endif diff --git a/src/mesa/drivers/dri/r128/r128_state.c b/src/mesa/drivers/dri/r128/r128_state.c index 9ad25f7f46..4a49e8fc70 100644 --- a/src/mesa/drivers/dri/r128/r128_state.c +++ b/src/mesa/drivers/dri/r128/r128_state.c @@ -125,7 +125,7 @@ static int blend_factor( r128ContextPtr rmesa, GLenum factor, GLboolean is_src ) } -static void r128UpdateAlphaMode( GLcontext *ctx ) +static void r128UpdateAlphaMode( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint a = rmesa->setup.misc_3d_state_cntl_reg; @@ -209,7 +209,7 @@ static void r128UpdateAlphaMode( GLcontext *ctx ) } } -static void r128DDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) +static void r128DDAlphaFunc( struct gl_context *ctx, GLenum func, GLfloat ref ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -217,7 +217,7 @@ static void r128DDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) rmesa->new_state |= R128_NEW_ALPHA; } -static void r128DDBlendEquationSeparate( GLcontext *ctx, +static void r128DDBlendEquationSeparate( struct gl_context *ctx, GLenum modeRGB, GLenum modeA ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -239,7 +239,7 @@ static void r128DDBlendEquationSeparate( GLcontext *ctx, rmesa->new_state |= R128_NEW_ALPHA; } -static void r128DDBlendFuncSeparate( GLcontext *ctx, +static void r128DDBlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -254,7 +254,7 @@ static void r128DDBlendFuncSeparate( GLcontext *ctx, */ static void -r128DDStencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, +r128DDStencilFuncSeparate( struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -302,7 +302,7 @@ r128DDStencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, } static void -r128DDStencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) +r128DDStencilMaskSeparate( struct gl_context *ctx, GLenum face, GLuint mask ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint refmask = (((ctx->Stencil.Ref[0] & 0xff) << 0) | @@ -315,7 +315,7 @@ r128DDStencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) } } -static void r128DDStencilOpSeparate( GLcontext *ctx, GLenum face, GLenum fail, +static void r128DDStencilOpSeparate( struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -414,7 +414,7 @@ static void r128DDStencilOpSeparate( GLcontext *ctx, GLenum face, GLenum fail, } } -static void r128DDClearStencil( GLcontext *ctx, GLint s ) +static void r128DDClearStencil( struct gl_context *ctx, GLint s ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -428,7 +428,7 @@ static void r128DDClearStencil( GLcontext *ctx, GLint s ) * Depth testing */ -static void r128UpdateZMode( GLcontext *ctx ) +static void r128UpdateZMode( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint z = rmesa->setup.z_sten_cntl_c; @@ -485,7 +485,7 @@ static void r128UpdateZMode( GLcontext *ctx ) } } -static void r128DDDepthFunc( GLcontext *ctx, GLenum func ) +static void r128DDDepthFunc( struct gl_context *ctx, GLenum func ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -493,7 +493,7 @@ static void r128DDDepthFunc( GLcontext *ctx, GLenum func ) rmesa->new_state |= R128_NEW_DEPTH; } -static void r128DDDepthMask( GLcontext *ctx, GLboolean flag ) +static void r128DDDepthMask( struct gl_context *ctx, GLboolean flag ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -501,7 +501,7 @@ static void r128DDDepthMask( GLcontext *ctx, GLboolean flag ) rmesa->new_state |= R128_NEW_DEPTH; } -static void r128DDClearDepth( GLcontext *ctx, GLclampd d ) +static void r128DDClearDepth( struct gl_context *ctx, GLclampd d ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -524,7 +524,7 @@ static void r128DDClearDepth( GLcontext *ctx, GLclampd d ) * Fog */ -static void r128UpdateFogAttrib( GLcontext *ctx ) +static void r128UpdateFogAttrib( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint t = rmesa->setup.tex_cntl_c; @@ -553,7 +553,7 @@ static void r128UpdateFogAttrib( GLcontext *ctx ) } } -static void r128DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) +static void r128DDFogfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -566,7 +566,7 @@ static void r128DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) * Clipping */ -static void r128UpdateClipping( GLcontext *ctx ) +static void r128UpdateClipping( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -622,7 +622,7 @@ static void r128UpdateClipping( GLcontext *ctx ) } } -static void r128DDScissor( GLcontext *ctx, +static void r128DDScissor( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -636,7 +636,7 @@ static void r128DDScissor( GLcontext *ctx, * Culling */ -static void r128UpdateCull( GLcontext *ctx ) +static void r128UpdateCull( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint f = rmesa->setup.pm4_vc_fpu_setup; @@ -675,7 +675,7 @@ static void r128UpdateCull( GLcontext *ctx ) } } -static void r128DDCullFace( GLcontext *ctx, GLenum mode ) +static void r128DDCullFace( struct gl_context *ctx, GLenum mode ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -683,7 +683,7 @@ static void r128DDCullFace( GLcontext *ctx, GLenum mode ) rmesa->new_state |= R128_NEW_CULL; } -static void r128DDFrontFace( GLcontext *ctx, GLenum mode ) +static void r128DDFrontFace( struct gl_context *ctx, GLenum mode ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -696,7 +696,7 @@ static void r128DDFrontFace( GLcontext *ctx, GLenum mode ) * Masks */ -static void r128UpdateMasks( GLcontext *ctx ) +static void r128UpdateMasks( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -712,7 +712,7 @@ static void r128UpdateMasks( GLcontext *ctx ) } } -static void r128DDColorMask( GLcontext *ctx, +static void r128DDColorMask( struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -731,7 +731,7 @@ static void r128DDColorMask( GLcontext *ctx, * sense to break them out of the core texture state update routines. */ -static void updateSpecularLighting( GLcontext *ctx ) +static void updateSpecularLighting( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint t = rmesa->setup.tex_cntl_c; @@ -761,7 +761,7 @@ static void updateSpecularLighting( GLcontext *ctx ) } -static void r128DDLightModelfv( GLcontext *ctx, GLenum pname, +static void r128DDLightModelfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -777,7 +777,7 @@ static void r128DDLightModelfv( GLcontext *ctx, GLenum pname, } } -static void r128DDShadeModel( GLcontext *ctx, GLenum mode ) +static void r128DDShadeModel( struct gl_context *ctx, GLenum mode ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint s = rmesa->setup.pm4_vc_fpu_setup; @@ -811,7 +811,7 @@ static void r128DDShadeModel( GLcontext *ctx, GLenum mode ) * Window position */ -static void r128UpdateWindow( GLcontext *ctx ) +static void r128UpdateWindow( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); int x = rmesa->driDrawable->x; @@ -834,7 +834,7 @@ static void r128UpdateWindow( GLcontext *ctx ) * Viewport */ -static void r128CalcViewport( GLcontext *ctx ) +static void r128CalcViewport( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -850,14 +850,14 @@ static void r128CalcViewport( GLcontext *ctx ) m[MAT_TZ] = v[MAT_TZ] * rmesa->depth_scale; } -static void r128Viewport( GLcontext *ctx, +static void r128Viewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { r128CalcViewport( ctx ); } -static void r128DepthRange( GLcontext *ctx, +static void r128DepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { r128CalcViewport( ctx ); @@ -868,7 +868,7 @@ static void r128DepthRange( GLcontext *ctx, * Miscellaneous */ -static void r128DDClearColor( GLcontext *ctx, +static void r128DDClearColor( struct gl_context *ctx, const GLfloat color[4] ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -883,7 +883,7 @@ static void r128DDClearColor( GLcontext *ctx, c[0], c[1], c[2], c[3] ); } -static void r128DDLogicOpCode( GLcontext *ctx, GLenum opcode ) +static void r128DDLogicOpCode( struct gl_context *ctx, GLenum opcode ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -894,7 +894,7 @@ static void r128DDLogicOpCode( GLcontext *ctx, GLenum opcode ) } } -static void r128DDDrawBuffer( GLcontext *ctx, GLenum mode ) +static void r128DDDrawBuffer( struct gl_context *ctx, GLenum mode ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -921,7 +921,7 @@ static void r128DDDrawBuffer( GLcontext *ctx, GLenum mode ) rmesa->new_state |= R128_NEW_WINDOW; } -static void r128DDReadBuffer( GLcontext *ctx, GLenum mode ) +static void r128DDReadBuffer( struct gl_context *ctx, GLenum mode ) { /* nothing, until we implement h/w glRead/CopyPixels or CopyTexImage */ } @@ -931,7 +931,7 @@ static void r128DDReadBuffer( GLcontext *ctx, GLenum mode ) * Polygon stipple */ -static void r128DDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) +static void r128DDPolygonStipple( struct gl_context *ctx, const GLubyte *mask ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint stipple[32], i; @@ -962,7 +962,7 @@ static void r128DDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) * Render mode */ -static void r128DDRenderMode( GLcontext *ctx, GLenum mode ) +static void r128DDRenderMode( struct gl_context *ctx, GLenum mode ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); FALLBACK( rmesa, R128_FALLBACK_RENDER_MODE, (mode != GL_RENDER) ); @@ -974,7 +974,7 @@ static void r128DDRenderMode( GLcontext *ctx, GLenum mode ) * State enable/disable */ -static void r128DDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) +static void r128DDEnable( struct gl_context *ctx, GLenum cap, GLboolean state ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -1206,7 +1206,7 @@ static void r128DDPrintState( const char *msg, GLuint flags ) (flags & R128_NEW_WINDOW) ? "window, " : "" ); } -void r128DDUpdateHWState( GLcontext *ctx ) +void r128DDUpdateHWState( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); int new_state = rmesa->new_state; @@ -1253,7 +1253,7 @@ void r128DDUpdateHWState( GLcontext *ctx ) } -static void r128DDInvalidateState( GLcontext *ctx, GLuint new_state ) +static void r128DDInvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -1404,7 +1404,7 @@ void r128DDInitState( r128ContextPtr rmesa ) /* Initialize the driver's state functions. */ -void r128DDInitStateFuncs( GLcontext *ctx ) +void r128DDInitStateFuncs( struct gl_context *ctx ) { ctx->Driver.UpdateState = r128DDInvalidateState; diff --git a/src/mesa/drivers/dri/r128/r128_state.h b/src/mesa/drivers/dri/r128/r128_state.h index a44327dfb3..55b0cbf4b7 100644 --- a/src/mesa/drivers/dri/r128/r128_state.h +++ b/src/mesa/drivers/dri/r128/r128_state.h @@ -38,10 +38,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r128_context.h" extern void r128DDInitState( r128ContextPtr rmesa ); -extern void r128DDInitStateFuncs( GLcontext *ctx ); +extern void r128DDInitStateFuncs( struct gl_context *ctx ); -extern void r128DDUpdateState( GLcontext *ctx ); -extern void r128DDUpdateHWState( GLcontext *ctx ); +extern void r128DDUpdateState( struct gl_context *ctx ); +extern void r128DDUpdateHWState( struct gl_context *ctx ); extern void r128EmitHwStateLocked( r128ContextPtr rmesa ); diff --git a/src/mesa/drivers/dri/r128/r128_tex.c b/src/mesa/drivers/dri/r128/r128_tex.c index b5a19b510a..ba3305e076 100644 --- a/src/mesa/drivers/dri/r128/r128_tex.c +++ b/src/mesa/drivers/dri/r128/r128_tex.c @@ -43,7 +43,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/teximage.h" #include "main/texobj.h" #include "main/imports.h" -#include "main/texobj.h" #include "main/macros.h" #include "xmlpool.h" @@ -174,7 +173,7 @@ static r128TexObjPtr r128AllocTexObj( struct gl_texture_object *texObj ) /* Called by the _mesa_store_teximage[123]d() functions. */ static gl_format -r128ChooseTextureFormat( GLcontext *ctx, GLint internalFormat, +r128ChooseTextureFormat( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -288,7 +287,7 @@ r128ChooseTextureFormat( GLcontext *ctx, GLint internalFormat, } -static void r128TexImage1D( GLcontext *ctx, GLenum target, GLint level, +static void r128TexImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -318,7 +317,7 @@ static void r128TexImage1D( GLcontext *ctx, GLenum target, GLint level, } -static void r128TexSubImage1D( GLcontext *ctx, +static void r128TexSubImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -351,7 +350,7 @@ static void r128TexSubImage1D( GLcontext *ctx, } -static void r128TexImage2D( GLcontext *ctx, GLenum target, GLint level, +static void r128TexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -381,7 +380,7 @@ static void r128TexImage2D( GLcontext *ctx, GLenum target, GLint level, } -static void r128TexSubImage2D( GLcontext *ctx, +static void r128TexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -413,7 +412,7 @@ static void r128TexSubImage2D( GLcontext *ctx, } -static void r128TexEnv( GLcontext *ctx, GLenum target, +static void r128TexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -501,7 +500,7 @@ static void r128TexEnv( GLcontext *ctx, GLenum target, } -static void r128TexParameter( GLcontext *ctx, GLenum target, +static void r128TexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj, GLenum pname, const GLfloat *params ) { @@ -552,7 +551,7 @@ static void r128TexParameter( GLcontext *ctx, GLenum target, } } -static void r128BindTexture( GLcontext *ctx, GLenum target, +static void r128BindTexture( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj ) { if ( R128_DEBUG & DEBUG_VERBOSE_API ) { @@ -565,7 +564,7 @@ static void r128BindTexture( GLcontext *ctx, GLenum target, } -static void r128DeleteTexture( GLcontext *ctx, +static void r128DeleteTexture( struct gl_context *ctx, struct gl_texture_object *tObj ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -589,7 +588,7 @@ static void r128DeleteTexture( GLcontext *ctx, * texture object from the core mesa gl_texture_object. Not done at this time. */ static struct gl_texture_object * -r128NewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +r128NewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; obj = _mesa_new_texture_object(ctx, name, target); diff --git a/src/mesa/drivers/dri/r128/r128_tex.h b/src/mesa/drivers/dri/r128/r128_tex.h index 7df8decf76..98e9b04ad0 100644 --- a/src/mesa/drivers/dri/r128/r128_tex.h +++ b/src/mesa/drivers/dri/r128/r128_tex.h @@ -35,7 +35,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __R128_TEX_H__ #define __R128_TEX_H__ -extern void r128UpdateTextureState( GLcontext *ctx ); +extern void r128UpdateTextureState( struct gl_context *ctx ); extern void r128UploadTexImages( r128ContextPtr rmesa, r128TexObjPtr t ); diff --git a/src/mesa/drivers/dri/r128/r128_texstate.c b/src/mesa/drivers/dri/r128/r128_texstate.c index 2505b5cd65..1144163941 100644 --- a/src/mesa/drivers/dri/r128/r128_texstate.c +++ b/src/mesa/drivers/dri/r128/r128_texstate.c @@ -192,7 +192,7 @@ static void r128SetTexImages( r128ContextPtr rmesa, #define INPUT_PREVIOUS (R128_INPUT_FACTOR_PREV_COLOR | \ R128_INP_FACTOR_A_PREV_ALPHA) -static GLboolean r128UpdateTextureEnv( GLcontext *ctx, int unit ) +static GLboolean r128UpdateTextureEnv( struct gl_context *ctx, int unit ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLint source = rmesa->tmu_source[unit]; @@ -476,7 +476,7 @@ static GLboolean r128UpdateTextureEnv( GLcontext *ctx, int unit ) return GL_TRUE; } -static void disable_tex( GLcontext *ctx, int unit ) +static void disable_tex( struct gl_context *ctx, int unit ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -499,7 +499,7 @@ static void disable_tex( GLcontext *ctx, int unit ) rmesa->blend_flags &= ~R128_BLEND_MULTITEX; } -static GLboolean enable_tex_2d( GLcontext *ctx, int unit ) +static GLboolean enable_tex_2d( struct gl_context *ctx, int unit ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); const int source = rmesa->tmu_source[unit]; @@ -524,7 +524,7 @@ static GLboolean enable_tex_2d( GLcontext *ctx, int unit ) return GL_TRUE; } -static GLboolean update_tex_common( GLcontext *ctx, int unit ) +static GLboolean update_tex_common( struct gl_context *ctx, int unit ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); const int source = rmesa->tmu_source[unit]; @@ -597,7 +597,7 @@ static GLboolean update_tex_common( GLcontext *ctx, int unit ) return r128UpdateTextureEnv( ctx, unit ); } -static GLboolean updateTextureUnit( GLcontext *ctx, int unit ) +static GLboolean updateTextureUnit( struct gl_context *ctx, int unit ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); const int source = rmesa->tmu_source[unit]; @@ -618,7 +618,7 @@ static GLboolean updateTextureUnit( GLcontext *ctx, int unit ) } -void r128UpdateTextureState( GLcontext *ctx ) +void r128UpdateTextureState( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLboolean ok; diff --git a/src/mesa/drivers/dri/r128/r128_tris.c b/src/mesa/drivers/dri/r128/r128_tris.c index 9ea2a9d162..92c8a4eb6b 100644 --- a/src/mesa/drivers/dri/r128/r128_tris.c +++ b/src/mesa/drivers/dri/r128/r128_tris.c @@ -62,8 +62,8 @@ static const GLuint hw_prim[GL_POLYGON+1] = { R128_CCE_VC_CNTL_PRIM_TYPE_TRI_LIST, }; -static void r128RasterPrimitive( GLcontext *ctx, GLuint hwprim ); -static void r128RenderPrimitive( GLcontext *ctx, GLenum prim ); +static void r128RasterPrimitive( struct gl_context *ctx, GLuint hwprim ); +static void r128RenderPrimitive( struct gl_context *ctx, GLenum prim ); /*********************************************************************** @@ -344,7 +344,7 @@ r128_fallback_tri( r128ContextPtr rmesa, r128Vertex *v1, r128Vertex *v2 ) { - GLcontext *ctx = rmesa->glCtx; + struct gl_context *ctx = rmesa->glCtx; SWvertex v[3]; _swsetup_Translate( ctx, v0, &v[0] ); _swsetup_Translate( ctx, v1, &v[1] ); @@ -358,7 +358,7 @@ r128_fallback_line( r128ContextPtr rmesa, r128Vertex *v0, r128Vertex *v1 ) { - GLcontext *ctx = rmesa->glCtx; + struct gl_context *ctx = rmesa->glCtx; SWvertex v[2]; _swsetup_Translate( ctx, v0, &v[0] ); _swsetup_Translate( ctx, v1, &v[1] ); @@ -370,7 +370,7 @@ static void r128_fallback_point( r128ContextPtr rmesa, r128Vertex *v0 ) { - GLcontext *ctx = rmesa->glCtx; + struct gl_context *ctx = rmesa->glCtx; SWvertex v[1]; _swsetup_Translate( ctx, v0, &v[0] ); _swrast_Point( ctx, &v[0] ); @@ -426,7 +426,7 @@ r128_fallback_point( r128ContextPtr rmesa, #define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED) #define _R128_NEW_RENDER_STATE (ANY_FALLBACK_FLAGS | ANY_RASTER_FLAGS) -void r128ChooseRenderState(GLcontext *ctx) +void r128ChooseRenderState(struct gl_context *ctx) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint flags = ctx->_TriangleCaps; @@ -479,7 +479,7 @@ void r128ChooseRenderState(GLcontext *ctx) /* Validate state at pipeline start */ /**********************************************************************/ -static void r128RunPipeline( GLcontext *ctx ) +static void r128RunPipeline( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -509,7 +509,7 @@ static void r128RunPipeline( GLcontext *ctx ) * primitives. */ -static void r128RasterPrimitive( GLcontext *ctx, GLuint hwprim ) +static void r128RasterPrimitive( struct gl_context *ctx, GLuint hwprim ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -531,7 +531,7 @@ static void r128RasterPrimitive( GLcontext *ctx, GLuint hwprim ) } } -static void r128SetupAntialias( GLcontext *ctx, GLenum prim ) +static void r128SetupAntialias( struct gl_context *ctx, GLenum prim ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -553,7 +553,7 @@ static void r128SetupAntialias( GLcontext *ctx, GLenum prim ) } } -static void r128RenderPrimitive( GLcontext *ctx, GLenum prim ) +static void r128RenderPrimitive( struct gl_context *ctx, GLenum prim ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); GLuint hw = hw_prim[prim]; @@ -584,7 +584,7 @@ do { \ offset += (SIZE); \ } while (0) -static void r128RenderStart( GLcontext *ctx ) +static void r128RenderStart( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -681,7 +681,7 @@ static void r128RenderStart( GLcontext *ctx ) } } -static void r128RenderFinish( GLcontext *ctx ) +static void r128RenderFinish( struct gl_context *ctx ) { if (R128_CONTEXT(ctx)->RenderIndex & R128_FALLBACK_BIT) _swrast_flush( ctx ); @@ -717,7 +717,7 @@ static const char *getFallbackString(GLuint bit) return fallbackStrings[i]; } -void r128Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void r128Fallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { TNLcontext *tnl = TNL_CONTEXT(ctx); r128ContextPtr rmesa = R128_CONTEXT(ctx); @@ -768,7 +768,7 @@ void r128Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ) /* Initialization. */ /**********************************************************************/ -void r128InitTriFuncs( GLcontext *ctx ) +void r128InitTriFuncs( struct gl_context *ctx ) { r128ContextPtr rmesa = R128_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/r128/r128_tris.h b/src/mesa/drivers/dri/r128/r128_tris.h index c0667edb61..a139497765 100644 --- a/src/mesa/drivers/dri/r128/r128_tris.h +++ b/src/mesa/drivers/dri/r128/r128_tris.h @@ -37,10 +37,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/mtypes.h" -extern void r128InitTriFuncs( GLcontext *ctx ); -extern void r128ChooseRenderState( GLcontext *ctx ); +extern void r128InitTriFuncs( struct gl_context *ctx ); +extern void r128ChooseRenderState( struct gl_context *ctx ); -extern void r128Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void r128Fallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( rmesa, bit, mode ) r128Fallback( rmesa->glCtx, bit, mode ) diff --git a/src/mesa/drivers/dri/r200/r200_blit.c b/src/mesa/drivers/dri/r200/r200_blit.c index e187fc0f61..05a15c444c 100644 --- a/src/mesa/drivers/dri/r200/r200_blit.c +++ b/src/mesa/drivers/dri/r200/r200_blit.c @@ -444,7 +444,7 @@ static inline void emit_draw_packet(struct r200_context *r200, * @param[in] height region height * @param[in] flip_y set if y coords of the source image need to be flipped */ -unsigned r200_blit(GLcontext *ctx, +unsigned r200_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r200/r200_blit.h b/src/mesa/drivers/dri/r200/r200_blit.h index 53206f0b47..56018b9c0e 100644 --- a/src/mesa/drivers/dri/r200/r200_blit.h +++ b/src/mesa/drivers/dri/r200/r200_blit.h @@ -32,7 +32,7 @@ void r200_blit_init(struct r200_context *r200); unsigned r200_check_blit(gl_format mesa_format); -unsigned r200_blit(GLcontext *ctx, +unsigned r200_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r200/r200_cmdbuf.c b/src/mesa/drivers/dri/r200/r200_cmdbuf.c index ad43a8ca92..931a9ecf8f 100644 --- a/src/mesa/drivers/dri/r200/r200_cmdbuf.c +++ b/src/mesa/drivers/dri/r200/r200_cmdbuf.c @@ -167,7 +167,7 @@ static void r200FireEB(r200ContextPtr rmesa, int vertex_count, int type) } } -void r200FlushElts(GLcontext *ctx) +void r200FlushElts(struct gl_context *ctx) { r200ContextPtr rmesa = R200_CONTEXT(ctx); int nr, elt_used = rmesa->tcl.elt_used; diff --git a/src/mesa/drivers/dri/r200/r200_context.c b/src/mesa/drivers/dri/r200/r200_context.c index 3b85e84d90..723e31401d 100644 --- a/src/mesa/drivers/dri/r200/r200_context.c +++ b/src/mesa/drivers/dri/r200/r200_context.c @@ -80,7 +80,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* Return various strings for glGetString(). */ -static const GLubyte *r200GetString( GLcontext *ctx, GLenum name ) +static const GLubyte *r200GetString( struct gl_context *ctx, GLenum name ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); static char buffer[128]; @@ -271,7 +271,7 @@ static void r200_init_vtbl(radeonContextPtr radeon) /* Create the device specific rendering context. */ GLboolean r200CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate) { @@ -279,7 +279,7 @@ GLboolean r200CreateContext( gl_api api, radeonScreenPtr screen = (radeonScreenPtr)(sPriv->private); struct dd_function_table functions; r200ContextPtr rmesa; - GLcontext *ctx; + struct gl_context *ctx; int i; int tcl_mode; diff --git a/src/mesa/drivers/dri/r200/r200_context.h b/src/mesa/drivers/dri/r200/r200_context.h index 305958f5d7..657902fcaa 100644 --- a/src/mesa/drivers/dri/r200/r200_context.h +++ b/src/mesa/drivers/dri/r200/r200_context.h @@ -638,7 +638,7 @@ struct r200_context { extern void r200DestroyContext( __DRIcontext *driContextPriv ); extern GLboolean r200CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate); extern GLboolean r200MakeCurrent( __DRIcontext *driContextPriv, diff --git a/src/mesa/drivers/dri/r200/r200_fragshader.c b/src/mesa/drivers/dri/r200/r200_fragshader.c index 2a9268dd34..b1d045c5ca 100644 --- a/src/mesa/drivers/dri/r200/r200_fragshader.c +++ b/src/mesa/drivers/dri/r200/r200_fragshader.c @@ -121,7 +121,7 @@ static GLuint dstmask_table[8] = R200_TXC_OUTPUT_MASK_RGB }; -static void r200UpdateFSArith( GLcontext *ctx ) +static void r200UpdateFSArith( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint *afs_cmd; @@ -322,7 +322,7 @@ static void r200UpdateFSArith( GLcontext *ctx ) rmesa->afs_loaded = ctx->ATIFragmentShader.Current; } -static void r200UpdateFSRouting( GLcontext *ctx ) { +static void r200UpdateFSRouting( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); const struct ati_fragment_shader *shader = ctx->ATIFragmentShader.Current; GLuint reg; @@ -499,7 +499,7 @@ static void r200UpdateFSRouting( GLcontext *ctx ) { } } -static void r200UpdateFSConstants( GLcontext *ctx ) +static void r200UpdateFSConstants( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); const struct ati_fragment_shader *shader = ctx->ATIFragmentShader.Current; @@ -537,7 +537,7 @@ static void r200UpdateFSConstants( GLcontext *ctx ) * stored in some DriverData object attached to the mesa atifs object, i.e. binding a * shader wouldn't force us to "recompile" the shader). */ -void r200UpdateFragmentShader( GLcontext *ctx ) +void r200UpdateFragmentShader( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/r200/r200_ioctl.c b/src/mesa/drivers/dri/r200/r200_ioctl.c index df73de5394..02201cb53d 100644 --- a/src/mesa/drivers/dri/r200/r200_ioctl.c +++ b/src/mesa/drivers/dri/r200/r200_ioctl.c @@ -54,7 +54,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define R200_TIMEOUT 512 #define R200_IDLE_RETRY 16 -static void r200KernelClear(GLcontext *ctx, GLuint flags) +static void r200KernelClear(struct gl_context *ctx, GLuint flags) { r200ContextPtr rmesa = R200_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -180,7 +180,7 @@ static void r200KernelClear(GLcontext *ctx, GLuint flags) /* ================================================================ * Buffer clear */ -static void r200Clear( GLcontext *ctx, GLbitfield mask ) +static void r200Clear( struct gl_context *ctx, GLbitfield mask ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); diff --git a/src/mesa/drivers/dri/r200/r200_ioctl.h b/src/mesa/drivers/dri/r200/r200_ioctl.h index c5dca89bc7..f2527189aa 100644 --- a/src/mesa/drivers/dri/r200/r200_ioctl.h +++ b/src/mesa/drivers/dri/r200/r200_ioctl.h @@ -54,7 +54,7 @@ extern void r200EmitVbufPrim( r200ContextPtr rmesa, GLuint primitive, GLuint vertex_nr ); -extern void r200FlushElts(GLcontext *ctx); +extern void r200FlushElts(struct gl_context *ctx); extern GLushort *r200AllocEltsOpenEnded( r200ContextPtr rmesa, GLuint primitive, diff --git a/src/mesa/drivers/dri/r200/r200_maos.h b/src/mesa/drivers/dri/r200/r200_maos.h index 16a70475e1..f58f77d8db 100644 --- a/src/mesa/drivers/dri/r200/r200_maos.h +++ b/src/mesa/drivers/dri/r200/r200_maos.h @@ -37,6 +37,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r200_context.h" -extern void r200EmitArrays( GLcontext *ctx, GLubyte *vimap_rev ); +extern void r200EmitArrays( struct gl_context *ctx, GLubyte *vimap_rev ); #endif diff --git a/src/mesa/drivers/dri/r200/r200_maos_arrays.c b/src/mesa/drivers/dri/r200/r200_maos_arrays.c index aecba7f894..8a047e6419 100644 --- a/src/mesa/drivers/dri/r200/r200_maos_arrays.c +++ b/src/mesa/drivers/dri/r200/r200_maos_arrays.c @@ -70,7 +70,7 @@ do { \ } while (0) #endif -static void r200_emit_vecfog(GLcontext *ctx, struct radeon_aos *aos, +static void r200_emit_vecfog(struct gl_context *ctx, struct radeon_aos *aos, GLvoid *data, int stride, int count) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); @@ -103,7 +103,7 @@ static void r200_emit_vecfog(GLcontext *ctx, struct radeon_aos *aos, /* Emit any changed arrays to new GART memory, re-emit a packet to * update the arrays. */ -void r200EmitArrays( GLcontext *ctx, GLubyte *vimap_rev ) +void r200EmitArrays( struct gl_context *ctx, GLubyte *vimap_rev ) { r200ContextPtr rmesa = R200_CONTEXT( ctx ); struct vertex_buffer *VB = &TNL_CONTEXT( ctx )->vb; diff --git a/src/mesa/drivers/dri/r200/r200_state.c b/src/mesa/drivers/dri/r200/r200_state.c index 29d7bed8b6..b523edcb5d 100644 --- a/src/mesa/drivers/dri/r200/r200_state.c +++ b/src/mesa/drivers/dri/r200/r200_state.c @@ -63,7 +63,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * Alpha blending */ -static void r200AlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) +static void r200AlphaFunc( struct gl_context *ctx, GLenum func, GLfloat ref ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); int pp_misc = rmesa->hw.ctx.cmd[CTX_PP_MISC]; @@ -106,7 +106,7 @@ static void r200AlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) rmesa->hw.ctx.cmd[CTX_PP_MISC] = pp_misc; } -static void r200BlendColor( GLcontext *ctx, const GLfloat cf[4] ) +static void r200BlendColor( struct gl_context *ctx, const GLfloat cf[4] ) { GLubyte color[4]; r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -199,7 +199,7 @@ static int blend_factor( GLenum factor, GLboolean is_src ) * and GL_FUNC_REVERSE_SUBTRACT will cause wrong results otherwise for * unknown reasons. */ -static void r200_set_blend_state( GLcontext * ctx ) +static void r200_set_blend_state( struct gl_context * ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint cntl = rmesa->hw.ctx.cmd[CTX_RB3D_CNTL] & @@ -323,13 +323,13 @@ static void r200_set_blend_state( GLcontext * ctx ) } -static void r200BlendEquationSeparate( GLcontext *ctx, +static void r200BlendEquationSeparate( struct gl_context *ctx, GLenum modeRGB, GLenum modeA ) { r200_set_blend_state( ctx ); } -static void r200BlendFuncSeparate( GLcontext *ctx, +static void r200BlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -341,7 +341,7 @@ static void r200BlendFuncSeparate( GLcontext *ctx, * Depth testing */ -static void r200DepthFunc( GLcontext *ctx, GLenum func ) +static void r200DepthFunc( struct gl_context *ctx, GLenum func ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -376,7 +376,7 @@ static void r200DepthFunc( GLcontext *ctx, GLenum func ) } } -static void r200ClearDepth( GLcontext *ctx, GLclampd d ) +static void r200ClearDepth( struct gl_context *ctx, GLclampd d ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint format = (rmesa->hw.ctx.cmd[CTX_RB3D_ZSTENCILCNTL] & @@ -392,7 +392,7 @@ static void r200ClearDepth( GLcontext *ctx, GLclampd d ) } } -static void r200DepthMask( GLcontext *ctx, GLboolean flag ) +static void r200DepthMask( struct gl_context *ctx, GLboolean flag ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); R200_STATECHANGE( rmesa, ctx ); @@ -410,7 +410,7 @@ static void r200DepthMask( GLcontext *ctx, GLboolean flag ) */ -static void r200Fogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) +static void r200Fogfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); union { int i; float f; } c, d; @@ -526,7 +526,7 @@ static void r200Fogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) * Culling */ -static void r200CullFace( GLcontext *ctx, GLenum unused ) +static void r200CullFace( struct gl_context *ctx, GLenum unused ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint s = rmesa->hw.set.cmd[SET_SE_CNTL]; @@ -563,7 +563,7 @@ static void r200CullFace( GLcontext *ctx, GLenum unused ) } } -static void r200FrontFace( GLcontext *ctx, GLenum mode ) +static void r200FrontFace( struct gl_context *ctx, GLenum mode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -591,7 +591,7 @@ static void r200FrontFace( GLcontext *ctx, GLenum mode ) /* ============================================================= * Point state */ -static void r200PointSize( GLcontext *ctx, GLfloat size ) +static void r200PointSize( struct gl_context *ctx, GLfloat size ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLfloat *fcmd = (GLfloat *)rmesa->hw.ptp.cmd; @@ -612,7 +612,7 @@ static void r200PointSize( GLcontext *ctx, GLfloat size ) fcmd[PTP_VPORT_SCALE_PTSIZE] = ctx->Point.Size; } -static void r200PointParameter( GLcontext *ctx, GLenum pname, const GLfloat *params) +static void r200PointParameter( struct gl_context *ctx, GLenum pname, const GLfloat *params) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLfloat *fcmd = (GLfloat *)rmesa->hw.ptp.cmd; @@ -680,7 +680,7 @@ static void r200PointParameter( GLcontext *ctx, GLenum pname, const GLfloat *par /* ============================================================= * Line state */ -static void r200LineWidth( GLcontext *ctx, GLfloat widthf ) +static void r200LineWidth( struct gl_context *ctx, GLfloat widthf ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -701,7 +701,7 @@ static void r200LineWidth( GLcontext *ctx, GLfloat widthf ) } } -static void r200LineStipple( GLcontext *ctx, GLint factor, GLushort pattern ) +static void r200LineStipple( struct gl_context *ctx, GLint factor, GLushort pattern ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -714,7 +714,7 @@ static void r200LineStipple( GLcontext *ctx, GLint factor, GLushort pattern ) /* ============================================================= * Masks */ -static void r200ColorMask( GLcontext *ctx, +static void r200ColorMask( struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -752,7 +752,7 @@ static void r200ColorMask( GLcontext *ctx, * Polygon state */ -static void r200PolygonOffset( GLcontext *ctx, +static void r200PolygonOffset( struct gl_context *ctx, GLfloat factor, GLfloat units ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -770,7 +770,7 @@ static void r200PolygonOffset( GLcontext *ctx, rmesa->hw.zbs.cmd[ZBS_SE_ZBIAS_CONSTANT] = constant.ui32; } -static void r200PolygonMode( GLcontext *ctx, GLenum face, GLenum mode ) +static void r200PolygonMode( struct gl_context *ctx, GLenum face, GLenum mode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLboolean flag = (ctx->_TriangleCaps & DD_TRI_UNFILLED) != 0; @@ -797,7 +797,7 @@ static void r200PolygonMode( GLcontext *ctx, GLenum face, GLenum mode ) /* Examine lighting and texture state to determine if separate specular * should be enabled. */ -static void r200UpdateSpecular( GLcontext *ctx ) +static void r200UpdateSpecular( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); uint32_t p = rmesa->hw.ctx.cmd[CTX_PP_CNTL]; @@ -871,7 +871,7 @@ static void r200UpdateSpecular( GLcontext *ctx ) /* Update on colormaterial, material emmissive/ambient, * lightmodel.globalambient */ -static void update_global_ambient( GLcontext *ctx ) +static void update_global_ambient( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); float *fcmd = (float *)R200_DB_STATE( glt ); @@ -902,7 +902,7 @@ static void update_global_ambient( GLcontext *ctx ) * - light[p].colors * - light[p].enabled */ -static void update_light_colors( GLcontext *ctx, GLuint p ) +static void update_light_colors( struct gl_context *ctx, GLuint p ) { struct gl_light *l = &ctx->Light.Light[p]; @@ -920,7 +920,7 @@ static void update_light_colors( GLcontext *ctx, GLuint p ) } } -static void r200ColorMaterial( GLcontext *ctx, GLenum face, GLenum mode ) +static void r200ColorMaterial( struct gl_context *ctx, GLenum face, GLenum mode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint light_model_ctl1 = rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL_1]; @@ -1022,7 +1022,7 @@ static void r200ColorMaterial( GLcontext *ctx, GLenum face, GLenum mode ) } -void r200UpdateMaterial( GLcontext *ctx ) +void r200UpdateMaterial( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLfloat (*mat)[4] = ctx->Light.Material.Attrib; @@ -1117,7 +1117,7 @@ void r200UpdateMaterial( GLcontext *ctx ) * lighting space (model or eye), hence dependencies on _NEW_MODELVIEW * and _MESA_NEW_NEED_EYE_COORDS. */ -static void update_light( GLcontext *ctx ) +static void update_light( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1177,7 +1177,7 @@ static void update_light( GLcontext *ctx ) } } -static void r200Lightfv( GLcontext *ctx, GLenum light, +static void r200Lightfv( struct gl_context *ctx, GLenum light, GLenum pname, const GLfloat *params ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1288,7 +1288,7 @@ static void r200Lightfv( GLcontext *ctx, GLenum light, } } -static void r200UpdateLocalViewer ( GLcontext *ctx ) +static void r200UpdateLocalViewer ( struct gl_context *ctx ) { /* It looks like for the texgen modes GL_SPHERE_MAP, GL_NORMAL_MAP and GL_REFLECTION_MAP we need R200_LOCAL_VIEWER set (fglrx does exactly that @@ -1308,7 +1308,7 @@ static void r200UpdateLocalViewer ( GLcontext *ctx ) rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL_0] &= ~R200_LOCAL_VIEWER; } -static void r200LightModelfv( GLcontext *ctx, GLenum pname, +static void r200LightModelfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1343,7 +1343,7 @@ static void r200LightModelfv( GLcontext *ctx, GLenum pname, } } -static void r200ShadeModel( GLcontext *ctx, GLenum mode ) +static void r200ShadeModel( struct gl_context *ctx, GLenum mode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint s = rmesa->hw.set.cmd[SET_SE_CNTL]; @@ -1384,7 +1384,7 @@ static void r200ShadeModel( GLcontext *ctx, GLenum mode ) * User clip planes */ -static void r200ClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) +static void r200ClipPlane( struct gl_context *ctx, GLenum plane, const GLfloat *eq ) { GLint p = (GLint) plane - (GLint) GL_CLIP_PLANE0; r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1397,7 +1397,7 @@ static void r200ClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) rmesa->hw.ucp[p].cmd[UCP_W] = ip[3]; } -static void r200UpdateClipPlanes( GLcontext *ctx ) +static void r200UpdateClipPlanes( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint p; @@ -1421,7 +1421,7 @@ static void r200UpdateClipPlanes( GLcontext *ctx ) */ static void -r200StencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, +r200StencilFuncSeparate( struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1466,7 +1466,7 @@ r200StencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, } static void -r200StencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) +r200StencilMaskSeparate( struct gl_context *ctx, GLenum face, GLuint mask ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1477,7 +1477,7 @@ r200StencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) } static void -r200StencilOpSeparate( GLcontext *ctx, GLenum face, GLenum fail, +r200StencilOpSeparate( struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1569,7 +1569,7 @@ r200StencilOpSeparate( GLcontext *ctx, GLenum face, GLenum fail, } } -static void r200ClearStencil( GLcontext *ctx, GLint s ) +static void r200ClearStencil( struct gl_context *ctx, GLint s ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1588,7 +1588,7 @@ static void r200ClearStencil( GLcontext *ctx, GLint s ) * Called when window size or position changes or viewport or depth range * state is changed. We update the hardware viewport state here. */ -void r200UpdateWindow( GLcontext *ctx ) +void r200UpdateWindow( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -1624,7 +1624,7 @@ void r200UpdateWindow( GLcontext *ctx ) rmesa->hw.vpt.cmd[VPT_SE_VPORT_ZOFFSET] = tz.ui32; } -void r200_vtbl_update_scissor( GLcontext *ctx ) +void r200_vtbl_update_scissor( struct gl_context *ctx ) { r200ContextPtr r200 = R200_CONTEXT(ctx); unsigned x1, y1, x2, y2; @@ -1650,7 +1650,7 @@ void r200_vtbl_update_scissor( GLcontext *ctx ) } -static void r200Viewport( GLcontext *ctx, GLint x, GLint y, +static void r200Viewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { /* Don't pipeline viewport changes, conflict with window offset @@ -1662,13 +1662,13 @@ static void r200Viewport( GLcontext *ctx, GLint x, GLint y, radeon_viewport(ctx, x, y, width, height); } -static void r200DepthRange( GLcontext *ctx, GLclampd nearval, +static void r200DepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { r200UpdateWindow( ctx ); } -void r200UpdateViewportOffset( GLcontext *ctx ) +void r200UpdateViewportOffset( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -1724,7 +1724,7 @@ void r200UpdateViewportOffset( GLcontext *ctx ) * Miscellaneous */ -static void r200ClearColor( GLcontext *ctx, const GLfloat c[4] ) +static void r200ClearColor( struct gl_context *ctx, const GLfloat c[4] ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLubyte color[4]; @@ -1743,7 +1743,7 @@ static void r200ClearColor( GLcontext *ctx, const GLfloat c[4] ) } -static void r200RenderMode( GLcontext *ctx, GLenum mode ) +static void r200RenderMode( struct gl_context *ctx, GLenum mode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); FALLBACK( rmesa, R200_FALLBACK_RENDER_MODE, (mode != GL_RENDER) ); @@ -1769,7 +1769,7 @@ static GLuint r200_rop_tab[] = { R200_ROP_SET, }; -static void r200LogicOpCode( GLcontext *ctx, GLenum opcode ) +static void r200LogicOpCode( struct gl_context *ctx, GLenum opcode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint rop = (GLuint)opcode - GL_CLEAR; @@ -1784,7 +1784,7 @@ static void r200LogicOpCode( GLcontext *ctx, GLenum opcode ) * State enable/disable */ -static void r200Enable( GLcontext *ctx, GLenum cap, GLboolean state ) +static void r200Enable( struct gl_context *ctx, GLenum cap, GLboolean state ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint p, flag; @@ -2168,7 +2168,7 @@ static void r200Enable( GLcontext *ctx, GLenum cap, GLboolean state ) } -void r200LightingSpaceChange( GLcontext *ctx ) +void r200LightingSpaceChange( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLboolean tmp; @@ -2225,7 +2225,7 @@ static void upload_matrix_t( r200ContextPtr rmesa, const GLfloat *src, int idx ) } -static void update_texturematrix( GLcontext *ctx ) +static void update_texturematrix( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT( ctx ); GLuint tpc = rmesa->hw.tcg.cmd[TCG_TEX_PROC_CTL_0]; @@ -2283,7 +2283,7 @@ static void update_texturematrix( GLcontext *ctx ) } } -static GLboolean r200ValidateBuffers(GLcontext *ctx) +static GLboolean r200ValidateBuffers(struct gl_context *ctx) { r200ContextPtr rmesa = R200_CONTEXT(ctx); struct radeon_renderbuffer *rrb; @@ -2333,7 +2333,7 @@ static GLboolean r200ValidateBuffers(GLcontext *ctx) return GL_TRUE; } -GLboolean r200ValidateState( GLcontext *ctx ) +GLboolean r200ValidateState( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint new_state = rmesa->radeon.NewGLState; @@ -2405,7 +2405,7 @@ GLboolean r200ValidateState( GLcontext *ctx ) } -static void r200InvalidateState( GLcontext *ctx, GLuint new_state ) +static void r200InvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -2420,7 +2420,7 @@ static void r200InvalidateState( GLcontext *ctx, GLuint new_state ) * Should map to inputs just like the generic vertex arrays for vertex progs. * In theory there could still be too many and we'd still need a fallback. */ -static GLboolean check_material( GLcontext *ctx ) +static GLboolean check_material( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLint i; @@ -2435,7 +2435,7 @@ static GLboolean check_material( GLcontext *ctx ) return GL_FALSE; } -static void r200WrapRunPipeline( GLcontext *ctx ) +static void r200WrapRunPipeline( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLboolean has_material; @@ -2465,7 +2465,7 @@ static void r200WrapRunPipeline( GLcontext *ctx ) } -static void r200PolygonStipple( GLcontext *ctx, const GLubyte *mask ) +static void r200PolygonStipple( struct gl_context *ctx, const GLubyte *mask ) { r200ContextPtr r200 = R200_CONTEXT(ctx); GLint i; @@ -2538,7 +2538,7 @@ void r200InitStateFuncs( radeonContextPtr radeon, struct dd_function_table *func } -void r200InitTnlFuncs( GLcontext *ctx ) +void r200InitTnlFuncs( struct gl_context *ctx ) { TNL_CONTEXT(ctx)->Driver.NotifyMaterialChange = r200UpdateMaterial; TNL_CONTEXT(ctx)->Driver.RunPipeline = r200WrapRunPipeline; diff --git a/src/mesa/drivers/dri/r200/r200_state.h b/src/mesa/drivers/dri/r200/r200_state.h index 327ba837e2..340bd8234a 100644 --- a/src/mesa/drivers/dri/r200/r200_state.h +++ b/src/mesa/drivers/dri/r200/r200_state.h @@ -39,25 +39,25 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. extern void r200InitState( r200ContextPtr rmesa ); extern void r200InitStateFuncs( radeonContextPtr radeon, struct dd_function_table *functions ); -extern void r200InitTnlFuncs( GLcontext *ctx ); +extern void r200InitTnlFuncs( struct gl_context *ctx ); -extern void r200UpdateMaterial( GLcontext *ctx ); +extern void r200UpdateMaterial( struct gl_context *ctx ); -extern void r200UpdateViewportOffset( GLcontext *ctx ); -extern void r200UpdateWindow( GLcontext *ctx ); -extern void r200UpdateDrawBuffer(GLcontext *ctx); +extern void r200UpdateViewportOffset( struct gl_context *ctx ); +extern void r200UpdateWindow( struct gl_context *ctx ); +extern void r200UpdateDrawBuffer(struct gl_context *ctx); -extern GLboolean r200ValidateState( GLcontext *ctx ); +extern GLboolean r200ValidateState( struct gl_context *ctx ); -extern void r200_vtbl_update_scissor( GLcontext *ctx ); +extern void r200_vtbl_update_scissor( struct gl_context *ctx ); -extern void r200Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void r200Fallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( rmesa, bit, mode ) do { \ if ( 0 ) fprintf( stderr, "FALLBACK in %s: #%d=%d\n", \ __FUNCTION__, bit, mode ); \ r200Fallback( rmesa->radeon.glCtx, bit, mode ); \ } while (0) -extern void r200LightingSpaceChange( GLcontext *ctx ); +extern void r200LightingSpaceChange( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/r200/r200_state_init.c b/src/mesa/drivers/dri/r200/r200_state_init.c index 1606553009..f6afb90d59 100644 --- a/src/mesa/drivers/dri/r200/r200_state_init.c +++ b/src/mesa/drivers/dri/r200/r200_state_init.c @@ -228,7 +228,7 @@ static int cmdscl2( int offset, int stride, int count ) * If it is active check function returns maximum emit size. */ #define CHECK( NM, FLAG, ADD ) \ -static int check_##NM( GLcontext *ctx, struct radeon_state_atom *atom) \ +static int check_##NM( struct gl_context *ctx, struct radeon_state_atom *atom) \ { \ r200ContextPtr rmesa = R200_CONTEXT(ctx); \ (void) rmesa; \ @@ -236,21 +236,21 @@ static int check_##NM( GLcontext *ctx, struct radeon_state_atom *atom) \ } #define TCL_CHECK( NM, FLAG, ADD ) \ -static int check_##NM( GLcontext *ctx, struct radeon_state_atom *atom) \ +static int check_##NM( struct gl_context *ctx, struct radeon_state_atom *atom) \ { \ r200ContextPtr rmesa = R200_CONTEXT(ctx); \ return (!rmesa->radeon.TclFallback && !ctx->VertexProgram._Enabled && (FLAG)) ? atom->cmd_size + (ADD) : 0; \ } #define TCL_OR_VP_CHECK( NM, FLAG, ADD ) \ -static int check_##NM( GLcontext *ctx, struct radeon_state_atom *atom ) \ +static int check_##NM( struct gl_context *ctx, struct radeon_state_atom *atom ) \ { \ r200ContextPtr rmesa = R200_CONTEXT(ctx); \ return (!rmesa->radeon.TclFallback && (FLAG)) ? atom->cmd_size + (ADD) : 0; \ } #define VP_CHECK( NM, FLAG, ADD ) \ -static int check_##NM( GLcontext *ctx, struct radeon_state_atom *atom ) \ +static int check_##NM( struct gl_context *ctx, struct radeon_state_atom *atom ) \ { \ r200ContextPtr rmesa = R200_CONTEXT(ctx); \ (void) atom; \ @@ -337,7 +337,7 @@ VP_CHECK( tcl_vpp_size_add4, ctx->VertexProgram.Current->Base.NumNativeParameter OUT_BATCH(CP_PACKET0_ONE(R200_SE_TCL_SCALAR_DATA_REG, h.scalars.count - 1)); \ OUT_BATCH_TABLE((data), h.scalars.count); \ } while(0) -static int check_rrb(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_rrb(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); struct radeon_renderbuffer *rrb; @@ -347,7 +347,7 @@ static int check_rrb(GLcontext *ctx, struct radeon_state_atom *atom) return atom->cmd_size; } -static int check_polygon_stipple(GLcontext *ctx, +static int check_polygon_stipple(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); @@ -356,7 +356,7 @@ static int check_polygon_stipple(GLcontext *ctx, return 0; } -static void mtl_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void mtl_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -368,7 +368,7 @@ static void mtl_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void lit_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void lit_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -380,7 +380,7 @@ static void lit_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void ptp_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void ptp_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -392,7 +392,7 @@ static void ptp_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void veclinear_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void veclinear_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -401,7 +401,7 @@ static void veclinear_emit(GLcontext *ctx, struct radeon_state_atom *atom) OUT_VECLINEAR(atom->cmd[0], atom->cmd+1); } -static void scl_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void scl_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -413,7 +413,7 @@ static void scl_emit(GLcontext *ctx, struct radeon_state_atom *atom) } -static void vec_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void vec_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -424,7 +424,7 @@ static void vec_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void ctx_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void ctx_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -491,7 +491,7 @@ static void ctx_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static int check_always_ctx( GLcontext *ctx, struct radeon_state_atom *atom) +static int check_always_ctx( struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); struct radeon_renderbuffer *rrb, *drb; @@ -516,7 +516,7 @@ static int check_always_ctx( GLcontext *ctx, struct radeon_state_atom *atom) return dwords; } -static void ctx_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) +static void ctx_emit_cs(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -600,7 +600,7 @@ static void ctx_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static int get_tex_size(GLcontext* ctx, struct radeon_state_atom *atom) +static int get_tex_size(struct gl_context* ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); uint32_t dwords = atom->cmd_size + 2; @@ -612,7 +612,7 @@ static int get_tex_size(GLcontext* ctx, struct radeon_state_atom *atom) return dwords; } -static int check_tex_pair(GLcontext* ctx, struct radeon_state_atom *atom) +static int check_tex_pair(struct gl_context* ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); /** XOR is bit flip operation so use it for finding pair */ @@ -622,7 +622,7 @@ static int check_tex_pair(GLcontext* ctx, struct radeon_state_atom *atom) return get_tex_size(ctx, atom); } -static int check_tex(GLcontext* ctx, struct radeon_state_atom *atom) +static int check_tex(struct gl_context* ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); if (!(r200->state.texture.unit[atom->idx].unitneeded)) @@ -632,7 +632,7 @@ static int check_tex(GLcontext* ctx, struct radeon_state_atom *atom) } -static void tex_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void tex_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -657,7 +657,7 @@ static void tex_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static int get_tex_mm_size(GLcontext* ctx, struct radeon_state_atom *atom) +static int get_tex_mm_size(struct gl_context* ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); uint32_t dwords = atom->cmd_size + 2; @@ -676,7 +676,7 @@ static int get_tex_mm_size(GLcontext* ctx, struct radeon_state_atom *atom) return dwords; } -static int check_tex_pair_mm(GLcontext* ctx, struct radeon_state_atom *atom) +static int check_tex_pair_mm(struct gl_context* ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); /** XOR is bit flip operation so use it for finding pair */ @@ -686,7 +686,7 @@ static int check_tex_pair_mm(GLcontext* ctx, struct radeon_state_atom *atom) return get_tex_mm_size(ctx, atom); } -static int check_tex_mm(GLcontext* ctx, struct radeon_state_atom *atom) +static int check_tex_mm(struct gl_context* ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); if (!(r200->state.texture.unit[atom->idx].unitneeded)) @@ -696,7 +696,7 @@ static int check_tex_mm(GLcontext* ctx, struct radeon_state_atom *atom) } -static void tex_emit_mm(GLcontext *ctx, struct radeon_state_atom *atom) +static void tex_emit_mm(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -726,7 +726,7 @@ static void tex_emit_mm(GLcontext *ctx, struct radeon_state_atom *atom) } -static void cube_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void cube_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -753,7 +753,7 @@ static void cube_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void cube_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) +static void cube_emit_cs(struct gl_context *ctx, struct radeon_state_atom *atom) { r200ContextPtr r200 = R200_CONTEXT(ctx); BATCH_LOCALS(&r200->radeon); @@ -782,7 +782,7 @@ static void cube_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) */ void r200InitState( r200ContextPtr rmesa ) { - GLcontext *ctx = rmesa->radeon.glCtx; + struct gl_context *ctx = rmesa->radeon.glCtx; GLuint i; rmesa->radeon.state.color.clear = 0x00000000; diff --git a/src/mesa/drivers/dri/r200/r200_swtcl.c b/src/mesa/drivers/dri/r200/r200_swtcl.c index dbf4ad477d..38864162ce 100644 --- a/src/mesa/drivers/dri/r200/r200_swtcl.c +++ b/src/mesa/drivers/dri/r200/r200_swtcl.c @@ -75,7 +75,7 @@ do { \ rmesa->radeon.swtcl.vertex_attr_count++; \ } while (0) -static void r200SetVertexFormat( GLcontext *ctx ) +static void r200SetVertexFormat( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT( ctx ); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -221,7 +221,7 @@ static void r200_predict_emit_size( r200ContextPtr rmesa ) } -static void r200RenderStart( GLcontext *ctx ) +static void r200RenderStart( struct gl_context *ctx ) { r200SetVertexFormat( ctx ); if (RADEON_DEBUG & RADEON_VERTS) @@ -234,7 +234,7 @@ static void r200RenderStart( GLcontext *ctx ) * determine in advance whether or not the hardware can / should do the * projection divide or Mesa should do it. */ -void r200ChooseVertexState( GLcontext *ctx ) +void r200ChooseVertexState( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT( ctx ); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -286,7 +286,7 @@ void r200ChooseVertexState( GLcontext *ctx ) } } -void r200_swtcl_flush(GLcontext *ctx, uint32_t current_offset) +void r200_swtcl_flush(struct gl_context *ctx, uint32_t current_offset) { r200ContextPtr rmesa = R200_CONTEXT(ctx); if (RADEON_DEBUG & RADEON_VERTS) @@ -315,7 +315,7 @@ void r200_swtcl_flush(GLcontext *ctx, uint32_t current_offset) /**************************************************************************/ -static INLINE GLuint reduced_hw_prim( GLcontext *ctx, GLuint prim) +static INLINE GLuint reduced_hw_prim( struct gl_context *ctx, GLuint prim) { switch (prim) { case GL_POINTS: @@ -336,9 +336,9 @@ static INLINE GLuint reduced_hw_prim( GLcontext *ctx, GLuint prim) } -static void r200RasterPrimitive( GLcontext *ctx, GLuint hwprim ); -static void r200RenderPrimitive( GLcontext *ctx, GLenum prim ); -static void r200ResetLineStipple( GLcontext *ctx ); +static void r200RasterPrimitive( struct gl_context *ctx, GLuint hwprim ); +static void r200RenderPrimitive( struct gl_context *ctx, GLenum prim ); +static void r200ResetLineStipple( struct gl_context *ctx ); /*********************************************************************** * Emit primitives as inline vertices * @@ -568,7 +568,7 @@ static void init_rast_tab( void ) /* Choose render functions */ /**********************************************************************/ -void r200ChooseRenderState( GLcontext *ctx ) +void r200ChooseRenderState( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -608,11 +608,14 @@ void r200ChooseRenderState( GLcontext *ctx ) /**********************************************************************/ -static void r200RasterPrimitive( GLcontext *ctx, GLuint hwprim ) +static void r200RasterPrimitive( struct gl_context *ctx, GLuint hwprim ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); radeon_prepare_render(&rmesa->radeon); + if (rmesa->radeon.NewGLState) + r200ValidateState( ctx ); + if (rmesa->radeon.swtcl.hw_primitive != hwprim) { /* need to disable perspective-correct texturing for point sprites */ @@ -631,7 +634,7 @@ static void r200RasterPrimitive( GLcontext *ctx, GLuint hwprim ) } } -static void r200RenderPrimitive( GLcontext *ctx, GLenum prim ) +static void r200RenderPrimitive( struct gl_context *ctx, GLenum prim ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); rmesa->radeon.swtcl.render_primitive = prim; @@ -639,11 +642,11 @@ static void r200RenderPrimitive( GLcontext *ctx, GLenum prim ) r200RasterPrimitive( ctx, reduced_hw_prim(ctx, prim) ); } -static void r200RenderFinish( GLcontext *ctx ) +static void r200RenderFinish( struct gl_context *ctx ) { } -static void r200ResetLineStipple( GLcontext *ctx ) +static void r200ResetLineStipple( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); R200_STATECHANGE( rmesa, lin ); @@ -675,7 +678,7 @@ static const char *getFallbackString(GLuint bit) } -void r200Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void r200Fallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -742,7 +745,7 @@ void r200Fallback( GLcontext *ctx, GLuint bit, GLboolean mode ) * NV_texture_rectangle). */ void -r200PointsBitmap( GLcontext *ctx, GLint px, GLint py, +r200PointsBitmap( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ) @@ -917,7 +920,7 @@ r200PointsBitmap( GLcontext *ctx, GLint px, GLint py, /* Initialization. */ /**********************************************************************/ -void r200InitSwtcl( GLcontext *ctx ) +void r200InitSwtcl( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); r200ContextPtr rmesa = R200_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/r200/r200_swtcl.h b/src/mesa/drivers/dri/r200/r200_swtcl.h index b0905879d7..668e175603 100644 --- a/src/mesa/drivers/dri/r200/r200_swtcl.h +++ b/src/mesa/drivers/dri/r200/r200_swtcl.h @@ -38,32 +38,32 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "swrast/swrast.h" #include "r200_context.h" -extern void r200InitSwtcl( GLcontext *ctx ); +extern void r200InitSwtcl( struct gl_context *ctx ); -extern void r200ChooseRenderState( GLcontext *ctx ); -extern void r200ChooseVertexState( GLcontext *ctx ); +extern void r200ChooseRenderState( struct gl_context *ctx ); +extern void r200ChooseVertexState( struct gl_context *ctx ); -extern void r200CheckTexSizes( GLcontext *ctx ); +extern void r200CheckTexSizes( struct gl_context *ctx ); -extern void r200BuildVertices( GLcontext *ctx, GLuint start, GLuint count, +extern void r200BuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ); extern void r200PrintSetupFlags(char *msg, GLuint flags ); -extern void r200_translate_vertex( GLcontext *ctx, +extern void r200_translate_vertex( struct gl_context *ctx, const radeonVertex *src, SWvertex *dst ); -extern void r200_print_vertex( GLcontext *ctx, const radeonVertex *v ); +extern void r200_print_vertex( struct gl_context *ctx, const radeonVertex *v ); -extern void r200_import_float_colors( GLcontext *ctx ); -extern void r200_import_float_spec_colors( GLcontext *ctx ); +extern void r200_import_float_colors( struct gl_context *ctx ); +extern void r200_import_float_spec_colors( struct gl_context *ctx ); -extern void r200PointsBitmap( GLcontext *ctx, GLint px, GLint py, +extern void r200PointsBitmap( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ); -void r200_swtcl_flush(GLcontext *ctx, uint32_t current_offset); +void r200_swtcl_flush(struct gl_context *ctx, uint32_t current_offset); #endif diff --git a/src/mesa/drivers/dri/r200/r200_tcl.c b/src/mesa/drivers/dri/r200/r200_tcl.c index 4ae0f30491..84db7c9d4e 100644 --- a/src/mesa/drivers/dri/r200/r200_tcl.c +++ b/src/mesa/drivers/dri/r200/r200_tcl.c @@ -177,7 +177,7 @@ while (0) * discrete and there are no intervening state changes. (Somewhat * duplicates changes to DrawArrays code) */ -static void r200EmitPrim( GLcontext *ctx, +static void r200EmitPrim( struct gl_context *ctx, GLenum prim, GLuint hwprim, GLuint start, @@ -241,7 +241,7 @@ static void r200EmitPrim( GLcontext *ctx, /* External entrypoints */ /**********************************************************************/ -void r200EmitPrimitive( GLcontext *ctx, +void r200EmitPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ) @@ -249,7 +249,7 @@ void r200EmitPrimitive( GLcontext *ctx, tcl_render_tab_verts[flags&PRIM_MODE_MASK]( ctx, first, last, flags ); } -void r200EmitEltPrimitive( GLcontext *ctx, +void r200EmitEltPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ) @@ -257,7 +257,7 @@ void r200EmitEltPrimitive( GLcontext *ctx, tcl_render_tab_elts[flags&PRIM_MODE_MASK]( ctx, first, last, flags ); } -void r200TclPrimitive( GLcontext *ctx, +void r200TclPrimitive( struct gl_context *ctx, GLenum prim, int hw_prim ) { @@ -265,6 +265,8 @@ void r200TclPrimitive( GLcontext *ctx, GLuint newprim = hw_prim | R200_VF_TCL_OUTPUT_VTX_ENABLE; radeon_prepare_render(&rmesa->radeon); + if (rmesa->radeon.NewGLState) + r200ValidateState( ctx ); if (newprim != rmesa->tcl.hw_primitive || !discrete_prim[hw_prim&0xf]) { @@ -337,7 +339,7 @@ r200InitStaticFogData( void ) * Fog blend factors are in the range [0,1]. */ float -r200ComputeFogBlendFactor( GLcontext *ctx, GLfloat fogcoord ) +r200ComputeFogBlendFactor( struct gl_context *ctx, GLfloat fogcoord ) { GLfloat end = ctx->Fog.End; GLfloat d, temp; @@ -372,7 +374,7 @@ r200ComputeFogBlendFactor( GLcontext *ctx, GLfloat fogcoord ) * Predict total emit size for next rendering operation so there is no flush in middle of rendering * Prediction has to aim towards the best possible value that is worse than worst case scenario */ -static GLuint r200EnsureEmitSize( GLcontext * ctx , GLubyte* vimap_rev ) +static GLuint r200EnsureEmitSize( struct gl_context * ctx , GLubyte* vimap_rev ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -437,7 +439,7 @@ static GLuint r200EnsureEmitSize( GLcontext * ctx , GLubyte* vimap_rev ) /* TCL render. */ -static GLboolean r200_run_tcl_render( GLcontext *ctx, +static GLboolean r200_run_tcl_render( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -594,7 +596,7 @@ const struct tnl_pipeline_stage _r200_tcl_stage = */ -static void transition_to_swtnl( GLcontext *ctx ) +static void transition_to_swtnl( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -618,7 +620,7 @@ static void transition_to_swtnl( GLcontext *ctx ) rmesa->hw.vap.cmd[VAP_SE_VAP_CNTL] &= ~(R200_VAP_TCL_ENABLE|R200_VAP_PROG_VTX_SHADER_ENABLE); } -static void transition_to_hwtnl( GLcontext *ctx ) +static void transition_to_hwtnl( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -688,7 +690,7 @@ static char *getFallbackString(GLuint bit) -void r200TclFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void r200TclFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint oldfallback = rmesa->radeon.TclFallback; diff --git a/src/mesa/drivers/dri/r200/r200_tcl.h b/src/mesa/drivers/dri/r200/r200_tcl.h index f191ddc7eb..53a1f11e9d 100644 --- a/src/mesa/drivers/dri/r200/r200_tcl.h +++ b/src/mesa/drivers/dri/r200/r200_tcl.h @@ -37,17 +37,17 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r200_context.h" -extern void r200TclPrimitive( GLcontext *ctx, GLenum prim, int hw_prim ); -extern void r200EmitEltPrimitive( GLcontext *ctx, GLuint first, GLuint last, +extern void r200TclPrimitive( struct gl_context *ctx, GLenum prim, int hw_prim ); +extern void r200EmitEltPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ); -extern void r200EmitPrimitive( GLcontext *ctx, GLuint first, GLuint last, +extern void r200EmitPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ); -extern void r200TclFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void r200TclFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); extern void r200InitStaticFogData( void ); -extern float r200ComputeFogBlendFactor( GLcontext *ctx, GLfloat fogcoord ); +extern float r200ComputeFogBlendFactor( struct gl_context *ctx, GLfloat fogcoord ); #define R200_TCL_FALLBACK_RASTER 0x1 /* rasterization */ #define R200_TCL_FALLBACK_UNFILLED 0x2 /* unfilled tris */ diff --git a/src/mesa/drivers/dri/r200/r200_tex.c b/src/mesa/drivers/dri/r200/r200_tex.c index 6723b12bf4..5207c2901a 100644 --- a/src/mesa/drivers/dri/r200/r200_tex.c +++ b/src/mesa/drivers/dri/r200/r200_tex.c @@ -294,7 +294,7 @@ static void r200SetTexBorderColor( radeonTexObjPtr t, const GLfloat color[4] ) t->pp_border_color = radeonPackColor( 4, c[0], c[1], c[2], c[3] ); } -static void r200TexEnv( GLcontext *ctx, GLenum target, +static void r200TexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -366,7 +366,7 @@ static void r200TexEnv( GLcontext *ctx, GLenum target, * next UpdateTextureState */ -static void r200TexParameter( GLcontext *ctx, GLenum target, +static void r200TexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params ) { @@ -409,7 +409,7 @@ static void r200TexParameter( GLcontext *ctx, GLenum target, } -static void r200DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj) +static void r200DeleteTexture(struct gl_context * ctx, struct gl_texture_object *texObj) { r200ContextPtr rmesa = R200_CONTEXT(ctx); radeonTexObj* t = radeon_tex_obj(texObj); @@ -446,7 +446,7 @@ static void r200DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj) * Basically impossible to do this on the fly - just collect some * basic info & do the checks from ValidateState(). */ -static void r200TexGen( GLcontext *ctx, +static void r200TexGen( struct gl_context *ctx, GLenum coord, GLenum pname, const GLfloat *params ) @@ -464,7 +464,7 @@ static void r200TexGen( GLcontext *ctx, * allocate the default texture objects. * Fixup MaxAnisotropy according to user preference. */ -static struct gl_texture_object *r200NewTextureObject(GLcontext * ctx, +static struct gl_texture_object *r200NewTextureObject(struct gl_context * ctx, GLuint name, GLenum target) { diff --git a/src/mesa/drivers/dri/r200/r200_tex.h b/src/mesa/drivers/dri/r200/r200_tex.h index 1a1e7038df..8bebf8a037 100644 --- a/src/mesa/drivers/dri/r200/r200_tex.h +++ b/src/mesa/drivers/dri/r200/r200_tex.h @@ -42,7 +42,7 @@ extern void r200SetTexOffset(__DRIcontext *pDRICtx, GLint texname, unsigned long long offset, GLint depth, GLuint pitch); -extern void r200UpdateTextureState( GLcontext *ctx ); +extern void r200UpdateTextureState( struct gl_context *ctx ); extern int r200UploadTexImages( r200ContextPtr rmesa, radeonTexObjPtr t, GLuint face ); @@ -50,8 +50,8 @@ extern void r200DestroyTexObj( r200ContextPtr rmesa, radeonTexObjPtr t ); extern void r200InitTextureFuncs( radeonContextPtr radeon, struct dd_function_table *functions ); -extern void r200UpdateFragmentShader( GLcontext *ctx ); +extern void r200UpdateFragmentShader( struct gl_context *ctx ); -extern void set_re_cntl_d3d( GLcontext *ctx, int unit, GLboolean use_d3d ); +extern void set_re_cntl_d3d( struct gl_context *ctx, int unit, GLboolean use_d3d ); #endif /* __R200_TEX_H__ */ diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c index 9ccf30c3ac..690bec640b 100644 --- a/src/mesa/drivers/dri/r200/r200_texstate.c +++ b/src/mesa/drivers/dri/r200/r200_texstate.c @@ -302,7 +302,7 @@ do { \ * Texture unit state management */ -static GLboolean r200UpdateTextureEnv( GLcontext *ctx, int unit, int slot, GLuint replaceargs ) +static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slot, GLuint replaceargs ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -869,7 +869,7 @@ void r200SetTexBuffer(__DRIcontext *pDRICtx, GLint target, __DRIdrawable *dPriv) #define REF_COLOR 1 #define REF_ALPHA 2 -static GLboolean r200UpdateAllTexEnv( GLcontext *ctx ) +static GLboolean r200UpdateAllTexEnv( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLint i, j, currslot; @@ -1203,7 +1203,7 @@ static GLuint r200_need_dis_texgen(const GLbitfield texGenEnabled, /* * Returns GL_FALSE if fallback required. */ -static GLboolean r200_validate_texgen( GLcontext *ctx, GLuint unit ) +static GLboolean r200_validate_texgen( struct gl_context *ctx, GLuint unit ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -1385,7 +1385,7 @@ static GLboolean r200_validate_texgen( GLcontext *ctx, GLuint unit ) return GL_TRUE; } -void set_re_cntl_d3d( GLcontext *ctx, int unit, GLboolean use_d3d ) +void set_re_cntl_d3d( struct gl_context *ctx, int unit, GLboolean use_d3d ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1521,7 +1521,7 @@ static void setup_hardware_state(r200ContextPtr rmesa, radeonTexObj *t) } -static GLboolean r200_validate_texture(GLcontext *ctx, struct gl_texture_object *texObj, int unit) +static GLboolean r200_validate_texture(struct gl_context *ctx, struct gl_texture_object *texObj, int unit) { r200ContextPtr rmesa = R200_CONTEXT(ctx); radeonTexObj *t = radeon_tex_obj(texObj); @@ -1564,7 +1564,7 @@ static GLboolean r200_validate_texture(GLcontext *ctx, struct gl_texture_object return !t->border_fallback; } -static GLboolean r200UpdateTextureUnit(GLcontext *ctx, int unit) +static GLboolean r200UpdateTextureUnit(struct gl_context *ctx, int unit) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLuint unitneeded = rmesa->state.texture.unit[unit].unitneeded; @@ -1588,7 +1588,7 @@ static GLboolean r200UpdateTextureUnit(GLcontext *ctx, int unit) } -void r200UpdateTextureState( GLcontext *ctx ) +void r200UpdateTextureState( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); GLboolean ok; diff --git a/src/mesa/drivers/dri/r200/r200_vertprog.c b/src/mesa/drivers/dri/r200/r200_vertprog.c index 5d268319f3..5d69012a81 100644 --- a/src/mesa/drivers/dri/r200/r200_vertprog.c +++ b/src/mesa/drivers/dri/r200/r200_vertprog.c @@ -100,7 +100,7 @@ static struct{ }; #undef OPN -static GLboolean r200VertexProgUpdateParams(GLcontext *ctx, struct r200_vertex_program *vp) +static GLboolean r200VertexProgUpdateParams(struct gl_context *ctx, struct r200_vertex_program *vp) { r200ContextPtr rmesa = R200_CONTEXT( ctx ); GLfloat *fcmd = (GLfloat *)&rmesa->hw.vpp[0].cmd[VPP_CMD_0 + 1]; @@ -396,7 +396,7 @@ static unsigned long op_operands(enum prog_opcode opcode) * * \return GL_TRUE for success, GL_FALSE for failure. */ -static GLboolean r200_translate_vertex_program(GLcontext *ctx, struct r200_vertex_program *vp) +static GLboolean r200_translate_vertex_program(struct gl_context *ctx, struct r200_vertex_program *vp) { struct gl_vertex_program *mesa_vp = &vp->mesa_program; struct prog_instruction *vpi; @@ -1098,7 +1098,7 @@ else { return GL_TRUE; } -void r200SetupVertexProg( GLcontext *ctx ) { +void r200SetupVertexProg( struct gl_context *ctx ) { r200ContextPtr rmesa = R200_CONTEXT(ctx); struct r200_vertex_program *vp = (struct r200_vertex_program *)ctx->VertexProgram.Current; GLboolean fallback; @@ -1179,7 +1179,7 @@ void r200SetupVertexProg( GLcontext *ctx ) { static void -r200BindProgram(GLcontext *ctx, GLenum target, struct gl_program *prog) +r200BindProgram(struct gl_context *ctx, GLenum target, struct gl_program *prog) { r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1194,7 +1194,7 @@ r200BindProgram(GLcontext *ctx, GLenum target, struct gl_program *prog) } static struct gl_program * -r200NewProgram(GLcontext *ctx, GLenum target, GLuint id) +r200NewProgram(struct gl_context *ctx, GLenum target, GLuint id) { struct r200_vertex_program *vp; @@ -1213,13 +1213,13 @@ r200NewProgram(GLcontext *ctx, GLenum target, GLuint id) static void -r200DeleteProgram(GLcontext *ctx, struct gl_program *prog) +r200DeleteProgram(struct gl_context *ctx, struct gl_program *prog) { _mesa_delete_program(ctx, prog); } static GLboolean -r200ProgramStringNotify(GLcontext *ctx, GLenum target, struct gl_program *prog) +r200ProgramStringNotify(struct gl_context *ctx, GLenum target, struct gl_program *prog) { struct r200_vertex_program *vp = (void *)prog; r200ContextPtr rmesa = R200_CONTEXT(ctx); @@ -1244,7 +1244,7 @@ r200ProgramStringNotify(GLcontext *ctx, GLenum target, struct gl_program *prog) } static GLboolean -r200IsProgramNative(GLcontext *ctx, GLenum target, struct gl_program *prog) +r200IsProgramNative(struct gl_context *ctx, GLenum target, struct gl_program *prog) { struct r200_vertex_program *vp = (void *)prog; diff --git a/src/mesa/drivers/dri/r200/r200_vertprog.h b/src/mesa/drivers/dri/r200/r200_vertprog.h index 938237680c..4757f4b32b 100644 --- a/src/mesa/drivers/dri/r200/r200_vertprog.h +++ b/src/mesa/drivers/dri/r200/r200_vertprog.h @@ -11,7 +11,7 @@ typedef struct { } VERTEX_SHADER_INSTRUCTION; extern void r200InitShaderFuncs(struct dd_function_table *functions); -extern void r200SetupVertexProg( GLcontext *ctx ); +extern void r200SetupVertexProg( struct gl_context *ctx ); #define VSF_FLAG_X 1 #define VSF_FLAG_Y 2 diff --git a/src/mesa/drivers/dri/r300/compiler/Makefile b/src/mesa/drivers/dri/r300/compiler/Makefile index d0eb170784..51b896ae91 100644 --- a/src/mesa/drivers/dri/r300/compiler/Makefile +++ b/src/mesa/drivers/dri/r300/compiler/Makefile @@ -8,6 +8,7 @@ LIBNAME = r300compiler C_SOURCES = \ radeon_code.c \ radeon_compiler.c \ + radeon_compiler_util.c \ radeon_emulate_branches.c \ radeon_emulate_loops.c \ radeon_program.c \ diff --git a/src/mesa/drivers/dri/r300/compiler/SConscript b/src/mesa/drivers/dri/r300/compiler/SConscript index 847857b142..2b4bce1c08 100755 --- a/src/mesa/drivers/dri/r300/compiler/SConscript +++ b/src/mesa/drivers/dri/r300/compiler/SConscript @@ -12,6 +12,7 @@ r300compiler = env.ConvenienceLibrary( source = [ 'radeon_code.c', 'radeon_compiler.c', + 'radeon_compiler_util.c', 'radeon_program.c', 'radeon_program_print.c', 'radeon_opcodes.c', diff --git a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c index 4f13e51bcc..8be32ea91f 100644 --- a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c +++ b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_emit.c @@ -133,6 +133,8 @@ static unsigned int translate_alpha_opcode(struct r300_fragment_program_compiler */ static int emit_alu(struct r300_emit_state * emit, struct rc_pair_instruction* inst) { + int ip; + int j; PROG_CODE; if (code->alu.length >= c->Base.max_alu_insts) { @@ -140,20 +142,20 @@ static int emit_alu(struct r300_emit_state * emit, struct rc_pair_instruction* i return 0; } - int ip = code->alu.length++; - int j; + ip = code->alu.length++; code->alu.inst[ip].rgb_inst = translate_rgb_opcode(c, inst->RGB.Opcode); code->alu.inst[ip].alpha_inst = translate_alpha_opcode(c, inst->Alpha.Opcode); for(j = 0; j < 3; ++j) { unsigned int src = use_source(code, inst->RGB.Src[j]); + unsigned int arg; code->alu.inst[ip].rgb_addr |= src << (6*j); src = use_source(code, inst->Alpha.Src[j]); code->alu.inst[ip].alpha_addr |= src << (6*j); - unsigned int arg = r300FPTranslateRGBSwizzle(inst->RGB.Arg[j].Source, inst->RGB.Arg[j].Swizzle); + arg = r300FPTranslateRGBSwizzle(inst->RGB.Arg[j].Source, inst->RGB.Arg[j].Swizzle); arg |= inst->RGB.Arg[j].Abs << 6; arg |= inst->RGB.Arg[j].Negate << 5; code->alu.inst[ip].rgb_inst |= arg << (7*j); @@ -259,6 +261,10 @@ static int finish_node(struct r300_emit_state * emit) { struct r300_fragment_program_compiler * c = emit->compiler; struct r300_fragment_program_code *code = &emit->compiler->code->code.r300; + unsigned alu_offset; + unsigned alu_end; + unsigned tex_offset; + unsigned tex_end; if (code->alu.length == emit->node_first_alu) { /* Generate a single NOP for this node */ @@ -268,10 +274,10 @@ static int finish_node(struct r300_emit_state * emit) return 0; } - unsigned alu_offset = emit->node_first_alu; - unsigned alu_end = code->alu.length - alu_offset - 1; - unsigned tex_offset = emit->node_first_tex; - unsigned tex_end = code->tex.length - tex_offset - 1; + alu_offset = emit->node_first_alu; + alu_end = code->alu.length - alu_offset - 1; + tex_offset = emit->node_first_tex; + tex_end = code->tex.length - tex_offset - 1; if (code->tex.length == emit->node_first_tex) { if (emit->current_node > 0) { @@ -334,6 +340,9 @@ static int begin_tex(struct r300_emit_state * emit) static int emit_tex(struct r300_emit_state * emit, struct rc_instruction * inst) { + unsigned int unit; + unsigned int dest; + unsigned int opcode; PROG_CODE; if (code->tex.length >= R300_PFS_MAX_TEX_INST) { @@ -341,9 +350,8 @@ static int emit_tex(struct r300_emit_state * emit, struct rc_instruction * inst) return 0; } - unsigned int unit = inst->U.I.TexSrcUnit; - unsigned int dest = inst->U.I.DstReg.Index; - unsigned int opcode; + unit = inst->U.I.TexSrcUnit; + dest = inst->U.I.DstReg.Index; switch(inst->U.I.Opcode) { case RC_OPCODE_KIL: opcode = R300_TEX_OP_KIL; break; diff --git a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c index caa48fe478..2d28b06539 100644 --- a/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c +++ b/src/mesa/drivers/dri/r300/compiler/r300_fragprog_swizzle.c @@ -94,6 +94,9 @@ static const struct swizzle_data* lookup_native_swizzle(unsigned int swizzle) */ static int r300_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg) { + unsigned int relevant; + int j; + if (reg.Abs) reg.Negate = RC_MASK_NONE; @@ -101,8 +104,6 @@ static int r300_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg) opcode == RC_OPCODE_TEX || opcode == RC_OPCODE_TXB || opcode == RC_OPCODE_TXP) { - int j; - if (reg.Abs || reg.Negate) return 0; @@ -117,8 +118,7 @@ static int r300_swizzle_is_native(rc_opcode opcode, struct rc_src_register reg) return 1; } - unsigned int relevant = 0; - int j; + relevant = 0; for(j = 0; j < 3; ++j) if (GET_SWZ(reg.Swizzle, j) != RC_SWIZZLE_UNUSED) @@ -154,9 +154,10 @@ static void r300_swizzle_split( unsigned int matchcount = 0; unsigned int matchmask = 0; for(comp = 0; comp < 3; ++comp) { + unsigned int swz; if (!GET_BIT(mask, comp)) continue; - unsigned int swz = GET_SWZ(src.Swizzle, comp); + swz = GET_SWZ(src.Swizzle, comp); if (swz == RC_SWIZZLE_UNUSED) continue; if (swz == GET_SWZ(sd->hash, comp)) { diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c index 4793f33577..2f130198d3 100644 --- a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c +++ b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c @@ -145,8 +145,8 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c) {"final code validation", 0, 1, rc_validate_final_shader, NULL}, {"machine code generation", 0, is_r500, r500BuildFragmentProgramHwCode, NULL}, {"machine code generation", 0, !is_r500, r300BuildFragmentProgramHwCode, NULL}, - {"dump machine code", 0, is_r500 && c->Base.Debug, r500FragmentProgramDump, NULL}, - {"dump machine code", 0, !is_r500 && c->Base.Debug, r300FragmentProgramDump, NULL}, + {"dump machine code", 0, is_r500 && (c->Base.Debug & RC_DBG_LOG), r500FragmentProgramDump, NULL}, + {"dump machine code", 0, !is_r500 && (c->Base.Debug & RC_DBG_LOG), r300FragmentProgramDump, NULL}, {NULL, 0, 0, NULL, NULL} }; diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c index 08785716db..bf8341f017 100644 --- a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c +++ b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c @@ -392,9 +392,9 @@ static void ei_if(struct r300_vertex_program_compiler * compiler, * don't already have one. */ if (!compiler->PredicateMask) { unsigned int writemasks[RC_REGISTER_MAX_INDEX]; - memset(writemasks, 0, sizeof(writemasks)); struct rc_instruction * inst; unsigned int i; + memset(writemasks, 0, sizeof(writemasks)); for(inst = compiler->Base.Program.Instructions.Next; inst != &compiler->Base.Program.Instructions; inst = inst->Next) { @@ -1067,7 +1067,7 @@ void r3xx_compile_vertex_program(struct r300_vertex_program_compiler *c) {"dead constants", 1, kill_consts, rc_remove_unused_constants, &c->code->constants_remap_table}, {"final code validation", 0, 1, rc_validate_final_shader, NULL}, {"machine code generation", 0, 1, translate_vertex_program, NULL}, - {"dump machine code", 0,c->Base.Debug,r300_vertex_program_dump, NULL}, + {"dump machine code", 0, c->Base.Debug & RC_DBG_LOG, r300_vertex_program_dump, NULL}, {NULL, 0, 0, NULL, NULL} }; diff --git a/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c b/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c index 627ce374ef..289bb87ae5 100644 --- a/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c +++ b/src/mesa/drivers/dri/r300/compiler/r500_fragprog.c @@ -39,10 +39,12 @@ int r500_transform_IF( struct rc_instruction * inst, void* data) { + struct rc_instruction * inst_mov; + if (inst->U.I.Opcode != RC_OPCODE_IF) return 0; - struct rc_instruction * inst_mov = rc_insert_new_instruction(c, inst->Prev); + inst_mov = rc_insert_new_instruction(c, inst->Prev); inst_mov->U.I.Opcode = RC_OPCODE_MOV; inst_mov->U.I.DstReg.WriteMask = 0; inst_mov->U.I.WriteALUResult = RC_ALURESULT_W; @@ -251,12 +253,11 @@ void r500FragmentProgramDump(struct radeon_compiler *c, void *user) { struct r300_fragment_program_compiler *compiler = (struct r300_fragment_program_compiler*)c; struct r500_fragment_program_code *code = &compiler->code->code.r500; - fprintf(stderr, "R500 Fragment Program:\n--------\n"); - int n, i; uint32_t inst; uint32_t inst0; char *str = NULL; + fprintf(stderr, "R500 Fragment Program:\n--------\n"); for (n = 0; n < code->inst_end+1; n++) { inst0 = inst = code->inst[n].inst0; diff --git a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c index bad1684696..6f101c68eb 100644 --- a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c +++ b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c @@ -227,6 +227,7 @@ static void alu_nop(struct r300_fragment_program_compiler *c, int ip) */ static void emit_paired(struct r300_fragment_program_compiler *c, struct rc_pair_instruction *inst) { + int ip; PROG_CODE; if (code->inst_end >= c->Base.max_alu_insts-1) { @@ -234,7 +235,7 @@ static void emit_paired(struct r300_fragment_program_compiler *c, struct rc_pair return; } - int ip = ++code->inst_end; + ip = ++code->inst_end; /* Quirk: MDH/MDV (DDX/DDY) need a NOP on previous non-TEX instructions. */ if (inst->RGB.Opcode == RC_OPCODE_DDX || inst->Alpha.Opcode == RC_OPCODE_DDX || @@ -250,7 +251,7 @@ static void emit_paired(struct r300_fragment_program_compiler *c, struct rc_pair if (inst->RGB.OutputWriteMask || inst->Alpha.OutputWriteMask || inst->Alpha.DepthWriteMask) { code->inst[ip].inst0 = R500_INST_TYPE_OUT; if (inst->WriteALUResult) { - error("%s: cannot write output and ALU result at the same time"); + error("Cannot write output and ALU result at the same time"); return; } } else { @@ -357,6 +358,7 @@ static unsigned int translate_strq_swizzle(unsigned int swizzle) */ static int emit_tex(struct r300_fragment_program_compiler *c, struct rc_sub_instruction *inst) { + int ip; PROG_CODE; if (code->inst_end >= c->Base.max_alu_insts-1) { @@ -364,7 +366,7 @@ static int emit_tex(struct r300_fragment_program_compiler *c, struct rc_sub_inst return 0; } - int ip = ++code->inst_end; + ip = ++code->inst_end; code->inst[ip].inst0 = R500_INST_TYPE_TEX | (inst->DstReg.WriteMask << 11) @@ -407,12 +409,14 @@ static int emit_tex(struct r300_fragment_program_compiler *c, struct rc_sub_inst static void emit_flowcontrol(struct emit_state * s, struct rc_instruction * inst) { + unsigned int newip; + if (s->Code->inst_end >= s->C->max_alu_insts-1) { rc_error(s->C, "emit_tex: Too many instructions"); return; } - unsigned int newip = ++s->Code->inst_end; + newip = ++s->Code->inst_end; /* Currently all loops use the same integer constant to intialize * the loop variables. */ @@ -623,6 +627,8 @@ void r500BuildFragmentProgramHwCode(struct radeon_compiler *c, void *user) if (code->inst_end == -1 || (code->inst[code->inst_end].inst0 & R500_INST_TYPE_MASK) != R500_INST_TYPE_OUT) { + int ip; + /* This may happen when dead-code elimination is disabled or * when most of the fragment program logic is leading to a KIL */ if (code->inst_end >= compiler->Base.max_alu_insts-1) { @@ -630,7 +636,7 @@ void r500BuildFragmentProgramHwCode(struct radeon_compiler *c, void *user) return; } - int ip = ++code->inst_end; + ip = ++code->inst_end; code->inst[ip].inst0 = R500_INST_TYPE_OUT | R500_INST_TEX_SEM_WAIT; } diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c index b410b2daf4..4286baed0c 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.c @@ -26,7 +26,9 @@ #include <stdio.h> #include <stdlib.h> +#include "radeon_dataflow.h" #include "radeon_program.h" +#include "radeon_program_pair.h" void rc_init(struct radeon_compiler * c) @@ -50,7 +52,7 @@ void rc_debug(struct radeon_compiler * c, const char * fmt, ...) { va_list ap; - if (!c->Debug) + if (!(c->Debug & RC_DBG_LOG)) return; va_start(ap, fmt); @@ -84,7 +86,7 @@ void rc_error(struct radeon_compiler * c, const char * fmt, ...) } } - if (c->Debug) { + if (c->Debug & RC_DBG_LOG) { fprintf(stderr, "r300compiler error: "); va_start(ap, fmt); @@ -351,11 +353,65 @@ void rc_transform_fragment_face(struct radeon_compiler *c, unsigned face) } } +static void reg_count_callback(void * userdata, struct rc_instruction * inst, + rc_register_file file, unsigned int index, unsigned int mask) +{ + unsigned int * max_reg = userdata; + if (file == RC_FILE_TEMPORARY) + index > *max_reg ? *max_reg = index : 0; +} + +static void print_stats(struct radeon_compiler * c) +{ + struct rc_instruction * tmp; + unsigned max_reg, insts, fc, tex, alpha, rgb, presub; + max_reg = insts = fc = tex = alpha = rgb = presub = 0; + for(tmp = c->Program.Instructions.Next; tmp != &c->Program.Instructions; + tmp = tmp->Next){ + const struct rc_opcode_info * info; + rc_for_all_reads_mask(tmp, reg_count_callback, &max_reg); + if (tmp->Type == RC_INSTRUCTION_NORMAL) { + if (tmp->U.I.PreSub.Opcode != RC_PRESUB_NONE) + presub++; + info = rc_get_opcode_info(tmp->U.I.Opcode); + } else { + if (tmp->U.P.RGB.Src[RC_PAIR_PRESUB_SRC].Used) + presub++; + if (tmp->U.P.Alpha.Src[RC_PAIR_PRESUB_SRC].Used) + presub++; + /* Assuming alpha will never be a flow control or + * a tex instruction. */ + if (tmp->U.P.Alpha.Opcode != RC_OPCODE_NOP) + alpha++; + if (tmp->U.P.RGB.Opcode != RC_OPCODE_NOP) + rgb++; + info = rc_get_opcode_info(tmp->U.P.RGB.Opcode); + } + if (info->IsFlowControl) + fc++; + if (info->HasTexture) + tex++; + insts++; + } + if (insts < 4) + return; + fprintf(stderr,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + "~%4u Instructions\n" + "~%4u Vector Instructions (RGB)\n" + "~%4u Scalar Instructions (Alpha)\n" + "~%4u Flow Control Instructions\n" + "~%4u Texture Instructions\n" + "~%4u Presub Operations\n" + "~%4u Temporary Registers\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", + insts, rgb, alpha, fc, tex, presub, max_reg + 1); +} + /* Executes a list of compiler passes given in the parameter 'list'. */ void rc_run_compiler(struct radeon_compiler *c, struct radeon_compiler_pass *list, const char *shader_name) { - if (c->Debug) { + if (c->Debug & RC_DBG_LOG) { fprintf(stderr, "%s: before compilation\n", shader_name); rc_print_program(&c->Program); } @@ -367,12 +423,14 @@ void rc_run_compiler(struct radeon_compiler *c, struct radeon_compiler_pass *lis if (c->Error) return; - if (c->Debug && list[i].dump) { + if ((c->Debug & RC_DBG_LOG) && list[i].dump) { fprintf(stderr, "%s: after '%s'\n", shader_name, list[i].name); rc_print_program(&c->Program); } } } + if (c->Debug & RC_DBG_STATS) + print_stats(c); } void rc_validate_final_shader(struct radeon_compiler *c, void *user) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h index 6d96ac9fdd..31fd469a04 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h @@ -30,12 +30,15 @@ #include "radeon_program.h" #include "radeon_emulate_loops.h" +#define RC_DBG_LOG (1 << 0) +#define RC_DBG_STATS (1 << 1) + struct rc_swizzle_caps; struct radeon_compiler { struct memory_pool Pool; struct rc_program Program; - unsigned Debug:1; + unsigned Debug:2; unsigned Error:1; char * ErrorMsg; diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c new file mode 100644 index 0000000000..97f4c75849 --- /dev/null +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.c @@ -0,0 +1,61 @@ +/* + * Copyright 2010 Tom Stellard <tstellar@gmail.com> + * + * 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 (including the + * next paragraph) 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 THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +/** + * \file + */ + +#include "radeon_compiler_util.h" + +/** + */ +unsigned int rc_swizzle_to_writemask(unsigned int swz) +{ + unsigned int mask = 0; + unsigned int i; + + for(i = 0; i < 4; i++) { + mask |= 1 << GET_SWZ(swz, i); + } + mask &= RC_MASK_XYZW; + + return mask; +} + +unsigned int rc_src_reads_dst_mask( + rc_register_file src_file, + unsigned int src_idx, + unsigned int src_swz, + rc_register_file dst_file, + unsigned int dst_idx, + unsigned int dst_mask) +{ + if (src_file != dst_file || src_idx != dst_idx) { + return RC_MASK_NONE; + } + return dst_mask & rc_swizzle_to_writemask(src_swz); +} diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h new file mode 100644 index 0000000000..1a14e7cb0e --- /dev/null +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler_util.h @@ -0,0 +1,16 @@ +#include "radeon_program_constants.h" + +#ifndef RADEON_PROGRAM_UTIL_H +#define RADEON_PROGRAM_UTIL_H + +unsigned int rc_swizzle_to_writemask(unsigned int swz); + +unsigned int rc_src_reads_dst_mask( + rc_register_file src_file, + unsigned int src_idx, + unsigned int src_swz, + rc_register_file dst_file, + unsigned int dst_idx, + unsigned int dst_mask); + +#endif /* RADEON_PROGRAM_UTIL_H */ diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c index a27d395587..5927498818 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c @@ -1,5 +1,6 @@ /* * Copyright (C) 2009 Nicolai Haehnle. + * Copyright 2010 Tom Stellard <tstellar@gmail.com> * * All Rights Reserved. * @@ -27,6 +28,8 @@ #include "radeon_dataflow.h" +#include "radeon_compiler.h" +#include "radeon_compiler_util.h" #include "radeon_program.h" struct read_write_mask_data { @@ -402,3 +405,252 @@ void rc_remap_registers(struct rc_instruction * inst, rc_remap_register_fn cb, v else remap_pair_instruction(inst, cb, userdata); } + +/** + * @return RC_OPCODE_NOOP if inst is not a flow control instruction. + * @return The opcode of inst if it is a flow control instruction. + */ +static rc_opcode get_flow_control_inst(struct rc_instruction * inst) +{ + const struct rc_opcode_info * info; + if (inst->Type == RC_INSTRUCTION_NORMAL) { + info = rc_get_opcode_info(inst->U.I.Opcode); + } else { + info = rc_get_opcode_info(inst->U.P.RGB.Opcode); + /*A flow control instruction shouldn't have an alpha + * instruction.*/ + assert(!info->IsFlowControl || + inst->U.P.Alpha.Opcode == RC_OPCODE_NOP); + } + + if (info->IsFlowControl) + return info->Opcode; + else + return RC_OPCODE_NOP; + +} + +struct get_readers_callback_data { + struct radeon_compiler * C; + struct rc_reader_data * ReaderData; + rc_read_src_fn ReadCB; + rc_read_write_mask_fn WriteCB; + unsigned int AliveWriteMask; +}; + +static void add_reader( + struct memory_pool * pool, + struct rc_reader_data * data, + struct rc_instruction * inst, + unsigned int mask, + struct rc_src_register * src) +{ + struct rc_reader * new; + memory_pool_array_reserve(pool, struct rc_reader, data->Readers, + data->ReaderCount, data->ReadersReserved, 1); + new = &data->Readers[data->ReaderCount++]; + new->Inst = inst; + new->WriteMask = mask; + new->Src = src; +} + +/** + * This function is used by rc_get_readers_normal() to determine whether inst + * is a reader of userdata->ReaderData->Writer + */ +static void get_readers_normal_read_callback( + void * userdata, + struct rc_instruction * inst, + struct rc_src_register * src) +{ + struct get_readers_callback_data * d = userdata; + unsigned int read_mask; + + if (src->RelAddr) + d->ReaderData->Abort = 1; + + unsigned int shared_mask = rc_src_reads_dst_mask(src->File, src->Index, + src->Swizzle, + d->ReaderData->Writer->U.I.DstReg.File, + d->ReaderData->Writer->U.I.DstReg.Index, + d->AliveWriteMask); + + if (shared_mask == RC_MASK_NONE) + return; + + /* If we make it this far, it means that this source reads from the + * same register written to by d->ReaderData->Writer. */ + + if (d->ReaderData->AbortOnRead) { + d->ReaderData->Abort = 1; + return; + } + + read_mask = rc_swizzle_to_writemask(src->Swizzle); + /* XXX The behavior in this case should be configurable. */ + if ((read_mask & d->AliveWriteMask) != read_mask) { + d->ReaderData->Abort = 1; + return; + } + + d->ReadCB(d->ReaderData, inst, src); + if (d->ReaderData->Abort) + return; + + add_reader(&d->C->Pool, d->ReaderData, inst, shared_mask, src); +} + +/** + * This function is used by rc_get_readers_normal() to determine when + * userdata->ReaderData->Writer is dead (i. e. All compontents of its + * destination register have been overwritten by other instructions). + */ +static void get_readers_write_callback( + void *userdata, + struct rc_instruction * inst, + rc_register_file file, + unsigned int index, + unsigned int mask) +{ + struct get_readers_callback_data * d = userdata; + + if (index == d->ReaderData->Writer->U.I.DstReg.Index + && file == d->ReaderData->Writer->U.I.DstReg.File) { + unsigned int shared_mask = mask + & d->ReaderData->Writer->U.I.DstReg.WriteMask; + if (d->ReaderData->InElse) { + if (shared_mask & d->AliveWriteMask) { + /* We set AbortOnRead here because the + * destination register of d->ReaderData->Writer + * is written to in both the IF and the + * ELSE block of this IF/ELSE statement. + * This means that readers of this + * destination register that follow this IF/ELSE + * statement use the value of different + * instructions depending on the control flow + * decisions made by the program. */ + d->ReaderData->AbortOnRead = 1; + } + } else { + d->AliveWriteMask &= ~shared_mask; + } + } + + d->WriteCB(d->ReaderData, inst, file, index, mask); +} + +/** + * This function will create a list of readers via the rc_reader_data struct. + * This function will abort (set the flag data->Abort) and return if it + * encounters an instruction that reads from @param writer and also a different + * instruction. Here are some examples: + * + * writer = instruction 0; + * 0 MOV TEMP[0].xy, TEMP[1].xy + * 1 MOV TEMP[0].zw, TEMP[2].xy + * 2 MOV TEMP[3], TEMP[0] + * The Abort flag will be set on instruction 2, because it reads values written + * by instructions 0 and 1. + * + * writer = instruction 1; + * 0 IF TEMP[0].x + * 1 MOV TEMP[1], TEMP[2] + * 2 ELSE + * 3 MOV TEMP[1], TEMP[2] + * 4 ENDIF + * 5 MOV TEMP[3], TEMP[1] + * The Abort flag will be set on instruction 5, because it could read from the + * value written by either instruction 1 or 3, depending on the jump decision + * made at instruction 0. + * + * writer = instruction 0; + * 0 MOV TEMP[0], TEMP[1] + * 2 BGNLOOP + * 3 ADD TEMP[0], TEMP[0], none.1 + * 4 ENDLOOP + * The Abort flag will be set on instruction 3, because in the first iteration + * of the loop it reads the value written by instruction 0 and in all other + * iterations it reads the value written by instruction 3. + * + * @param read_cb This function will be called for for every instruction that + * has been determined to be a reader of writer. + * @param write_cb This function will be called for every instruction after + * writer. + */ +void rc_get_readers_normal( + struct radeon_compiler * c, + struct rc_instruction * writer, + struct rc_reader_data * data, + rc_read_src_fn read_cb, + rc_read_write_mask_fn write_cb) +{ + struct rc_instruction * tmp; + struct get_readers_callback_data d; + unsigned int branch_depth = 0; + + data->Writer = writer; + data->Abort = 0; + data->AbortOnRead = 0; + data->InElse = 0; + data->ReaderCount = 0; + data->ReadersReserved = 0; + data->Readers = NULL; + + d.C = c; + d.AliveWriteMask = writer->U.I.DstReg.WriteMask; + d.ReaderData = data; + d.ReadCB = read_cb; + d.WriteCB = write_cb; + + if (!writer->U.I.DstReg.WriteMask) + return; + + for(tmp = writer->Next; tmp != &c->Program.Instructions; + tmp = tmp->Next){ + rc_opcode opcode = get_flow_control_inst(tmp); + switch(opcode) { + case RC_OPCODE_BGNLOOP: + /* XXX We can do better when we see a BGNLOOP if we + * add a flag called AbortOnWrite to struct + * rc_reader_data and leave it set until the next + * ENDLOOP. */ + case RC_OPCODE_ENDLOOP: + /* XXX We can do better when we see an ENDLOOP by + * searching backwards from writer and looking for + * readers of writer's destination index. If we find a + * reader before we get to the BGNLOOP, we must abort + * unless there is another writer between that reader + * and the BGNLOOP. */ + data->Abort = 1; + return; + case RC_OPCODE_IF: + branch_depth++; + break; + case RC_OPCODE_ELSE: + if (branch_depth == 0) + data->InElse = 1; + break; + case RC_OPCODE_ENDIF: + if (branch_depth == 0) { + data->AbortOnRead = 1; + data->InElse = 0; + } + else { + branch_depth--; + } + break; + default: + break; + } + + if (!data->InElse) + rc_for_all_reads_src(tmp, get_readers_normal_read_callback, &d); + rc_for_all_writes_mask(tmp, get_readers_write_callback, &d); + + if (data->Abort) + return; + + if (!d.AliveWriteMask) + return; + } +} diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h index d10ae3c7b7..7de6b98f76 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h +++ b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2009 Nicolai Haehnle. + * Copyright 2010 Tom Stellard <tstellar@gmail.com> * * All Rights Reserved. * @@ -35,6 +36,7 @@ struct rc_instruction; struct rc_swizzle_caps; struct rc_src_register; struct rc_pair_instruction_arg; +struct rc_compiler; /** @@ -66,6 +68,32 @@ typedef void (*rc_remap_register_fn)(void * userdata, struct rc_instruction * in void rc_remap_registers(struct rc_instruction * inst, rc_remap_register_fn cb, void * userdata); /*@}*/ +struct rc_reader { + struct rc_instruction * Inst; + unsigned int WriteMask; + struct rc_src_register * Src; +}; + +struct rc_reader_data { + unsigned int Abort; + unsigned int AbortOnRead; + unsigned int InElse; + struct rc_instruction * Writer; + + unsigned int ReaderCount; + unsigned int ReadersReserved; + struct rc_reader * Readers; + + void * CbData; +}; + +void rc_get_readers_normal( + struct radeon_compiler * c, + struct rc_instruction * inst, + struct rc_reader_data * data, + /*XXX: These should be their own function types. */ + rc_read_src_fn read_cb, + rc_read_write_mask_fn write_cb); /** * Compiler passes based on dataflow analysis. diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c index 9d17b4772a..87906f37b1 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow_deadcode.c @@ -106,10 +106,12 @@ static void push_loop(struct deadcode_state * s) static void push_branch(struct deadcode_state * s) { + struct branchinfo * branch; + memory_pool_array_reserve(&s->C->Pool, struct branchinfo, s->BranchStack, s->BranchStackSize, s->BranchStackReserved, 1); - struct branchinfo * branch = &s->BranchStack[s->BranchStackSize++]; + branch = &s->BranchStack[s->BranchStackSize++]; branch->HaveElse = 0; memcpy(&branch->StoreEndif, &s->R, sizeof(s->R)); } @@ -152,6 +154,7 @@ static void update_instruction(struct deadcode_state * s, struct rc_instruction const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); struct instruction_state * insts = &s->Instructions[inst->IP]; unsigned int usedmask = 0; + unsigned int srcmasks[3]; if (opcode->HasDstReg) { unsigned char * pused = get_used_ptr(s, inst->U.I.DstReg.File, inst->U.I.DstReg.Index); @@ -180,7 +183,6 @@ static void update_instruction(struct deadcode_state * s, struct rc_instruction } } - unsigned int srcmasks[3]; rc_compute_sources_for_writemask(inst, usedmask, srcmasks); for(unsigned int src = 0; src < opcode->NumSrcRegs; ++src) { @@ -219,6 +221,7 @@ void rc_dataflow_deadcode(struct radeon_compiler * c, void *user) unsigned int nr_instructions; unsigned has_temp_reladdr_src = 0; rc_dataflow_mark_outputs_fn dce = (rc_dataflow_mark_outputs_fn)user; + unsigned int ip; /* Give up if there is relative addressing of destination operands. */ for(struct rc_instruction * inst = c->Program.Instructions.Next; @@ -349,12 +352,14 @@ void rc_dataflow_deadcode(struct radeon_compiler * c, void *user) update_instruction(&s, inst); } - unsigned int ip = 0; + ip = 0; for(struct rc_instruction * inst = c->Program.Instructions.Next; inst != &c->Program.Instructions; inst = inst->Next, ++ip) { const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); int dead = 1; + unsigned int srcmasks[3]; + unsigned int usemask; if (!opcode->HasDstReg) { dead = 0; @@ -376,8 +381,7 @@ void rc_dataflow_deadcode(struct radeon_compiler * c, void *user) continue; } - unsigned int srcmasks[3]; - unsigned int usemask = s.Instructions[ip].WriteMask; + usemask = s.Instructions[ip].WriteMask; if (inst->U.I.WriteALUResult == RC_ALURESULT_X) usemask |= RC_MASK_X; diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.c b/src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.c index 222e5b7e02..7bede344f3 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_emulate_branches.c @@ -57,18 +57,21 @@ struct emulate_branch_state { static void handle_if(struct emulate_branch_state * s, struct rc_instruction * inst) { + struct branch_info * branch; + struct rc_instruction * inst_mov; + memory_pool_array_reserve(&s->C->Pool, struct branch_info, s->Branches, s->BranchCount, s->BranchReserved, 1); DBG("%s\n", __FUNCTION__); - struct branch_info * branch = &s->Branches[s->BranchCount++]; + branch = &s->Branches[s->BranchCount++]; memset(branch, 0, sizeof(struct branch_info)); branch->If = inst; /* Make a safety copy of the decision register, because we will need * it at ENDIF time and it might be overwritten in both branches. */ - struct rc_instruction * inst_mov = rc_insert_new_instruction(s->C, inst->Prev); + inst_mov = rc_insert_new_instruction(s->C, inst->Prev); inst_mov->U.I.Opcode = RC_OPCODE_MOV; inst_mov->U.I.DstReg.File = RC_FILE_TEMPORARY; inst_mov->U.I.DstReg.Index = rc_find_free_temporary(s->C); @@ -84,6 +87,8 @@ static void handle_if(struct emulate_branch_state * s, struct rc_instruction * i static void handle_else(struct emulate_branch_state * s, struct rc_instruction * inst) { + struct branch_info * branch; + if (!s->BranchCount) { rc_error(s->C, "Encountered ELSE outside of branches"); return; @@ -91,7 +96,7 @@ static void handle_else(struct emulate_branch_state * s, struct rc_instruction * DBG("%s\n", __FUNCTION__); - struct branch_info * branch = &s->Branches[s->BranchCount - 1]; + branch = &s->Branches[s->BranchCount - 1]; branch->Else = inst; } @@ -191,6 +196,10 @@ static void inject_cmp(struct emulate_branch_state * s, static void handle_endif(struct emulate_branch_state * s, struct rc_instruction * inst) { + struct branch_info * branch; + struct register_proxies IfProxies; + struct register_proxies ElseProxies; + if (!s->BranchCount) { rc_error(s->C, "Encountered ENDIF outside of branches"); return; @@ -198,9 +207,7 @@ static void handle_endif(struct emulate_branch_state * s, struct rc_instruction DBG("%s\n", __FUNCTION__); - struct branch_info * branch = &s->Branches[s->BranchCount - 1]; - struct register_proxies IfProxies; - struct register_proxies ElseProxies; + branch = &s->Branches[s->BranchCount - 1]; memset(&IfProxies, 0, sizeof(IfProxies)); memset(&ElseProxies, 0, sizeof(ElseProxies)); @@ -261,16 +268,19 @@ static void remap_output_function(void * userdata, struct rc_instruction * inst, */ static void fix_output_writes(struct emulate_branch_state * s, struct rc_instruction * inst) { + const struct rc_opcode_info * opcode; + if (!s->BranchCount) return; - const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); + opcode = rc_get_opcode_info(inst->U.I.Opcode); if (!opcode->HasDstReg) return; if (inst->U.I.DstReg.File == RC_FILE_OUTPUT) { struct remap_output_data remap; + struct rc_instruction * inst_mov; remap.Output = inst->U.I.DstReg.Index; remap.Temporary = rc_find_free_temporary(s->C); @@ -281,7 +291,7 @@ static void fix_output_writes(struct emulate_branch_state * s, struct rc_instruc rc_remap_registers(inst, &remap_output_function, &remap); } - struct rc_instruction * inst_mov = rc_insert_new_instruction(s->C, s->C->Program.Instructions.Prev); + inst_mov = rc_insert_new_instruction(s->C, s->C->Program.Instructions.Prev); inst_mov->U.I.Opcode = RC_OPCODE_MOV; inst_mov->U.I.DstReg.File = RC_FILE_OUTPUT; inst_mov->U.I.DstReg.Index = remap.Output; @@ -299,12 +309,13 @@ static void fix_output_writes(struct emulate_branch_state * s, struct rc_instruc void rc_emulate_branches(struct radeon_compiler *c, void *user) { struct emulate_branch_state s; + struct rc_instruction * ptr; memset(&s, 0, sizeof(s)); s.C = c; /* Untypical loop because we may remove the current instruction */ - struct rc_instruction * ptr = c->Program.Instructions.Next; + ptr = c->Program.Instructions.Next; while(ptr != &c->Program.Instructions) { struct rc_instruction * inst = ptr; ptr = ptr->Next; diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.c b/src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.c index cd4fcbabb9..205eecd112 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_emulate_loops.c @@ -386,8 +386,6 @@ static int build_loop_info(struct radeon_compiler * c, struct loop_info * loop, case RC_OPCODE_SNE: break; default: - rc_error(c, "%s: expected conditional", - __FUNCTION__); return 0; } loop->Cond = loop->If->Prev; @@ -431,8 +429,10 @@ static int transform_loop(struct emulate_loop_state * s, loop = &s->Loops[s->LoopCount++]; - if (!build_loop_info(s->C, loop, inst)) + if (!build_loop_info(s->C, loop, inst)) { + rc_error(s->C, "Failed to build loop info\n"); return 0; + } if(try_unroll_loop(s->C, loop)){ return 1; @@ -511,11 +511,12 @@ void rc_emulate_loops(struct radeon_compiler *c, void *user) * loops are unrolled first. */ for( i = s->LoopCount - 1; i >= 0; i-- ){ + unsigned int iterations; + if(!s->Loops[i].EndLoop){ continue; } - unsigned int iterations = loop_max_possible_iterations( - s->C, &s->Loops[i]); + iterations = loop_max_possible_iterations(s->C, &s->Loops[i]); unroll_loop(s->C, &s->Loops[i], iterations); } } diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c index 3be50b93e4..4d9120ffd0 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c @@ -1,5 +1,6 @@ /* * Copyright (C) 2009 Nicolai Haehnle. + * Copyright 2010 Tom Stellard <tstellar@gmail.com> * * All Rights Reserved. * @@ -28,6 +29,7 @@ #include "radeon_dataflow.h" #include "radeon_compiler.h" +#include "radeon_compiler_util.h" #include "radeon_swizzle.h" struct peephole_state { @@ -86,80 +88,60 @@ struct copy_propagate_state { int BranchDepth; }; -/** - * This is a callback function that is meant to be passed to - * rc_for_all_reads_mask. This function will be called once for each source - * register in inst. - * @param inst The instruction that the source register belongs to. - * @param file The register file of the source register. - * @param index The index of the source register. - * @param mask The components of the source register that are being read from. - */ static void copy_propagate_scan_read(void * data, struct rc_instruction * inst, - rc_register_file file, unsigned int index, unsigned int mask) + struct rc_src_register * src) { - struct copy_propagate_state * s = data; + rc_register_file file = src->File; + struct rc_reader_data * reader_data = data; + const struct rc_opcode_info * info = rc_get_opcode_info(inst->U.I.Opcode); - /* XXX This could probably be handled better. */ - if (file == RC_FILE_ADDRESS) { - s->Conflict = 1; + /* It is possible to do copy propigation in this situation, + * just not right now, see peephole_add_presub_inv() */ + if (reader_data->Writer->U.I.PreSub.Opcode != RC_PRESUB_NONE && + (info->NumSrcRegs > 2 || info->HasTexture)) { + reader_data->Abort = 1; return; } - if (file != RC_FILE_TEMPORARY || index != s->Mov->U.I.DstReg.Index) + /* XXX This could probably be handled better. */ + if (file == RC_FILE_ADDRESS) { + reader_data->Abort = 1; return; + } /* These instructions cannot read from the constants file. * see radeonTransformTEX() */ - if(s->Mov->U.I.SrcReg[0].File != RC_FILE_TEMPORARY && - s->Mov->U.I.SrcReg[0].File != RC_FILE_INPUT && + if(reader_data->Writer->U.I.SrcReg[0].File != RC_FILE_TEMPORARY && + reader_data->Writer->U.I.SrcReg[0].File != RC_FILE_INPUT && (inst->U.I.Opcode == RC_OPCODE_TEX || inst->U.I.Opcode == RC_OPCODE_TXB || inst->U.I.Opcode == RC_OPCODE_TXP || inst->U.I.Opcode == RC_OPCODE_KIL)){ - s->Conflict = 1; + reader_data->Abort = 1; return; } - if ((mask & s->MovMask) == mask) { - if (s->SourceClobbered) { - s->Conflict = 1; - } - } else if ((mask & s->DefinedMask) == mask) { - /* read from something entirely written by other instruction: this is okay */ - } else { - /* read from component combination that is not well-defined without - * the MOV: cannot remove it */ - s->Conflict = 1; - } } static void copy_propagate_scan_write(void * data, struct rc_instruction * inst, rc_register_file file, unsigned int index, unsigned int mask) { - struct copy_propagate_state * s = data; - - if (s->BranchDepth < 0) - return; + struct rc_reader_data * reader_data = data; + struct copy_propagate_state * s = reader_data->CbData; - if (file == s->Mov->U.I.DstReg.File && index == s->Mov->U.I.DstReg.Index) { - s->MovMask &= ~mask; - if (s->BranchDepth == 0) - s->DefinedMask |= mask; - else - s->DefinedMask &= ~mask; - } - if (file == s->Mov->U.I.SrcReg[0].File && index == s->Mov->U.I.SrcReg[0].Index) { + if (file == reader_data->Writer->U.I.SrcReg[0].File && index == reader_data->Writer->U.I.SrcReg[0].Index) { if (mask & s->SourcedMask) - s->SourceClobbered = 1; + reader_data->AbortOnRead = 1; } else if (s->Mov->U.I.SrcReg[0].RelAddr && file == RC_FILE_ADDRESS) { - s->SourceClobbered = 1; + reader_data->AbortOnRead = 1; } } static void copy_propagate(struct radeon_compiler * c, struct rc_instruction * inst_mov) { struct copy_propagate_state s; + struct rc_reader_data reader_data; + unsigned int i; if (inst_mov->U.I.DstReg.File != RC_FILE_TEMPORARY || inst_mov->U.I.DstReg.RelAddr || @@ -173,95 +155,27 @@ static void copy_propagate(struct radeon_compiler * c, struct rc_instruction * i s.MovMask = inst_mov->U.I.DstReg.WriteMask; s.DefinedMask = RC_MASK_XYZW & ~s.MovMask; + reader_data.CbData = &s; + for(unsigned int chan = 0; chan < 4; ++chan) { unsigned int swz = GET_SWZ(inst_mov->U.I.SrcReg[0].Swizzle, chan); s.SourcedMask |= (1 << swz) & RC_MASK_XYZW; } - /* 1st pass: Check whether all subsequent readers can be changed */ - for(struct rc_instruction * inst = inst_mov->Next; - inst != &c->Program.Instructions; - inst = inst->Next) { - const struct rc_opcode_info * info = rc_get_opcode_info(inst->U.I.Opcode); - /* XXX In the future we might be able to make the optimizer - * smart enough to handle loops. */ - if(inst->U.I.Opcode == RC_OPCODE_BGNLOOP - || inst->U.I.Opcode == RC_OPCODE_ENDLOOP){ - return; - } + /* Get a list of all the readers of this MOV instruction. */ + rc_get_readers_normal(c, inst_mov, &reader_data, + copy_propagate_scan_read, copy_propagate_scan_write); - /* It is possible to do copy propigation in this situation, - * just not right now, see peephole_add_presub_inv() */ - if (inst_mov->U.I.PreSub.Opcode != RC_PRESUB_NONE && - (info->NumSrcRegs > 2 || info->HasTexture)) { - return; - } - - rc_for_all_reads_mask(inst, copy_propagate_scan_read, &s); - rc_for_all_writes_mask(inst, copy_propagate_scan_write, &s); - if (s.Conflict) - return; - - if (s.BranchDepth >= 0) { - if (inst->U.I.Opcode == RC_OPCODE_IF) { - s.BranchDepth++; - } else if (inst->U.I.Opcode == RC_OPCODE_ENDIF - || inst->U.I.Opcode == RC_OPCODE_ELSE) { - s.BranchDepth--; - if (s.BranchDepth < 0) { - s.DefinedMask &= ~s.MovMask; - s.MovMask = 0; - } - } - } - } - - if (s.Conflict) + if (reader_data.Abort || reader_data.ReaderCount == 0) return; - /* 2nd pass: We can satisfy all readers, so switch them over all at once */ - s.MovMask = inst_mov->U.I.DstReg.WriteMask; - s.BranchDepth = 0; - - for(struct rc_instruction * inst = inst_mov->Next; - inst != &c->Program.Instructions; - inst = inst->Next) { - const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); - for(unsigned int src = 0; src < opcode->NumSrcRegs; ++src) { - if (inst->U.I.SrcReg[src].File == RC_FILE_TEMPORARY && - inst->U.I.SrcReg[src].Index == s.Mov->U.I.DstReg.Index) { - unsigned int refmask = 0; - - for(unsigned int chan = 0; chan < 4; ++chan) { - unsigned int swz = GET_SWZ(inst->U.I.SrcReg[src].Swizzle, chan); - refmask |= (1 << swz) & RC_MASK_XYZW; - } + /* Propagate the MOV instruction. */ + for (i = 0; i < reader_data.ReaderCount; i++) { + struct rc_instruction * inst = reader_data.Readers[i].Inst; + *reader_data.Readers[i].Src = chain_srcregs(*reader_data.Readers[i].Src, s.Mov->U.I.SrcReg[0]); - if ((refmask & s.MovMask) == refmask) { - inst->U.I.SrcReg[src] = chain_srcregs(inst->U.I.SrcReg[src], s.Mov->U.I.SrcReg[0]); - if (s.Mov->U.I.SrcReg[0].File == RC_FILE_PRESUB) - inst->U.I.PreSub = s.Mov->U.I.PreSub; - } - } - } - - if (opcode->HasDstReg) { - if (inst->U.I.DstReg.File == RC_FILE_TEMPORARY && - inst->U.I.DstReg.Index == s.Mov->U.I.DstReg.Index) { - s.MovMask &= ~inst->U.I.DstReg.WriteMask; - } - } - - if (s.BranchDepth >= 0) { - if (inst->U.I.Opcode == RC_OPCODE_IF) { - s.BranchDepth++; - } else if (inst->U.I.Opcode == RC_OPCODE_ENDIF - || inst->U.I.Opcode == RC_OPCODE_ELSE) { - s.BranchDepth--; - if (s.BranchDepth < 0) - break; /* no more readers after this point */ - } - } + if (s.Mov->U.I.SrcReg[0].File == RC_FILE_PRESUB) + inst->U.I.PreSub = s.Mov->U.I.PreSub; } /* Finally, remove the original MOV instruction */ @@ -408,30 +322,38 @@ static void constant_folding_add(struct rc_instruction * inst) static void constant_folding(struct radeon_compiler * c, struct rc_instruction * inst) { const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); + unsigned int i; /* Replace 0.0, 1.0 and 0.5 immediates by their explicit swizzles */ for(unsigned int src = 0; src < opcode->NumSrcRegs; ++src) { + struct rc_constant * constant; + struct rc_src_register newsrc; + int have_real_reference; + if (inst->U.I.SrcReg[src].File != RC_FILE_CONSTANT || inst->U.I.SrcReg[src].RelAddr || inst->U.I.SrcReg[src].Index >= c->Program.Constants.Count) continue; - struct rc_constant * constant = + constant = &c->Program.Constants.Constants[inst->U.I.SrcReg[src].Index]; if (constant->Type != RC_CONSTANT_IMMEDIATE) continue; - struct rc_src_register newsrc = inst->U.I.SrcReg[src]; - int have_real_reference = 0; + newsrc = inst->U.I.SrcReg[src]; + have_real_reference = 0; for(unsigned int chan = 0; chan < 4; ++chan) { unsigned int swz = GET_SWZ(newsrc.Swizzle, chan); + unsigned int newswz; + float imm; + float baseimm; + if (swz >= 4) continue; - unsigned int newswz; - float imm = constant->u.Immediate[swz]; - float baseimm = imm; + imm = constant->u.Immediate[swz]; + baseimm = imm; if (imm < 0.0) baseimm = -baseimm; @@ -473,6 +395,13 @@ static void constant_folding(struct radeon_compiler * c, struct rc_instruction * constant_folding_mul(inst); else if (inst->U.I.Opcode == RC_OPCODE_ADD) constant_folding_add(inst); + + /* In case this instruction has been converted, make sure all of the + * registers that are no longer used are empty. */ + opcode = rc_get_opcode_info(inst->U.I.Opcode); + for(i = opcode->NumSrcRegs; i < 3; i++) { + memset(&inst->U.I.SrcReg[i], 0, sizeof(struct rc_src_register)); + } } /** @@ -482,18 +411,10 @@ static void constant_folding(struct radeon_compiler * c, struct rc_instruction * static unsigned int src_reads_dst_mask(struct rc_src_register src, struct rc_dst_register dst) { - unsigned int mask = 0; - unsigned int i; if (dst.File != src.File || dst.Index != src.Index) { return 0; } - - for(i = 0; i < 4; i++) { - mask |= 1 << GET_SWZ(src.Swizzle, i); - } - mask &= RC_MASK_XYZW; - - return mask; + return rc_swizzle_to_writemask(src.Swizzle); } /* Return 1 if the source registers has a constant swizzle (e.g. 0, 0.5, 1.0) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c index c73845512f..91524f5ec6 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_regalloc.c @@ -322,12 +322,13 @@ void rc_pair_regalloc_inputs_only(struct radeon_compiler *cc, void *user) { struct r300_fragment_program_compiler *c = (struct r300_fragment_program_compiler*)cc; struct regalloc_state s; + int temp_reg_offset; compute_live_intervals(cc, &s); c->AllocateHwInputs(c, &alloc_input, &s); - int temp_reg_offset = 0; + temp_reg_offset = 0; for (unsigned i = 0; i < RC_REGISTER_MAX_INDEX; i++) { if (s.Input[i].Allocated && temp_reg_offset <= s.Input[i].Index) temp_reg_offset = s.Input[i].Index + 1; diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c index a33b2fde7b..d4a38607d9 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_schedule.c @@ -237,11 +237,12 @@ static void commit_alu_instruction(struct schedule_state * s, struct schedule_in static void emit_all_tex(struct schedule_state * s, struct rc_instruction * before) { struct schedule_instruction *readytex; + struct rc_instruction * inst_begin; assert(s->ReadyTEX); /* Node marker for R300 */ - struct rc_instruction * inst_begin = rc_insert_new_instruction(s->C, before->Prev); + inst_begin = rc_insert_new_instruction(s->C, before->Prev); inst_begin->U.I.Opcode = RC_OPCODE_BEGIN_TEX; /* Link texture instructions back in */ @@ -274,12 +275,113 @@ static void emit_all_tex(struct schedule_state * s, struct rc_instruction * befo } } +/* This is a helper function for destructive_merge_instructions(). It helps + * merge presubtract sources from two instructions and makes sure the + * presubtract sources end up in the correct spot. This function assumes that + * dst_full is an rgb instruction, meaning that it has a vector instruction(rgb) + * but no scalar instruction (alpha). + * @return 0 if merging the presubtract sources fails. + * @retrun 1 if merging the presubtract sources succeeds. + */ +static int merge_presub_sources( + struct rc_pair_instruction * dst_full, + struct rc_pair_sub_instruction src, + unsigned int type) +{ + unsigned int srcp_src, srcp_regs, is_rgb, is_alpha; + struct rc_pair_sub_instruction * dst_sub; + + assert(dst_full->Alpha.Opcode == RC_OPCODE_NOP); + + switch(type) { + case RC_PAIR_SOURCE_RGB: + is_rgb = 1; + is_alpha = 0; + dst_sub = &dst_full->RGB; + break; + case RC_PAIR_SOURCE_ALPHA: + is_rgb = 0; + is_alpha = 1; + dst_sub = &dst_full->Alpha; + break; + default: + assert(0); + return 0; + } + + const struct rc_opcode_info * info = + rc_get_opcode_info(dst_full->RGB.Opcode); + if (dst_sub->Src[RC_PAIR_PRESUB_SRC].Used) + return 0; + + srcp_regs = rc_presubtract_src_reg_count( + src.Src[RC_PAIR_PRESUB_SRC].Index); + for(srcp_src = 0; srcp_src < srcp_regs; srcp_src++) { + unsigned int arg; + int free_source; + unsigned int one_way = 0; + struct rc_pair_instruction_source srcp = src.Src[srcp_src]; + struct rc_pair_instruction_source temp; + + free_source = rc_pair_alloc_source(dst_full, is_rgb, is_alpha, + srcp.File, srcp.Index); + + /* If free_source < 0 then there are no free source + * slots. */ + if (free_source < 0) + return 0; + + temp = dst_sub->Src[srcp_src]; + dst_sub->Src[srcp_src] = dst_sub->Src[free_source]; + + /* srcp needs src0 and src1 to be the same */ + if (free_source < srcp_src) { + if (!temp.Used) + continue; + free_source = rc_pair_alloc_source(dst_full, is_rgb, + is_alpha, temp.File, temp.Index); + one_way = 1; + } else { + dst_sub->Src[free_source] = temp; + } + + /* If free_source == srcp_src, then the presubtract + * source is already in the correct place. */ + if (free_source == srcp_src) + continue; + + /* Shuffle the sources, so we can put the + * presubtract source in the correct place. */ + for(arg = 0; arg < info->NumSrcRegs; arg++) { + /*If this arg does not read from an rgb source, + * do nothing. */ + if (!(rc_source_type_that_arg_reads( + dst_full->RGB.Arg[arg].Source, + dst_full->RGB.Arg[arg].Swizzle) & type)) { + continue; + } + if (dst_full->RGB.Arg[arg].Source == srcp_src) + dst_full->RGB.Arg[arg].Source = free_source; + /* We need to do this just in case register + * is one of the sources already, but in the + * wrong spot. */ + else if(dst_full->RGB.Arg[arg].Source == free_source + && !one_way) { + dst_full->RGB.Arg[arg].Source = srcp_src; + } + } + } + return 1; +} + +/* This function assumes that rgb.Alpha and alpha.RGB are unused */ static int destructive_merge_instructions( struct rc_pair_instruction * rgb, struct rc_pair_instruction * alpha) { const struct rc_opcode_info * opcode; + assert(rgb->Alpha.Opcode == RC_OPCODE_NOP); assert(alpha->RGB.Opcode == RC_OPCODE_NOP); @@ -288,130 +390,15 @@ static int destructive_merge_instructions( * src1. */ /* Merge the rgb presubtract registers. */ - const struct rc_opcode_info * rgb_info = - rc_get_opcode_info(rgb->RGB.Opcode); if (alpha->RGB.Src[RC_PAIR_PRESUB_SRC].Used) { - unsigned int srcp_src; - unsigned int srcp_regs; - if (rgb->RGB.Src[RC_PAIR_PRESUB_SRC].Used) + if (!merge_presub_sources(rgb, alpha->RGB, RC_PAIR_SOURCE_RGB)) { return 0; - srcp_regs = rc_presubtract_src_reg_count( - alpha->RGB.Src[RC_PAIR_PRESUB_SRC].Index); - for(srcp_src = 0; srcp_src < srcp_regs; srcp_src++) { - unsigned int arg; - int free_source; - unsigned int one_way = 0; - struct rc_pair_instruction_source srcp = - alpha->RGB.Src[srcp_src]; - struct rc_pair_instruction_source temp; - /* 2nd arg of 1 means this is an rgb source. - * 3rd arg of 0 means this is not an alpha source. */ - free_source = rc_pair_alloc_source(rgb, 1, 0, - srcp.File, srcp.Index); - /* If free_source < 0 then there are no free source - * slots. */ - if (free_source < 0) - return 0; - - temp = rgb->RGB.Src[srcp_src]; - rgb->RGB.Src[srcp_src] = rgb->RGB.Src[free_source]; - /* srcp needs src0 and src1 to be the same */ - if (free_source < srcp_src) { - if (!temp.Used) - continue; - free_source = rc_pair_alloc_source(rgb, 1, 0, - srcp.File, srcp.Index); - one_way = 1; - } else { - rgb->RGB.Src[free_source] = temp; - } - /* If free_source == srcp_src, then the presubtract - * source is already in the correct place. */ - if (free_source == srcp_src) - continue; - /* Shuffle the sources, so we can put the - * presubtract source in the correct place. */ - for (arg = 0; arg < rgb_info->NumSrcRegs; arg++) { - /*If this arg does not read from an rgb source, - * do nothing. */ - if (rc_source_type_that_arg_reads( - rgb->RGB.Arg[arg].Source, - rgb->RGB.Arg[arg].Swizzle, 3) - != RC_PAIR_SOURCE_RGB) { - continue; - } - if (rgb->RGB.Arg[arg].Source == srcp_src) - rgb->RGB.Arg[arg].Source = free_source; - /* We need to do this just in case register - * is one of the sources already, but in the - * wrong spot. */ - else if(rgb->RGB.Arg[arg].Source == free_source - && !one_way) { - rgb->RGB.Arg[arg].Source = srcp_src; - } - } } } - /* Merge the alpha presubtract registers */ if (alpha->Alpha.Src[RC_PAIR_PRESUB_SRC].Used) { - unsigned int srcp_src; - unsigned int srcp_regs; - if(rgb->Alpha.Src[RC_PAIR_PRESUB_SRC].Used) + if(!merge_presub_sources(rgb, alpha->Alpha, RC_PAIR_SOURCE_ALPHA)){ return 0; - - srcp_regs = rc_presubtract_src_reg_count( - alpha->Alpha.Src[RC_PAIR_PRESUB_SRC].Index); - for(srcp_src = 0; srcp_src < srcp_regs; srcp_src++) { - unsigned int arg; - int free_source; - unsigned int one_way = 0; - struct rc_pair_instruction_source srcp = - alpha->Alpha.Src[srcp_src]; - struct rc_pair_instruction_source temp; - /* 2nd arg of 0 means this is not an rgb source. - * 3rd arg of 1 means this is an alpha source. */ - free_source = rc_pair_alloc_source(rgb, 0, 1, - srcp.File, srcp.Index); - /* If free_source < 0 then there are no free source - * slots. */ - if (free_source < 0) - return 0; - - temp = rgb->Alpha.Src[srcp_src]; - rgb->Alpha.Src[srcp_src] = rgb->Alpha.Src[free_source]; - /* srcp needs src0 and src1 to be the same. */ - if (free_source < srcp_src) { - if (!temp.Used) - continue; - free_source = rc_pair_alloc_source(rgb, 0, 1, - temp.File, temp.Index); - one_way = 1; - } else { - rgb->Alpha.Src[free_source] = temp; - } - /* If free_source == srcp_src, then the presubtract - * source is already in the correct place. */ - if (free_source == srcp_src) - continue; - /* Shuffle the sources, so we can put the - * presubtract source in the correct place. */ - for(arg = 0; arg < rgb_info->NumSrcRegs; arg++) { - /*If this arg does not read from an alpha - * source, do nothing. */ - if (rc_source_type_that_arg_reads( - rgb->RGB.Arg[arg].Source, - rgb->RGB.Arg[arg].Swizzle, 3) - != RC_PAIR_SOURCE_ALPHA) { - continue; - } - if (rgb->RGB.Arg[arg].Source == srcp_src) - rgb->RGB.Arg[arg].Source = free_source; - else if (rgb->RGB.Arg[arg].Source == free_source - && !one_way) { - rgb->RGB.Arg[arg].Source = srcp_src; - } - } } } @@ -424,6 +411,7 @@ static int destructive_merge_instructions( unsigned int oldsrc = alpha->Alpha.Arg[arg].Source; rc_register_file file = 0; unsigned int index = 0; + int source; if (alpha->Alpha.Arg[arg].Swizzle < 3) { srcrgb = 1; @@ -435,7 +423,7 @@ static int destructive_merge_instructions( index = alpha->Alpha.Src[oldsrc].Index; } - int source = rc_pair_alloc_source(rgb, srcrgb, srcalpha, file, index); + source = rc_pair_alloc_source(rgb, srcrgb, srcalpha, file, index); if (source < 0) return 0; @@ -475,6 +463,12 @@ static int merge_instructions(struct rc_pair_instruction * rgb, struct rc_pair_i { struct rc_pair_instruction backup; + /*Instructions can't write output registers and ALU result at the + * same time. */ + if ((rgb->WriteALUResult && alpha->Alpha.OutputWriteMask) + || (rgb->RGB.OutputWriteMask && alpha->WriteALUResult)) { + return 0; + } memcpy(&backup, rgb, sizeof(struct rc_pair_instruction)); if (destructive_merge_instructions(rgb, alpha)) @@ -597,6 +591,7 @@ static void scan_read(void * data, struct rc_instruction * inst, { struct schedule_state * s = data; struct reg_value * v = get_reg_value(s, file, index, chan); + struct reg_value_reader * reader; if (!v) return; @@ -610,7 +605,7 @@ static void scan_read(void * data, struct rc_instruction * inst, DBG("%i: read %i[%i] chan %i\n", s->Current->Instruction->IP, file, index, chan); - struct reg_value_reader * reader = memory_pool_malloc(&s->C->Pool, sizeof(*reader)); + reader = memory_pool_malloc(&s->C->Pool, sizeof(*reader)); reader->Reader = s->Current; reader->Next = v->Readers; v->Readers = reader; @@ -630,13 +625,14 @@ static void scan_write(void * data, struct rc_instruction * inst, { struct schedule_state * s = data; struct reg_value ** pv = get_reg_valuep(s, file, index, chan); + struct reg_value * newv; if (!pv) return; DBG("%i: write %i[%i] chan %i\n", s->Current->Instruction->IP, file, index, chan); - struct reg_value * newv = memory_pool_malloc(&s->C->Pool, sizeof(*newv)); + newv = memory_pool_malloc(&s->C->Pool, sizeof(*newv)); memset(newv, 0, sizeof(*newv)); newv->Writer = s->Current; @@ -659,12 +655,13 @@ static void schedule_block(struct r300_fragment_program_compiler * c, struct rc_instruction * begin, struct rc_instruction * end) { struct schedule_state s; + unsigned int ip; memset(&s, 0, sizeof(s)); s.C = &c->Base; /* Scan instructions for data dependencies */ - unsigned int ip = 0; + ip = 0; for(struct rc_instruction * inst = begin; inst != end; inst = inst->Next) { s.Current = memory_pool_malloc(&c->Base.Pool, sizeof(*s.Current)); memset(s.Current, 0, sizeof(struct schedule_instruction)); @@ -716,12 +713,14 @@ void rc_pair_schedule(struct radeon_compiler *cc, void *user) struct r300_fragment_program_compiler *c = (struct r300_fragment_program_compiler*)cc; struct rc_instruction * inst = c->Base.Program.Instructions.Next; while(inst != &c->Base.Program.Instructions) { + struct rc_instruction * first; + if (is_controlflow(inst)) { inst = inst->Next; continue; } - struct rc_instruction * first = inst; + first = inst; while(inst != &c->Base.Program.Instructions && !is_controlflow(inst)) inst = inst->Next; diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c index ff82584466..c549be5218 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c @@ -148,9 +148,12 @@ static void set_pair_instruction(struct r300_fragment_program_compiler *c, struct rc_pair_instruction * pair, struct rc_sub_instruction * inst) { + int needrgb, needalpha, istranscendent; + const struct rc_opcode_info * opcode; + int i; + memset(pair, 0, sizeof(struct rc_pair_instruction)); - int needrgb, needalpha, istranscendent; classify_instruction(inst, &needrgb, &needalpha, &istranscendent); if (needrgb) { @@ -167,8 +170,7 @@ static void set_pair_instruction(struct r300_fragment_program_compiler *c, pair->Alpha.Saturate = 1; } - const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->Opcode); - int i; + opcode = rc_get_opcode_info(inst->Opcode); /* Presubtract handling: * We need to make sure that the values used by the presubtract @@ -330,15 +332,18 @@ void rc_pair_translate(struct radeon_compiler *cc, void *user) for(struct rc_instruction * inst = c->Base.Program.Instructions.Next; inst != &c->Base.Program.Instructions; inst = inst->Next) { + const struct rc_opcode_info * opcode; + struct rc_sub_instruction copy; + if (inst->Type != RC_INSTRUCTION_NORMAL) continue; - const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode); + opcode = rc_get_opcode_info(inst->U.I.Opcode); if (opcode->HasTexture || opcode->IsFlowControl || opcode->Opcode == RC_OPCODE_KIL) continue; - struct rc_sub_instruction copy = inst->U.I; + copy = inst->U.I; check_opcode_support(c, ©); diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c b/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c index 4d3e26f28c..39408845d5 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_alu.c @@ -874,13 +874,15 @@ int r300_transform_trig_simple(struct radeon_compiler* c, struct rc_instruction* inst, void* unused) { + unsigned int constants[2]; + unsigned int tempreg; + if (inst->U.I.Opcode != RC_OPCODE_COS && inst->U.I.Opcode != RC_OPCODE_SIN && inst->U.I.Opcode != RC_OPCODE_SCS) return 0; - unsigned int constants[2]; - unsigned int tempreg = rc_find_free_temporary(c); + tempreg = rc_find_free_temporary(c); sincos_constants(c, constants); @@ -918,6 +920,8 @@ int r300_transform_trig_simple(struct radeon_compiler* c, swizzle_wwww(srcreg(RC_FILE_TEMPORARY, tempreg)), constants); } else { + struct rc_dst_register dst; + emit3(c, inst->Prev, RC_OPCODE_MAD, 0, dstregtmpmask(tempreg, RC_MASK_XY), swizzle_xxxx(inst->U.I.SrcReg[0]), swizzle_zzzz(srcreg(RC_FILE_CONSTANT, constants[1])), @@ -929,7 +933,7 @@ int r300_transform_trig_simple(struct radeon_compiler* c, swizzle_wwww(srcreg(RC_FILE_CONSTANT, constants[1])), negate(swizzle_zzzz(srcreg(RC_FILE_CONSTANT, constants[0])))); - struct rc_dst_register dst = inst->U.I.DstReg; + dst = inst->U.I.DstReg; dst.WriteMask = inst->U.I.DstReg.WriteMask & RC_MASK_X; sin_approx(c, inst, dst, @@ -988,16 +992,16 @@ int radeonTransformTrigScale(struct radeon_compiler* c, struct rc_instruction* inst, void* unused) { - if (inst->U.I.Opcode != RC_OPCODE_COS && - inst->U.I.Opcode != RC_OPCODE_SIN && - inst->U.I.Opcode != RC_OPCODE_SCS) - return 0; - static const float RCP_2PI = 0.15915494309189535; unsigned int temp; unsigned int constant; unsigned int constant_swizzle; + if (inst->U.I.Opcode != RC_OPCODE_COS && + inst->U.I.Opcode != RC_OPCODE_SIN && + inst->U.I.Opcode != RC_OPCODE_SCS) + return 0; + temp = rc_find_free_temporary(c); constant = rc_constants_add_immediate_scalar(&c->Program.Constants, RCP_2PI, &constant_swizzle); @@ -1020,6 +1024,10 @@ int r300_transform_trig_scale_vertex(struct radeon_compiler *c, struct rc_instruction *inst, void *unused) { + static const float cons[4] = {0.15915494309189535, 0.5, 6.28318530717959, -3.14159265358979}; + unsigned int temp; + unsigned int constant; + if (inst->U.I.Opcode != RC_OPCODE_COS && inst->U.I.Opcode != RC_OPCODE_SIN && inst->U.I.Opcode != RC_OPCODE_SCS) @@ -1030,10 +1038,6 @@ int r300_transform_trig_scale_vertex(struct radeon_compiler *c, * repeat(x) = frac(x / 2PI + 0.5) * 2PI - PI */ - static const float cons[4] = {0.15915494309189535, 0.5, 6.28318530717959, -3.14159265358979}; - unsigned int temp; - unsigned int constant; - temp = rc_find_free_temporary(c); constant = rc_constants_add_immediate_vec4(&c->Program.Constants, cons); diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c index c31efdb059..a21fe8d3df 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.c @@ -206,34 +206,22 @@ void rc_pair_foreach_source_that_rgb_reads( /*return 0 for rgb, 1 for alpha -1 for error. */ -rc_pair_source_type rc_source_type_that_arg_reads( +unsigned int rc_source_type_that_arg_reads( unsigned int source, - unsigned int swizzle, - unsigned int channels) + unsigned int swizzle) { unsigned int chan; unsigned int swz = RC_SWIZZLE_UNUSED; - int isRGB = 0; - int isAlpha = 0; - /* Find a swizzle that is either X,Y,Z,or W. We assume here - * that if one channel swizzles X,Y, or Z, then none of the - * other channels swizzle W, and vice-versa. */ - for(chan = 0; chan < channels; chan++) { + unsigned int ret = RC_PAIR_SOURCE_NONE; + + for(chan = 0; chan < 3; chan++) { swz = GET_SWZ(swizzle, chan); if (swz == RC_SWIZZLE_W) { - isAlpha = 1; + ret |= RC_PAIR_SOURCE_ALPHA; } else if (swz == RC_SWIZZLE_X || swz == RC_SWIZZLE_Y || swz == RC_SWIZZLE_Z) { - isRGB = 1; + ret |= RC_PAIR_SOURCE_RGB; } } - assert(!isRGB || !isAlpha); - - if(!isRGB && !isAlpha) - return RC_PAIR_SOURCE_NONE; - - if (isRGB) - return RC_PAIR_SOURCE_RGB; - /*isAlpha*/ - return RC_PAIR_SOURCE_ALPHA; + return ret; } diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h index 01cdb15424..54d44a2098 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h +++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_pair.h @@ -55,6 +55,10 @@ struct radeon_compiler; */ #define RC_PAIR_PRESUB_SRC 3 +#define RC_PAIR_SOURCE_NONE 0x0 +#define RC_PAIR_SOURCE_RGB 0x1 +#define RC_PAIR_SOURCE_ALPHA 0x2 + struct rc_pair_instruction_source { unsigned int Used:1; unsigned int File:3; @@ -93,12 +97,6 @@ struct rc_pair_instruction { typedef void (*rc_pair_foreach_src_fn) (void *, struct rc_pair_instruction_source *); -typedef enum { - RC_PAIR_SOURCE_NONE = 0, - RC_PAIR_SOURCE_RGB, - RC_PAIR_SOURCE_ALPHA -} rc_pair_source_type; - /** * General helper functions for dealing with the paired instruction format. */ @@ -117,10 +115,9 @@ void rc_pair_foreach_source_that_rgb_reads( void * data, rc_pair_foreach_src_fn cb); -rc_pair_source_type rc_source_type_that_arg_reads( +unsigned int rc_source_type_that_arg_reads( unsigned int source, - unsigned int swizzle, - unsigned int channels); + unsigned int swizzle); /*@}*/ diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c b/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c index c59161640c..5f67f536f6 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_remove_constants.c @@ -68,6 +68,7 @@ void rc_remove_unused_constants(struct radeon_compiler *c, void *user) unsigned are_externals_remapped = 0; struct rc_constant *constants = c->Program.Constants.Constants; struct mark_used_data d; + unsigned new_count; if (!c->Program.Constants.Count) { *out_remap_table = NULL; @@ -97,7 +98,7 @@ void rc_remove_unused_constants(struct radeon_compiler *c, void *user) * This pass removes unused constants simply by overwriting them by other constants. */ remap_table = malloc(c->Program.Constants.Count * sizeof(unsigned)); inv_remap_table = malloc(c->Program.Constants.Count * sizeof(unsigned)); - unsigned new_count = 0; + new_count = 0; for (unsigned i = 0; i < c->Program.Constants.Count; i++) { if (const_used[i]) { @@ -144,6 +145,6 @@ void rc_remove_unused_constants(struct radeon_compiler *c, void *user) free(const_used); free(inv_remap_table); - if (c->Debug) + if (c->Debug & RC_DBG_LOG) rc_constants_print(&c->Program.Constants); } diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c b/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c index 31d25f9ab8..60e228be5b 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_rename_regs.c @@ -104,13 +104,14 @@ void rc_rename_regs(struct radeon_compiler *c, void *user) inst != &c->Program.Instructions; inst = inst->Next) { const struct rc_opcode_info * info; + unsigned int old_index, temp_index; + struct rc_dst_register * dst; if(inst->Type != RC_INSTRUCTION_NORMAL) { rc_error(c, "%s only works with normal instructions.", __FUNCTION__); return; } - unsigned int old_index, temp_index; - struct rc_dst_register * dst = &inst->U.I.DstReg; + dst = &inst->U.I.DstReg; info = rc_get_opcode_info(inst->U.I.Opcode); if(!info->HasDstReg || dst->File != RC_FILE_TEMPORARY) { continue; diff --git a/src/mesa/drivers/dri/r300/r300_blit.c b/src/mesa/drivers/dri/r300/r300_blit.c index 74aef765e3..9fd8e8fde5 100644 --- a/src/mesa/drivers/dri/r300/r300_blit.c +++ b/src/mesa/drivers/dri/r300/r300_blit.c @@ -569,7 +569,7 @@ unsigned r300_check_blit(gl_format dst_format) * @param[in] height region height * @param[in] flip_y set if y coords of the source image need to be flipped */ -unsigned r300_blit(GLcontext *ctx, +unsigned r300_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r300/r300_blit.h b/src/mesa/drivers/dri/r300/r300_blit.h index 39b157a57b..286dbe1856 100644 --- a/src/mesa/drivers/dri/r300/r300_blit.h +++ b/src/mesa/drivers/dri/r300/r300_blit.h @@ -32,7 +32,7 @@ void r300_blit_init(struct r300_context *r300); unsigned r300_check_blit(gl_format mesa_format); -unsigned r300_blit(GLcontext *ctx, +unsigned r300_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r300/r300_cmdbuf.c b/src/mesa/drivers/dri/r300/r300_cmdbuf.c index c40802aec6..8a2f5ce021 100644 --- a/src/mesa/drivers/dri/r300/r300_cmdbuf.c +++ b/src/mesa/drivers/dri/r300/r300_cmdbuf.c @@ -69,7 +69,7 @@ static unsigned packet0_count(r300ContextPtr r300, uint32_t *pkt) #define vpu_count(ptr) (((drm_r300_cmd_header_t*)(ptr))->vpu.count) #define r500fp_count(ptr) (((drm_r300_cmd_header_t*)(ptr))->r500fp.count) -static int check_vpu(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_vpu(struct gl_context *ctx, struct radeon_state_atom *atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); int cnt; @@ -83,7 +83,7 @@ static int check_vpu(GLcontext *ctx, struct radeon_state_atom *atom) return cnt ? (cnt * 4) + extra : 0; } -static int check_vpp(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_vpp(struct gl_context *ctx, struct radeon_state_atom *atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); int cnt; @@ -114,7 +114,7 @@ void r300_emit_vpu(struct r300_context *r300, END_BATCH(); } -static void emit_vpu_state(GLcontext *ctx, struct radeon_state_atom * atom) +static void emit_vpu_state(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); drm_r300_cmd_header_t cmd; @@ -126,7 +126,7 @@ static void emit_vpu_state(GLcontext *ctx, struct radeon_state_atom * atom) r300_emit_vpu(r300, &atom->cmd[1], vpu_count(atom->cmd) * 4, addr); } -static void emit_vpp_state(GLcontext *ctx, struct radeon_state_atom * atom) +static void emit_vpp_state(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); drm_r300_cmd_header_t cmd; @@ -158,7 +158,7 @@ void r500_emit_fp(struct r300_context *r300, END_BATCH(); } -static void emit_r500fp_atom(GLcontext *ctx, struct radeon_state_atom * atom) +static void emit_r500fp_atom(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); drm_r300_cmd_header_t cmd; @@ -179,7 +179,7 @@ static void emit_r500fp_atom(GLcontext *ctx, struct radeon_state_atom * atom) r500_emit_fp(r300, &atom->cmd[1], count, addr, type, clamp); } -static int check_tex_offsets(GLcontext *ctx, struct radeon_state_atom * atom) +static int check_tex_offsets(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); int numtmus = packet0_count(r300, r300->hw.tex.offset.cmd); @@ -200,7 +200,7 @@ static int check_tex_offsets(GLcontext *ctx, struct radeon_state_atom * atom) return dw; } -static void emit_tex_offsets(GLcontext *ctx, struct radeon_state_atom * atom) +static void emit_tex_offsets(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); BATCH_LOCALS(&r300->radeon); @@ -249,7 +249,7 @@ static void emit_tex_offsets(GLcontext *ctx, struct radeon_state_atom * atom) } } -void r300_emit_scissor(GLcontext *ctx) +void r300_emit_scissor(struct gl_context *ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); BATCH_LOCALS(&r300->radeon); @@ -287,7 +287,7 @@ void r300_emit_scissor(GLcontext *ctx) OUT_BATCH((x2 << R300_SCISSORS_X_SHIFT)|(y2 << R300_SCISSORS_Y_SHIFT)); END_BATCH(); } -static int check_cb_offset(GLcontext *ctx, struct radeon_state_atom * atom) +static int check_cb_offset(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); uint32_t dw = 6 + 3 + 16; @@ -411,7 +411,7 @@ void r300_emit_cb_setup(struct r300_context *r300, END_BATCH(); } -static void emit_cb_offset_atom(GLcontext *ctx, struct radeon_state_atom * atom) +static void emit_cb_offset_atom(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); struct radeon_renderbuffer *rrb; @@ -433,7 +433,7 @@ static void emit_cb_offset_atom(GLcontext *ctx, struct radeon_state_atom * atom) } } -static int check_zb_offset(GLcontext *ctx, struct radeon_state_atom * atom) +static int check_zb_offset(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); uint32_t dw; @@ -443,7 +443,7 @@ static int check_zb_offset(GLcontext *ctx, struct radeon_state_atom * atom) return dw; } -static void emit_zb_offset(GLcontext *ctx, struct radeon_state_atom * atom) +static void emit_zb_offset(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); BATCH_LOCALS(&r300->radeon); @@ -476,7 +476,7 @@ static void emit_zb_offset(GLcontext *ctx, struct radeon_state_atom * atom) END_BATCH(); } -static void emit_zstencil_format(GLcontext *ctx, struct radeon_state_atom * atom) +static void emit_zstencil_format(struct gl_context *ctx, struct radeon_state_atom * atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); BATCH_LOCALS(&r300->radeon); @@ -504,17 +504,17 @@ static void emit_zstencil_format(GLcontext *ctx, struct radeon_state_atom * atom END_BATCH(); } -static int check_never(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_never(struct gl_context *ctx, struct radeon_state_atom *atom) { return 0; } -static int check_always(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_always(struct gl_context *ctx, struct radeon_state_atom *atom) { return atom->cmd_size; } -static int check_variable(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_variable(struct gl_context *ctx, struct radeon_state_atom *atom) { r300ContextPtr r300 = R300_CONTEXT(ctx); int cnt; @@ -525,7 +525,7 @@ static int check_variable(GLcontext *ctx, struct radeon_state_atom *atom) return cnt ? cnt + 1 : 0; } -static int check_r500fp(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_r500fp(struct gl_context *ctx, struct radeon_state_atom *atom) { int cnt; r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -537,7 +537,7 @@ static int check_r500fp(GLcontext *ctx, struct radeon_state_atom *atom) return cnt ? (cnt * 6) + extra : 0; } -static int check_r500fp_const(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_r500fp_const(struct gl_context *ctx, struct radeon_state_atom *atom) { int cnt; r300ContextPtr r300 = R300_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/r300/r300_cmdbuf.h b/src/mesa/drivers/dri/r300/r300_cmdbuf.h index 0e68da928e..7e6b8c5de6 100644 --- a/src/mesa/drivers/dri/r300/r300_cmdbuf.h +++ b/src/mesa/drivers/dri/r300/r300_cmdbuf.h @@ -45,7 +45,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define SCISSORS_BUFSZ (3) void r300InitCmdBuf(r300ContextPtr r300); -void r300_emit_scissor(GLcontext *ctx); +void r300_emit_scissor(struct gl_context *ctx); void r300_emit_vpu(struct r300_context *ctx, uint32_t *data, diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c index ef495aabb9..9fbd36bfe6 100644 --- a/src/mesa/drivers/dri/r300/r300_context.c +++ b/src/mesa/drivers/dri/r300/r300_context.c @@ -219,7 +219,7 @@ static void r300_vtbl_pre_emit_atoms(radeonContextPtr radeon) end_3d(radeon); } -static void r300_fallback(GLcontext *ctx, GLuint bit, GLboolean mode) +static void r300_fallback(struct gl_context *ctx, GLuint bit, GLboolean mode) { r300ContextPtr r300 = R300_CONTEXT(ctx); if (mode) @@ -331,7 +331,7 @@ static void r300_init_vtbl(radeonContextPtr radeon) } } -static void r300InitConstValues(GLcontext *ctx, radeonScreenPtr screen) +static void r300InitConstValues(struct gl_context *ctx, radeonScreenPtr screen) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -439,7 +439,7 @@ static void r300ParseOptions(r300ContextPtr r300, radeonScreenPtr screen) r300->options = options; } -static void r300InitGLExtensions(GLcontext *ctx) +static void r300InitGLExtensions(struct gl_context *ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -477,7 +477,7 @@ static void r300InitIoctlFuncs(struct dd_function_table *functions) /* Create the device specific rendering context. */ GLboolean r300CreateContext(gl_api api, - const __GLcontextModes * glVisual, + const struct gl_config * glVisual, __DRIcontext * driContextPriv, void *sharedContextPrivate) { @@ -485,7 +485,7 @@ GLboolean r300CreateContext(gl_api api, radeonScreenPtr screen = (radeonScreenPtr) (sPriv->private); struct dd_function_table functions; r300ContextPtr r300; - GLcontext *ctx; + struct gl_context *ctx; assert(glVisual); assert(driContextPriv); diff --git a/src/mesa/drivers/dri/r300/r300_context.h b/src/mesa/drivers/dri/r300/r300_context.h index 99540e3354..349a3d412f 100644 --- a/src/mesa/drivers/dri/r300/r300_context.h +++ b/src/mesa/drivers/dri/r300/r300_context.h @@ -463,9 +463,9 @@ struct r300_swtcl_info { }; struct r300_vtable { - void (* SetupRSUnit)(GLcontext *ctx); - void (* SetupFragmentShaderTextures)(GLcontext *ctx, int *tmu_mappings); - void (* SetupPixelShader)(GLcontext *ctx); + void (* SetupRSUnit)(struct gl_context *ctx); + void (* SetupFragmentShaderTextures)(struct gl_context *ctx, int *tmu_mappings); + void (* SetupPixelShader)(struct gl_context *ctx); }; struct r300_vertex_buffer { @@ -544,7 +544,7 @@ struct r300_context { extern void r300DestroyContext(__DRIcontext * driContextPriv); extern GLboolean r300CreateContext(gl_api api, - const __GLcontextModes * glVisual, + const struct gl_config * glVisual, __DRIcontext * driContextPriv, void *sharedContextPrivate); @@ -552,7 +552,7 @@ extern void r300InitShaderFuncs(struct dd_function_table *functions); extern void r300InitShaderFunctions(r300ContextPtr r300); -extern void r300InitDraw(GLcontext *ctx); +extern void r300InitDraw(struct gl_context *ctx); #define r300PackFloat32 radeonPackFloat32 #define r300PackFloat24 radeonPackFloat24 diff --git a/src/mesa/drivers/dri/r300/r300_draw.c b/src/mesa/drivers/dri/r300/r300_draw.c index 5ae9f49840..81769e1ee5 100644 --- a/src/mesa/drivers/dri/r300/r300_draw.c +++ b/src/mesa/drivers/dri/r300/r300_draw.c @@ -75,7 +75,7 @@ static int getTypeSize(GLenum type) } } -static void r300FixupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer *mesa_ind_buf) +static void r300FixupIndexBuffer(struct gl_context *ctx, const struct _mesa_index_buffer *mesa_ind_buf) { r300ContextPtr r300 = R300_CONTEXT(ctx); GLvoid *src_ptr; @@ -143,7 +143,7 @@ static void r300FixupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer } -static void r300SetupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer *mesa_ind_buf) +static void r300SetupIndexBuffer(struct gl_context *ctx, const struct _mesa_index_buffer *mesa_ind_buf) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -219,7 +219,7 @@ static void r300SetupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer * Convert attribute data type to float * If the attribute uses named buffer object replace the bo with newly allocated bo */ -static void r300ConvertAttrib(GLcontext *ctx, int count, const struct gl_client_array *input, struct vertex_attribute *attr) +static void r300ConvertAttrib(struct gl_context *ctx, int count, const struct gl_client_array *input, struct vertex_attribute *attr) { r300ContextPtr r300 = R300_CONTEXT(ctx); const GLvoid *src_ptr; @@ -290,7 +290,7 @@ static void r300ConvertAttrib(GLcontext *ctx, int count, const struct gl_client_ } } -static void r300AlignDataToDword(GLcontext *ctx, const struct gl_client_array *input, int count, struct vertex_attribute *attr) +static void r300AlignDataToDword(struct gl_context *ctx, const struct gl_client_array *input, int count, struct vertex_attribute *attr) { r300ContextPtr r300 = R300_CONTEXT(ctx); const int dst_stride = (input->StrideB + 3) & ~3; @@ -328,7 +328,7 @@ static void r300AlignDataToDword(GLcontext *ctx, const struct gl_client_array *i attr->stride = dst_stride; } -static void r300TranslateAttrib(GLcontext *ctx, GLuint attr, int count, const struct gl_client_array *input) +static void r300TranslateAttrib(struct gl_context *ctx, GLuint attr, int count, const struct gl_client_array *input) { r300ContextPtr r300 = R300_CONTEXT(ctx); struct r300_vertex_buffer *vbuf = &r300->vbuf; @@ -467,7 +467,7 @@ static void r300TranslateAttrib(GLcontext *ctx, GLuint attr, int count, const st ++vbuf->num_attribs; } -static void r300SetVertexFormat(GLcontext *ctx, const struct gl_client_array *arrays[], int count) +static void r300SetVertexFormat(struct gl_context *ctx, const struct gl_client_array *arrays[], int count) { r300ContextPtr r300 = R300_CONTEXT(ctx); struct r300_vertex_buffer *vbuf = &r300->vbuf; @@ -497,7 +497,7 @@ static void r300SetVertexFormat(GLcontext *ctx, const struct gl_client_array *ar return; } -static void r300AllocDmaRegions(GLcontext *ctx, const struct gl_client_array *input[], int count) +static void r300AllocDmaRegions(struct gl_context *ctx, const struct gl_client_array *input[], int count) { r300ContextPtr r300 = R300_CONTEXT(ctx); struct r300_vertex_buffer *vbuf = &r300->vbuf; @@ -578,7 +578,7 @@ static void r300AllocDmaRegions(GLcontext *ctx, const struct gl_client_array *in } -static void r300FreeData(GLcontext *ctx) +static void r300FreeData(struct gl_context *ctx) { /* Need to zero tcl.aos[n].bo and tcl.elt_dma_bo * to prevent double unref in radeonReleaseArrays @@ -604,7 +604,7 @@ static void r300FreeData(GLcontext *ctx) } } -static GLuint r300PredictTryDrawPrimsSize(GLcontext *ctx, +static GLuint r300PredictTryDrawPrimsSize(struct gl_context *ctx, GLuint nr_prims, const struct _mesa_prim *prim) { struct r300_context *r300 = R300_CONTEXT(ctx); @@ -641,7 +641,7 @@ static GLuint r300PredictTryDrawPrimsSize(GLcontext *ctx, return dwords; } -static GLboolean r300TryDrawPrims(GLcontext *ctx, +static GLboolean r300TryDrawPrims(struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -707,7 +707,7 @@ static GLboolean r300TryDrawPrims(GLcontext *ctx, return GL_TRUE; } -static void r300DrawPrims(GLcontext *ctx, +static void r300DrawPrims(struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -741,7 +741,7 @@ static void r300DrawPrims(GLcontext *ctx, _tnl_draw_prims(ctx, arrays, prim, nr_prims, ib, min_index, max_index); } -void r300InitDraw(GLcontext *ctx) +void r300InitDraw(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); diff --git a/src/mesa/drivers/dri/r300/r300_emit.c b/src/mesa/drivers/dri/r300/r300_emit.c index a24d431611..f392006ced 100644 --- a/src/mesa/drivers/dri/r300/r300_emit.c +++ b/src/mesa/drivers/dri/r300/r300_emit.c @@ -48,14 +48,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r300_emit.h" -GLuint r300VAPInputCntl0(GLcontext * ctx, GLuint InputsRead) +GLuint r300VAPInputCntl0(struct gl_context * ctx, GLuint InputsRead) { /* No idea what this value means. I have seen other values written to * this register... */ return 0x5555; } -GLuint r300VAPInputCntl1(GLcontext * ctx, GLuint InputsRead) +GLuint r300VAPInputCntl1(struct gl_context * ctx, GLuint InputsRead) { GLuint i, vic_1 = 0; @@ -76,7 +76,7 @@ GLuint r300VAPInputCntl1(GLcontext * ctx, GLuint InputsRead) return vic_1; } -GLuint r300VAPOutputCntl0(GLcontext * ctx, GLuint vp_writes) +GLuint r300VAPOutputCntl0(struct gl_context * ctx, GLuint vp_writes) { GLuint ret = 0; @@ -100,7 +100,7 @@ GLuint r300VAPOutputCntl0(GLcontext * ctx, GLuint vp_writes) return ret; } -GLuint r300VAPOutputCntl1(GLcontext * ctx, GLuint vp_writes) +GLuint r300VAPOutputCntl1(struct gl_context * ctx, GLuint vp_writes) { GLuint i, ret = 0, first_free_texcoord = 0; diff --git a/src/mesa/drivers/dri/r300/r300_emit.h b/src/mesa/drivers/dri/r300/r300_emit.h index a456d8867c..8911ab7728 100644 --- a/src/mesa/drivers/dri/r300/r300_emit.h +++ b/src/mesa/drivers/dri/r300/r300_emit.h @@ -220,9 +220,9 @@ extern int r300NumVerts(r300ContextPtr rmesa, int num_verts, int prim); extern void r300EmitCacheFlush(r300ContextPtr rmesa); -extern GLuint r300VAPInputCntl0(GLcontext * ctx, GLuint InputsRead); -extern GLuint r300VAPInputCntl1(GLcontext * ctx, GLuint InputsRead); -extern GLuint r300VAPOutputCntl0(GLcontext * ctx, GLuint vp_writes); -extern GLuint r300VAPOutputCntl1(GLcontext * ctx, GLuint vp_writes); +extern GLuint r300VAPInputCntl0(struct gl_context * ctx, GLuint InputsRead); +extern GLuint r300VAPInputCntl1(struct gl_context * ctx, GLuint InputsRead); +extern GLuint r300VAPOutputCntl0(struct gl_context * ctx, GLuint vp_writes); +extern GLuint r300VAPOutputCntl1(struct gl_context * ctx, GLuint vp_writes); #endif diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.c b/src/mesa/drivers/dri/r300/r300_fragprog_common.c index 4af91f114d..4e457b51eb 100644 --- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c +++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c @@ -208,7 +208,7 @@ static void allocate_hw_inputs( } -static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_program_cont *cont, struct r300_fragment_program *fp) +static void translate_fragment_program(struct gl_context *ctx, struct r300_fragment_program_cont *cont, struct r300_fragment_program *fp) { r300ContextPtr r300 = R300_CONTEXT(ctx); struct r300_fragment_program_compiler compiler; @@ -278,7 +278,7 @@ static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_prog rc_destroy(&compiler.Base); } -struct r300_fragment_program *r300SelectAndTranslateFragmentShader(GLcontext *ctx) +struct r300_fragment_program *r300SelectAndTranslateFragmentShader(struct gl_context *ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); struct r300_fragment_program_cont *fp_list; diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.h b/src/mesa/drivers/dri/r300/r300_fragprog_common.h index 3d64c08cee..cfa5acf433 100644 --- a/src/mesa/drivers/dri/r300/r300_fragprog_common.h +++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.h @@ -32,6 +32,6 @@ #include "r300_context.h" -struct r300_fragment_program *r300SelectAndTranslateFragmentShader(GLcontext *ctx); +struct r300_fragment_program *r300SelectAndTranslateFragmentShader(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/r300/r300_render.c b/src/mesa/drivers/dri/r300/r300_render.c index cf89ab7ec3..821318e7a5 100644 --- a/src/mesa/drivers/dri/r300/r300_render.c +++ b/src/mesa/drivers/dri/r300/r300_render.c @@ -321,7 +321,7 @@ static void r300FireAOS(r300ContextPtr rmesa, int vertex_count, int type) END_BATCH(); } -void r300RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim) +void r300RunRenderPrimitive(struct gl_context * ctx, int start, int end, int prim) { r300ContextPtr rmesa = R300_CONTEXT(ctx); BATCH_LOCALS(&rmesa->radeon); @@ -444,7 +444,7 @@ static const char *getFallbackString(r300ContextPtr rmesa, uint32_t bit) } } -void r300SwitchFallback(GLcontext *ctx, uint32_t bit, GLboolean mode) +void r300SwitchFallback(struct gl_context *ctx, uint32_t bit, GLboolean mode) { TNLcontext *tnl = TNL_CONTEXT(ctx); r300ContextPtr rmesa = R300_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/r300/r300_render.h b/src/mesa/drivers/dri/r300/r300_render.h index 581e9fa0cc..5a78592c75 100644 --- a/src/mesa/drivers/dri/r300/r300_render.h +++ b/src/mesa/drivers/dri/r300/r300_render.h @@ -63,8 +63,8 @@ extern const struct tnl_pipeline_stage _r300_render_stage; -extern void r300SwitchFallback(GLcontext *ctx, uint32_t bit, GLboolean mode); +extern void r300SwitchFallback(struct gl_context *ctx, uint32_t bit, GLboolean mode); -extern void r300RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim); +extern void r300RunRenderPrimitive(struct gl_context * ctx, int start, int end, int prim); #endif diff --git a/src/mesa/drivers/dri/r300/r300_shader.c b/src/mesa/drivers/dri/r300/r300_shader.c index a9bddf0577..f2bbac5b85 100644 --- a/src/mesa/drivers/dri/r300/r300_shader.c +++ b/src/mesa/drivers/dri/r300/r300_shader.c @@ -32,7 +32,7 @@ #include "r300_context.h" #include "r300_fragprog_common.h" -static void freeFragProgCache(GLcontext *ctx, struct r300_fragment_program_cont *cache) +static void freeFragProgCache(struct gl_context *ctx, struct r300_fragment_program_cont *cache) { struct r300_fragment_program *tmp, *fp = cache->progs; @@ -44,7 +44,7 @@ static void freeFragProgCache(GLcontext *ctx, struct r300_fragment_program_cont } } -static void freeVertProgCache(GLcontext *ctx, struct r300_vertex_program_cont *cache) +static void freeVertProgCache(struct gl_context *ctx, struct r300_vertex_program_cont *cache) { struct r300_vertex_program *tmp, *vp = cache->progs; @@ -57,7 +57,7 @@ static void freeVertProgCache(GLcontext *ctx, struct r300_vertex_program_cont *c } } -static struct gl_program *r300NewProgram(GLcontext * ctx, GLenum target, +static struct gl_program *r300NewProgram(struct gl_context * ctx, GLenum target, GLuint id) { struct r300_vertex_program_cont *vp; @@ -81,7 +81,7 @@ static struct gl_program *r300NewProgram(GLcontext * ctx, GLenum target, return NULL; } -static void r300DeleteProgram(GLcontext * ctx, struct gl_program *prog) +static void r300DeleteProgram(struct gl_context * ctx, struct gl_program *prog) { struct r300_vertex_program_cont *vp = (struct r300_vertex_program_cont *)prog; struct r300_fragment_program_cont *fp = (struct r300_fragment_program_cont *)prog; @@ -99,7 +99,7 @@ static void r300DeleteProgram(GLcontext * ctx, struct gl_program *prog) } static GLboolean -r300ProgramStringNotify(GLcontext * ctx, GLenum target, struct gl_program *prog) +r300ProgramStringNotify(struct gl_context * ctx, GLenum target, struct gl_program *prog) { struct r300_vertex_program_cont *vp = (struct r300_vertex_program_cont *)prog; struct r300_fragment_program_cont *fp = (struct r300_fragment_program_cont *)prog; @@ -123,7 +123,7 @@ r300ProgramStringNotify(GLcontext * ctx, GLenum target, struct gl_program *prog) } static GLboolean -r300IsProgramNative(GLcontext * ctx, GLenum target, struct gl_program *prog) +r300IsProgramNative(struct gl_context * ctx, GLenum target, struct gl_program *prog) { if (target == GL_FRAGMENT_PROGRAM_ARB) { struct r300_fragment_program *fp = r300SelectAndTranslateFragmentShader(ctx); diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c index 0113eecaa3..ab8c1df5f7 100644 --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@ -62,7 +62,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "r300_render.h" #include "r300_vertprog.h" -static void r300BlendColor(GLcontext * ctx, const GLfloat cf[4]) +static void r300BlendColor(struct gl_context * ctx, const GLfloat cf[4]) { r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -204,7 +204,7 @@ static void r300SetBlendCntl(r300ContextPtr r300, int func, int eqn, } } -static void r300SetBlendState(GLcontext * ctx) +static void r300SetBlendState(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); int func = (R300_BLEND_GL_ONE << R300_SRC_BLEND_SHIFT) | @@ -302,13 +302,13 @@ static void r300SetBlendState(GLcontext * ctx) R300_ALPHA_BLEND_ENABLE), funcA, eqnA); } -static void r300BlendEquationSeparate(GLcontext * ctx, +static void r300BlendEquationSeparate(struct gl_context * ctx, GLenum modeRGB, GLenum modeA) { r300SetBlendState(ctx); } -static void r300BlendFuncSeparate(GLcontext * ctx, +static void r300BlendFuncSeparate(struct gl_context * ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA) { @@ -331,7 +331,7 @@ static GLuint translate_logicop(GLenum logicop) * Used internally to update the r300->hw hardware state to match the * current OpenGL state. */ -static void r300SetLogicOpState(GLcontext *ctx) +static void r300SetLogicOpState(struct gl_context *ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); R300_STATECHANGE(r300, rop); @@ -347,13 +347,13 @@ static void r300SetLogicOpState(GLcontext *ctx) * Called by Mesa when an application program changes the LogicOp state * via glLogicOp. */ -static void r300LogicOpcode(GLcontext *ctx, GLenum logicop) +static void r300LogicOpcode(struct gl_context *ctx, GLenum logicop) { if (RGBA_LOGICOP_ENABLED(ctx)) r300SetLogicOpState(ctx); } -static void r300ClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) +static void r300ClipPlane( struct gl_context *ctx, GLenum plane, const GLfloat *eq ) { r300ContextPtr rmesa = R300_CONTEXT(ctx); GLint p; @@ -373,7 +373,7 @@ static void r300ClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) rmesa->hw.vpucp[p].cmd[R300_VPUCP_W] = ip[3]; } -static void r300SetClipPlaneState(GLcontext * ctx, GLenum cap, GLboolean state) +static void r300SetClipPlaneState(struct gl_context * ctx, GLenum cap, GLboolean state) { r300ContextPtr r300 = R300_CONTEXT(ctx); GLuint p; @@ -395,7 +395,7 @@ static void r300SetClipPlaneState(GLcontext * ctx, GLenum cap, GLboolean state) /** * Update our tracked culling state based on Mesa's state. */ -static void r300UpdateCulling(GLcontext * ctx) +static void r300UpdateCulling(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); uint32_t val = 0; @@ -435,7 +435,7 @@ static void r300UpdateCulling(GLcontext * ctx) r300->hw.cul.cmd[R300_CUL_CULL] = val; } -static void r300SetPolygonOffsetState(GLcontext * ctx, GLboolean state) +static void r300SetPolygonOffsetState(struct gl_context * ctx, GLboolean state) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -447,14 +447,14 @@ static void r300SetPolygonOffsetState(GLcontext * ctx, GLboolean state) } } -static GLboolean current_fragment_program_writes_depth(GLcontext* ctx) +static GLboolean current_fragment_program_writes_depth(struct gl_context* ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); return ctx->FragmentProgram._Current && r300->selected_fp->code.writes_depth; } -static void r300SetEarlyZState(GLcontext * ctx) +static void r300SetEarlyZState(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); GLuint topZ = R300_ZTOP_ENABLE; @@ -499,7 +499,7 @@ static void r300SetEarlyZState(GLcontext * ctx) } } -static void r300SetAlphaState(GLcontext * ctx) +static void r300SetAlphaState(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); GLubyte refByte; @@ -549,7 +549,7 @@ static void r300SetAlphaState(GLcontext * ctx) r300->hw.at.cmd[R300_AT_UNKNOWN] = 0; } -static void r300AlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) +static void r300AlphaFunc(struct gl_context * ctx, GLenum func, GLfloat ref) { (void)func; (void)ref; @@ -579,7 +579,7 @@ static int translate_func(int func) return 0; } -static void r300SetDepthState(GLcontext * ctx) +static void r300SetDepthState(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -598,7 +598,7 @@ static void r300SetDepthState(GLcontext * ctx) } } -static void r300CatchStencilFallback(GLcontext *ctx) +static void r300CatchStencilFallback(struct gl_context *ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); const unsigned back = ctx->Stencil._BackFace; @@ -616,7 +616,7 @@ static void r300CatchStencilFallback(GLcontext *ctx) } } -static void r300SetStencilState(GLcontext * ctx, GLboolean state) +static void r300SetStencilState(struct gl_context * ctx, GLboolean state) { r300ContextPtr r300 = R300_CONTEXT(ctx); GLboolean hw_stencil = GL_FALSE; @@ -641,7 +641,7 @@ static void r300SetStencilState(GLcontext * ctx, GLboolean state) } } -static void r300UpdatePolygonMode(GLcontext * ctx) +static void r300UpdatePolygonMode(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); uint32_t hw_mode = R300_GA_POLY_MODE_DISABLE; @@ -704,7 +704,7 @@ static void r300UpdatePolygonMode(GLcontext * ctx) * * \note Mesa already filters redundant calls to this function. */ -static void r300CullFace(GLcontext * ctx, GLenum mode) +static void r300CullFace(struct gl_context * ctx, GLenum mode) { (void)mode; @@ -716,7 +716,7 @@ static void r300CullFace(GLcontext * ctx, GLenum mode) * * \note Mesa already filters redundant calls to this function. */ -static void r300FrontFace(GLcontext * ctx, GLenum mode) +static void r300FrontFace(struct gl_context * ctx, GLenum mode) { (void)mode; @@ -729,7 +729,7 @@ static void r300FrontFace(GLcontext * ctx, GLenum mode) * * \note Mesa already filters redundant calls to this function. */ -static void r300DepthFunc(GLcontext * ctx, GLenum func) +static void r300DepthFunc(struct gl_context * ctx, GLenum func) { (void)func; r300SetDepthState(ctx); @@ -740,7 +740,7 @@ static void r300DepthFunc(GLcontext * ctx, GLenum func) * * \note Mesa already filters redundant calls to this function. */ -static void r300DepthMask(GLcontext * ctx, GLboolean mask) +static void r300DepthMask(struct gl_context * ctx, GLboolean mask) { (void)mask; r300SetDepthState(ctx); @@ -749,7 +749,7 @@ static void r300DepthMask(GLcontext * ctx, GLboolean mask) /** * Handle glColorMask() */ -static void r300ColorMask(GLcontext * ctx, +static void r300ColorMask(struct gl_context * ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -767,7 +767,7 @@ static void r300ColorMask(GLcontext * ctx, /* ============================================================= * Point state */ -static void r300PointSize(GLcontext * ctx, GLfloat size) +static void r300PointSize(struct gl_context * ctx, GLfloat size) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -784,7 +784,7 @@ static void r300PointSize(GLcontext * ctx, GLfloat size) ((int)(size * 6) << R300_POINTSIZE_Y_SHIFT); } -static void r300PointParameter(GLcontext * ctx, GLenum pname, const GLfloat * param) +static void r300PointParameter(struct gl_context * ctx, GLenum pname, const GLfloat * param) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -814,7 +814,7 @@ static void r300PointParameter(GLcontext * ctx, GLenum pname, const GLfloat * pa /* ============================================================= * Line state */ -static void r300LineWidth(GLcontext * ctx, GLfloat widthf) +static void r300LineWidth(struct gl_context * ctx, GLfloat widthf) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -826,7 +826,7 @@ static void r300LineWidth(GLcontext * ctx, GLfloat widthf) R300_LINE_CNT_HO | R300_LINE_CNT_VE | (int)(widthf * 6.0); } -static void r300PolygonMode(GLcontext * ctx, GLenum face, GLenum mode) +static void r300PolygonMode(struct gl_context * ctx, GLenum face, GLenum mode) { (void)face; (void)mode; @@ -864,7 +864,7 @@ static int translate_stencil_op(int op) return 0; } -static void r300ShadeModel(GLcontext * ctx, GLenum mode) +static void r300ShadeModel(struct gl_context * ctx, GLenum mode) { r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -885,7 +885,7 @@ static void r300ShadeModel(GLcontext * ctx, GLenum mode) rmesa->hw.shade2.cmd[3] = 0x00000000; } -static void r300StencilFuncSeparate(GLcontext * ctx, GLenum face, +static void r300StencilFuncSeparate(struct gl_context * ctx, GLenum face, GLenum func, GLint ref, GLuint mask) { r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -932,7 +932,7 @@ static void r300StencilFuncSeparate(GLcontext * ctx, GLenum face, } } -static void r300StencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) +static void r300StencilMaskSeparate(struct gl_context * ctx, GLenum face, GLuint mask) { r300ContextPtr rmesa = R300_CONTEXT(ctx); const unsigned back = ctx->Stencil._BackFace; @@ -956,7 +956,7 @@ static void r300StencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) } } -static void r300StencilOpSeparate(GLcontext * ctx, GLenum face, +static void r300StencilOpSeparate(struct gl_context * ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -992,7 +992,7 @@ static void r300StencilOpSeparate(GLcontext * ctx, GLenum face, * Window position and viewport transformation */ -static void r300UpdateWindow(GLcontext * ctx) +static void r300UpdateWindow(struct gl_context * ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -1028,7 +1028,7 @@ static void r300UpdateWindow(GLcontext * ctx) rmesa->hw.vpt.cmd[R300_VPT_ZOFFSET] = r300PackFloat32(tz); } -static void r300Viewport(GLcontext * ctx, GLint x, GLint y, +static void r300Viewport(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height) { /* Don't pipeline viewport changes, conflict with window offset @@ -1040,12 +1040,12 @@ static void r300Viewport(GLcontext * ctx, GLint x, GLint y, radeon_viewport(ctx, x, y, width, height); } -static void r300DepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval) +static void r300DepthRange(struct gl_context * ctx, GLclampd nearval, GLclampd farval) { r300UpdateWindow(ctx); } -void r300UpdateViewportOffset(GLcontext * ctx) +void r300UpdateViewportOffset(struct gl_context * ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -1074,7 +1074,7 @@ void r300UpdateViewportOffset(GLcontext * ctx) * Update R300's own internal state parameters. * For now just STATE_R300_WINDOW_DIMENSION */ -static void r300UpdateStateParameters(GLcontext * ctx, GLuint new_state) +static void r300UpdateStateParameters(struct gl_context * ctx, GLuint new_state) { r300ContextPtr rmesa = R300_CONTEXT(ctx); struct gl_program_parameter_list *paramList; @@ -1096,7 +1096,7 @@ static void r300UpdateStateParameters(GLcontext * ctx, GLuint new_state) /* ============================================================= * Polygon state */ -static void r300PolygonOffset(GLcontext * ctx, GLfloat factor, GLfloat units) +static void r300PolygonOffset(struct gl_context * ctx, GLfloat factor, GLfloat units) { r300ContextPtr rmesa = R300_CONTEXT(ctx); GLfloat constant = units; @@ -1193,7 +1193,7 @@ static unsigned long gen_fixed_filter(unsigned long f) return f; } -static void r300SetupFragmentShaderTextures(GLcontext *ctx, int *tmu_mappings) +static void r300SetupFragmentShaderTextures(struct gl_context *ctx, int *tmu_mappings) { r300ContextPtr r300 = R300_CONTEXT(ctx); int i; @@ -1235,7 +1235,7 @@ static void r300SetupFragmentShaderTextures(GLcontext *ctx, int *tmu_mappings) R300_US_TEX_INST_0, code->tex.length); } -static void r500SetupFragmentShaderTextures(GLcontext *ctx, int *tmu_mappings) +static void r500SetupFragmentShaderTextures(struct gl_context *ctx, int *tmu_mappings) { r300ContextPtr r300 = R300_CONTEXT(ctx); int i; @@ -1280,7 +1280,7 @@ static GLuint translate_lod_bias(GLfloat bias) } -static void r300SetupTextures(GLcontext * ctx) +static void r300SetupTextures(struct gl_context * ctx) { int i, mtu; struct radeon_tex_obj *t; @@ -1427,7 +1427,7 @@ union r300_outputs_written { ((hw_tcl_on) ? (ow).vp_outputs & (1 << (vp_result)) : \ RENDERINPUTS_TEST( (ow.index_bitset), (tnl_attrib) )) -static void r300SetupRSUnit(GLcontext * ctx) +static void r300SetupRSUnit(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); union r300_outputs_written OutputsWritten; @@ -1521,7 +1521,7 @@ static void r300SetupRSUnit(GLcontext * ctx) WARN_ONCE("Don't know how to satisfy InputsRead=0x%08x\n", InputsRead); } -static void r500SetupRSUnit(GLcontext * ctx) +static void r500SetupRSUnit(struct gl_context * ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); union r300_outputs_written OutputsWritten; @@ -1681,7 +1681,7 @@ void r300VapCntl(r300ContextPtr rmesa, GLuint input_count, * * \note Mesa already filters redundant calls to this function. */ -static void r300Enable(GLcontext * ctx, GLenum cap, GLboolean state) +static void r300Enable(struct gl_context * ctx, GLenum cap, GLboolean state) { r300ContextPtr rmesa = R300_CONTEXT(ctx); if (RADEON_DEBUG & RADEON_STATE) @@ -1756,7 +1756,7 @@ static void r300Enable(GLcontext * ctx, GLenum cap, GLboolean state) */ static void r300ResetHwState(r300ContextPtr r300) { - GLcontext *ctx = r300->radeon.glCtx; + struct gl_context *ctx = r300->radeon.glCtx; int has_tcl; has_tcl = r300->options.hw_tcl_enabled; @@ -1965,7 +1965,7 @@ static void r300ResetHwState(r300ContextPtr r300) void r300UpdateShaders(r300ContextPtr rmesa) { - GLcontext *ctx = rmesa->radeon.glCtx; + struct gl_context *ctx = rmesa->radeon.glCtx; /* should only happenen once, just after context is created */ /* TODO: shouldn't we fallback to sw here? */ @@ -1994,7 +1994,7 @@ void r300UpdateShaders(r300ContextPtr rmesa) rmesa->radeon.NewGLState = 0; } -static const GLfloat *get_fragmentprogram_constant(GLcontext *ctx, GLuint index, GLfloat * buffer) +static const GLfloat *get_fragmentprogram_constant(struct gl_context *ctx, GLuint index, GLfloat * buffer) { static const GLfloat dummy[4] = { 0, 0, 0, 0 }; r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -2052,7 +2052,7 @@ static const GLfloat *get_fragmentprogram_constant(GLcontext *ctx, GLuint index, } -static void r300SetupPixelShader(GLcontext *ctx) +static void r300SetupPixelShader(struct gl_context *ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); struct r300_fragment_program *fp = rmesa->selected_fp; @@ -2109,7 +2109,7 @@ static void r300SetupPixelShader(GLcontext *ctx) if(_nc>_p->r500fp.count)_p->r500fp.count=_nc;\ } while(0) -static void r500SetupPixelShader(GLcontext *ctx) +static void r500SetupPixelShader(struct gl_context *ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); struct r300_fragment_program *fp = rmesa->selected_fp; @@ -2158,7 +2158,7 @@ static void r500SetupPixelShader(GLcontext *ctx) bump_r500fp_const_count(rmesa->hw.r500fp_const.cmd, fp->code.constants.Count * 4); } -void r300SetupVAP(GLcontext *ctx, GLuint InputsRead, GLuint OutputsWritten) +void r300SetupVAP(struct gl_context *ctx, GLuint InputsRead, GLuint OutputsWritten) { r300ContextPtr rmesa = R300_CONTEXT( ctx ); struct vertex_attribute *attrs = rmesa->vbuf.attribs; @@ -2218,7 +2218,7 @@ void r300SetupVAP(GLcontext *ctx, GLuint InputsRead, GLuint OutputsWritten) void r300UpdateShaderStates(r300ContextPtr rmesa) { - GLcontext *ctx; + struct gl_context *ctx; ctx = rmesa->radeon.glCtx; /* should only happenen once, just after context is created */ @@ -2241,7 +2241,7 @@ void r300UpdateShaderStates(r300ContextPtr rmesa) #define EASY_US_OUT_FMT(comps, c0, c1, c2, c3) \ (R500_OUT_FMT_##comps | R500_C0_SEL_##c0 | R500_C1_SEL_##c1 | \ R500_C2_SEL_##c2 | R500_C3_SEL_##c3) -static void r300SetupUsOutputFormat(GLcontext *ctx) +static void r300SetupUsOutputFormat(struct gl_context *ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); uint32_t hw_format; @@ -2292,6 +2292,7 @@ static void r300SetupUsOutputFormat(GLcontext *ctx) break; default: assert(!"Unsupported format"); + hw_format = 0; break; } @@ -2303,7 +2304,7 @@ static void r300SetupUsOutputFormat(GLcontext *ctx) /** * Called by Mesa after an internal state update. */ -static void r300InvalidateState(GLcontext * ctx, GLuint new_state) +static void r300InvalidateState(struct gl_context * ctx, GLuint new_state) { r300ContextPtr r300 = R300_CONTEXT(ctx); @@ -2346,7 +2347,7 @@ void r300InitState(r300ContextPtr r300) r300ResetHwState(r300); } -static void r300RenderMode(GLcontext * ctx, GLenum mode) +static void r300RenderMode(struct gl_context * ctx, GLenum mode) { r300SwitchFallback(ctx, R300_FALLBACK_RENDER_MODE, ctx->RenderMode != GL_RENDER); } diff --git a/src/mesa/drivers/dri/r300/r300_state.h b/src/mesa/drivers/dri/r300/r300_state.h index e70f84f4e4..e3b0da4cbd 100644 --- a/src/mesa/drivers/dri/r300/r300_state.h +++ b/src/mesa/drivers/dri/r300/r300_state.h @@ -50,13 +50,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. r300->radeon.hw.is_dirty = GL_TRUE; \ } while(0) -void r300UpdateViewportOffset (GLcontext * ctx); -void r300UpdateDrawBuffer (GLcontext * ctx); +void r300UpdateViewportOffset (struct gl_context * ctx); +void r300UpdateDrawBuffer (struct gl_context * ctx); void r300UpdateShaders (r300ContextPtr rmesa); void r300UpdateShaderStates (r300ContextPtr rmesa); void r300InitState (r300ContextPtr r300); void r300InitStateFuncs (radeonContextPtr radeon, struct dd_function_table *functions); void r300VapCntl(r300ContextPtr rmesa, GLuint input_count, GLuint output_count, GLuint temp_count); -void r300SetupVAP(GLcontext *ctx, GLuint InputsRead, GLuint OutputsWritten); +void r300SetupVAP(struct gl_context *ctx, GLuint InputsRead, GLuint OutputsWritten); #endif /* __R300_STATE_H__ */ diff --git a/src/mesa/drivers/dri/r300/r300_swtcl.c b/src/mesa/drivers/dri/r300/r300_swtcl.c index 4dcc7cb022..4a6762ff83 100644 --- a/src/mesa/drivers/dri/r300/r300_swtcl.c +++ b/src/mesa/drivers/dri/r300/r300_swtcl.c @@ -68,7 +68,7 @@ do { \ ++num_attrs; \ } while (0) -void r300ChooseSwtclVertexFormat(GLcontext *ctx, GLuint *_InputsRead, GLuint *_OutputsWritten) +void r300ChooseSwtclVertexFormat(struct gl_context *ctx, GLuint *_InputsRead, GLuint *_OutputsWritten) { r300ContextPtr rmesa = R300_CONTEXT( ctx ); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -226,7 +226,7 @@ void r300ChooseSwtclVertexFormat(GLcontext *ctx, GLuint *_InputsRead, GLuint *_ RENDERINPUTS_COPY(rmesa->render_inputs_bitset, tnl->render_inputs_bitset); } -static void r300PrepareVertices(GLcontext *ctx) +static void r300PrepareVertices(struct gl_context *ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); GLuint InputsRead, OutputsWritten; @@ -285,7 +285,7 @@ static GLuint reduced_prim[] = { GL_TRIANGLES, }; -static void r300RasterPrimitive( GLcontext *ctx, GLuint prim ); +static void r300RasterPrimitive( struct gl_context *ctx, GLuint prim ); /*********************************************************************** * Emit primitives as inline vertices * @@ -497,7 +497,7 @@ static void init_rast_tab( void ) /**********************************************************************/ /* Choose render functions */ /**********************************************************************/ -static void r300ChooseRenderState( GLcontext *ctx ) +static void r300ChooseRenderState( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -528,7 +528,7 @@ static void r300ChooseRenderState( GLcontext *ctx ) } } -void r300RenderStart(GLcontext *ctx) +void r300RenderStart(struct gl_context *ctx) { radeon_print(RADEON_SWRENDER, RADEON_VERBOSE, "%s\n", __func__); r300ContextPtr rmesa = R300_CONTEXT( ctx ); @@ -550,11 +550,11 @@ void r300RenderStart(GLcontext *ctx) } } -void r300RenderFinish(GLcontext *ctx) +void r300RenderFinish(struct gl_context *ctx) { } -static void r300RasterPrimitive( GLcontext *ctx, GLuint hwprim ) +static void r300RasterPrimitive( struct gl_context *ctx, GLuint hwprim ) { r300ContextPtr rmesa = R300_CONTEXT(ctx); radeon_print(RADEON_SWRENDER, RADEON_TRACE, "%s\n", __func__); @@ -565,7 +565,7 @@ static void r300RasterPrimitive( GLcontext *ctx, GLuint hwprim ) } } -void r300RenderPrimitive(GLcontext *ctx, GLenum prim) +void r300RenderPrimitive(struct gl_context *ctx, GLenum prim) { r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -578,13 +578,13 @@ void r300RenderPrimitive(GLcontext *ctx, GLenum prim) r300RasterPrimitive( ctx, reduced_prim[prim] ); } -void r300ResetLineStipple(GLcontext *ctx) +void r300ResetLineStipple(struct gl_context *ctx) { if (RADEON_DEBUG & RADEON_VERTS) fprintf(stderr, "%s\n", __func__); } -void r300InitSwtcl(GLcontext *ctx) +void r300InitSwtcl(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); r300ContextPtr rmesa = R300_CONTEXT(ctx); @@ -620,7 +620,7 @@ void r300InitSwtcl(GLcontext *ctx) _tnl_need_projected_coords( ctx, GL_FALSE ); } -void r300DestroySwtcl(GLcontext *ctx) +void r300DestroySwtcl(struct gl_context *ctx) { } @@ -656,7 +656,7 @@ static void r300EmitVbufPrim(r300ContextPtr rmesa, GLuint primitive, GLuint vert END_BATCH(); } -void r300_swtcl_flush(GLcontext *ctx, uint32_t current_offset) +void r300_swtcl_flush(struct gl_context *ctx, uint32_t current_offset) { radeon_print(RADEON_SWRENDER, RADEON_TRACE, "%s\n", __func__); r300ContextPtr rmesa = R300_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/r300/r300_swtcl.h b/src/mesa/drivers/dri/r300/r300_swtcl.h index c271d26546..51cfffc2af 100644 --- a/src/mesa/drivers/dri/r300/r300_swtcl.h +++ b/src/mesa/drivers/dri/r300/r300_swtcl.h @@ -50,16 +50,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define SWTCL_OVM_TEX(n) ((n) + 6) #define SWTCL_OVM_POINT_SIZE 15 -extern void r300ChooseSwtclVertexFormat(GLcontext *ctx, GLuint *InputsRead, GLuint *OutputsWritten); +extern void r300ChooseSwtclVertexFormat(struct gl_context *ctx, GLuint *InputsRead, GLuint *OutputsWritten); -extern void r300InitSwtcl( GLcontext *ctx ); -extern void r300DestroySwtcl( GLcontext *ctx ); +extern void r300InitSwtcl( struct gl_context *ctx ); +extern void r300DestroySwtcl( struct gl_context *ctx ); -extern void r300RenderStart(GLcontext *ctx); -extern void r300RenderFinish(GLcontext *ctx); -extern void r300RenderPrimitive(GLcontext *ctx, GLenum prim); -extern void r300ResetLineStipple(GLcontext *ctx); +extern void r300RenderStart(struct gl_context *ctx); +extern void r300RenderFinish(struct gl_context *ctx); +extern void r300RenderPrimitive(struct gl_context *ctx, GLenum prim); +extern void r300ResetLineStipple(struct gl_context *ctx); -extern void r300_swtcl_flush(GLcontext *ctx, uint32_t current_offset); +extern void r300_swtcl_flush(struct gl_context *ctx, uint32_t current_offset); #endif diff --git a/src/mesa/drivers/dri/r300/r300_tex.c b/src/mesa/drivers/dri/r300/r300_tex.c index baef206bc2..a6bda0e499 100644 --- a/src/mesa/drivers/dri/r300/r300_tex.c +++ b/src/mesa/drivers/dri/r300/r300_tex.c @@ -185,7 +185,7 @@ static void r300SetTexBorderColor(radeonTexObjPtr t, const GLfloat color[4]) * next UpdateTextureState */ -static void r300TexParameter(GLcontext * ctx, GLenum target, +static void r300TexParameter(struct gl_context * ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat * params) { @@ -243,7 +243,7 @@ static void r300TexParameter(GLcontext * ctx, GLenum target, } } -static void r300DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj) +static void r300DeleteTexture(struct gl_context * ctx, struct gl_texture_object *texObj) { r300ContextPtr rmesa = R300_CONTEXT(ctx); radeonTexObj* t = radeon_tex_obj(texObj); @@ -284,7 +284,7 @@ static void r300DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj) * allocate the default texture objects. * Fixup MaxAnisotropy according to user preference. */ -static struct gl_texture_object *r300NewTextureObject(GLcontext * ctx, +static struct gl_texture_object *r300NewTextureObject(struct gl_context * ctx, GLuint name, GLenum target) { diff --git a/src/mesa/drivers/dri/r300/r300_tex.h b/src/mesa/drivers/dri/r300/r300_tex.h index aca44cd766..c44a39cb46 100644 --- a/src/mesa/drivers/dri/r300/r300_tex.h +++ b/src/mesa/drivers/dri/r300/r300_tex.h @@ -47,7 +47,7 @@ extern void r300SetTexOffset(__DRIcontext *pDRICtx, GLint texname, unsigned long long offset, GLint depth, GLuint pitch); -extern GLboolean r300ValidateBuffers(GLcontext * ctx); +extern GLboolean r300ValidateBuffers(struct gl_context * ctx); extern void r300InitTextureFuncs(radeonContextPtr radeon, struct dd_function_table *functions); diff --git a/src/mesa/drivers/dri/r300/r300_texstate.c b/src/mesa/drivers/dri/r300/r300_texstate.c index 9458869826..0116c5d2fa 100644 --- a/src/mesa/drivers/dri/r300/r300_texstate.c +++ b/src/mesa/drivers/dri/r300/r300_texstate.c @@ -301,7 +301,7 @@ static void setup_hardware_state(r300ContextPtr rmesa, radeonTexObj *t) * * Mostly this means populating the texture object's mipmap tree. */ -static GLboolean r300_validate_texture(GLcontext * ctx, struct gl_texture_object *texObj) +static GLboolean r300_validate_texture(struct gl_context * ctx, struct gl_texture_object *texObj) { r300ContextPtr rmesa = R300_CONTEXT(ctx); radeonTexObj *t = radeon_tex_obj(texObj); @@ -320,7 +320,7 @@ static GLboolean r300_validate_texture(GLcontext * ctx, struct gl_texture_object /** * Ensure all enabled and complete textures are uploaded along with any buffers being used. */ -GLboolean r300ValidateBuffers(GLcontext * ctx) +GLboolean r300ValidateBuffers(struct gl_context * ctx) { r300ContextPtr rmesa = R300_CONTEXT(ctx); struct radeon_renderbuffer *rrb; diff --git a/src/mesa/drivers/dri/r300/r300_vertprog.c b/src/mesa/drivers/dri/r300/r300_vertprog.c index a160128091..1daa305e3c 100644 --- a/src/mesa/drivers/dri/r300/r300_vertprog.c +++ b/src/mesa/drivers/dri/r300/r300_vertprog.c @@ -49,7 +49,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. * Write parameter array for the given vertex program into dst. * Return the total number of components written. */ -static int r300VertexProgUpdateParams(GLcontext * ctx, struct r300_vertex_program *vp, float *dst) +static int r300VertexProgUpdateParams(struct gl_context * ctx, struct r300_vertex_program *vp, float *dst) { int i; @@ -227,7 +227,7 @@ static void initialize_NV_registers(struct radeon_compiler * compiler) inst->U.I.SrcReg[0].Swizzle = RC_SWIZZLE_0000; } -static struct r300_vertex_program *build_program(GLcontext *ctx, +static struct r300_vertex_program *build_program(struct gl_context *ctx, struct r300_vertex_program_key *wanted_key, const struct gl_vertex_program *mesa_vp) { @@ -307,7 +307,7 @@ static struct r300_vertex_program *build_program(GLcontext *ctx, return vp; } -struct r300_vertex_program * r300SelectAndTranslateVertexShader(GLcontext *ctx) +struct r300_vertex_program * r300SelectAndTranslateVertexShader(struct gl_context *ctx) { r300ContextPtr r300 = R300_CONTEXT(ctx); struct r300_vertex_program_key wanted_key = { 0 }; @@ -386,7 +386,7 @@ static void r300EmitVertexProgram(r300ContextPtr r300, int dest, struct r300_ver void r300SetupVertexProgram(r300ContextPtr rmesa) { - GLcontext *ctx = rmesa->radeon.glCtx; + struct gl_context *ctx = rmesa->radeon.glCtx; struct r300_vertex_program *prog = rmesa->selected_vp; int inst_count = 0; int param_count = 0; diff --git a/src/mesa/drivers/dri/r300/r300_vertprog.h b/src/mesa/drivers/dri/r300/r300_vertprog.h index ccec896be4..ce24dcb353 100644 --- a/src/mesa/drivers/dri/r300/r300_vertprog.h +++ b/src/mesa/drivers/dri/r300/r300_vertprog.h @@ -6,6 +6,6 @@ void r300SetupVertexProgram(r300ContextPtr rmesa); -struct r300_vertex_program * r300SelectAndTranslateVertexShader(GLcontext *ctx); +struct r300_vertex_program * r300SelectAndTranslateVertexShader(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/r300/radeon_context.h b/src/mesa/drivers/dri/r300/radeon_context.h index da4812d323..52b7fb91e6 100644 --- a/src/mesa/drivers/dri/r300/radeon_context.h +++ b/src/mesa/drivers/dri/r300/radeon_context.h @@ -49,12 +49,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "drm.h" #include "dri_util.h" -#include "radeon_screen.h" - #define FALLBACK( radeon, bit, mode ) fprintf(stderr, "%s:%s\n", __LINE__, __FILE__); /* TCL fallbacks */ -extern void radeonTclFallback(GLcontext * ctx, GLuint bit, GLboolean mode); +extern void radeonTclFallback(struct gl_context * ctx, GLuint bit, GLboolean mode); #define TCL_FALLBACK( ctx, bit, mode ) ; diff --git a/src/mesa/drivers/dri/r600/evergreen_blit.c b/src/mesa/drivers/dri/r600/evergreen_blit.c index 1ed8a08b78..fc9fa9d22c 100644 --- a/src/mesa/drivers/dri/r600/evergreen_blit.c +++ b/src/mesa/drivers/dri/r600/evergreen_blit.c @@ -423,7 +423,7 @@ eg_set_render_target(context_t *context, struct radeon_bo *bo, gl_format mesa_fo } -static inline void eg_load_shaders(GLcontext * ctx) +static inline void eg_load_shaders(struct gl_context * ctx) { radeonContextPtr radeonctx = RADEON_CONTEXT(ctx); @@ -1688,7 +1688,7 @@ static GLboolean eg_validate_buffers(context_t *rmesa, return GL_TRUE; } -unsigned evergreen_blit(GLcontext *ctx, +unsigned evergreen_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r600/evergreen_blit.h b/src/mesa/drivers/dri/r600/evergreen_blit.h index 68d072ecb0..783f83f089 100644 --- a/src/mesa/drivers/dri/r600/evergreen_blit.h +++ b/src/mesa/drivers/dri/r600/evergreen_blit.h @@ -30,7 +30,7 @@ unsigned evergreen_check_blit(gl_format mesa_format); -unsigned evergreen_blit(GLcontext *ctx, +unsigned evergreen_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r600/evergreen_chip.c b/src/mesa/drivers/dri/r600/evergreen_chip.c index 1050c776bf..2c9e4e2b84 100644 --- a/src/mesa/drivers/dri/r600/evergreen_chip.c +++ b/src/mesa/drivers/dri/r600/evergreen_chip.c @@ -60,7 +60,7 @@ do { \ insert_at_tail(&context->radeon.hw.atomlist, &context->evergreen_atoms.ATOM); \ } while (0) -static int check_queryobj(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_queryobj(struct gl_context *ctx, struct radeon_state_atom *atom) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = radeon->query.current; @@ -74,7 +74,7 @@ static int check_queryobj(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static void evergreenSendQueryBegin(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendQueryBegin(struct gl_context *ctx, struct radeon_state_atom *atom) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = radeon->query.current; @@ -114,12 +114,12 @@ static void evergreen_init_query_stateobj(radeonContextPtr radeon, int SZ) } -static int check_always(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_always(struct gl_context *ctx, struct radeon_state_atom *atom) { return atom->cmd_size; } -static void evergreenSendTexState(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendTexState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -221,7 +221,7 @@ static void evergreenSendTexState(GLcontext *ctx, struct radeon_state_atom *atom } } -static int check_evergreen_tx(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_evergreen_tx(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); unsigned int i, count = 0; @@ -238,7 +238,7 @@ static int check_evergreen_tx(GLcontext *ctx, struct radeon_state_atom *atom) return count * 37 + 6; } -static void evergreenSendSQConfig(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendSQConfig(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -269,13 +269,12 @@ static void evergreenSendSQConfig(GLcontext *ctx, struct radeon_state_atom *atom } extern int evergreen_getTypeSize(GLenum type); -static void evergreenSetupVTXConstants(GLcontext * ctx, +static void evergreenSetupVTXConstants(struct gl_context * ctx, void * pAos, StreamDesc * pStreamDesc) { context_t *context = EVERGREEN_CONTEXT(ctx); struct radeon_aos * paos = (struct radeon_aos *)pAos; - unsigned int nVBsize; BATCH_LOCALS(&context->radeon); unsigned int uSQ_VTX_CONSTANT_WORD0_0; @@ -289,21 +288,11 @@ static void evergreenSetupVTXConstants(GLcontext * ctx, r700SyncSurf(context, paos->bo, RADEON_GEM_DOMAIN_GTT, 0, VC_ACTION_ENA_bit); - if(0 == pStreamDesc->stride) - { - nVBsize = paos->count * pStreamDesc->size * getTypeSize(pStreamDesc->type); - } - else - { - nVBsize = (paos->count - 1) * pStreamDesc->stride - + pStreamDesc->size * getTypeSize(pStreamDesc->type); - } - //uSQ_VTX_CONSTANT_WORD0_0 uSQ_VTX_CONSTANT_WORD0_0 = paos->offset; //uSQ_VTX_CONSTANT_WORD1_0 - uSQ_VTX_CONSTANT_WORD1_0 = nVBsize; + uSQ_VTX_CONSTANT_WORD1_0 = paos->bo->size - paos->offset - 1; //uSQ_VTX_CONSTANT_WORD2_0 SETfield(uSQ_VTX_CONSTANT_WORD2_0, @@ -368,7 +357,7 @@ static void evergreenSetupVTXConstants(GLcontext * ctx, COMMIT_BATCH(); } -static int check_evergreen_vtx(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_evergreen_vtx(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); int count = context->radeon.tcl.aos_count * 12; @@ -380,7 +369,7 @@ static int check_evergreen_vtx(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static void evergreenSendVTX(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendVTX(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); struct evergreen_vertex_program *vp = (struct evergreen_vertex_program *)(context->selected_vp); @@ -391,17 +380,6 @@ static void evergreenSendVTX(GLcontext *ctx, struct radeon_state_atom *atom) if (context->radeon.tcl.aos_count == 0) return; - BEGIN_BATCH_NO_AUTOSTATE(6); - R600_OUT_BATCH(CP_PACKET3(R600_IT_SET_CTL_CONST, 1)); - R600_OUT_BATCH(mmSQ_VTX_BASE_VTX_LOC - ASIC_CTL_CONST_BASE_INDEX); - R600_OUT_BATCH(0); - - R600_OUT_BATCH(CP_PACKET3(R600_IT_SET_CTL_CONST, 1)); - R600_OUT_BATCH(mmSQ_VTX_START_INST_LOC - ASIC_CTL_CONST_BASE_INDEX); - R600_OUT_BATCH(0); - END_BATCH(); - COMMIT_BATCH(); - for(i=0; i<VERT_ATTRIB_MAX; i++) { if(vp->mesa_program->Base.InputsRead & (1 << i)) { @@ -410,9 +388,9 @@ static void evergreenSendVTX(GLcontext *ctx, struct radeon_state_atom *atom) &(context->stream_desc[j])); j++; } - } + } } -static void evergreenSendPA(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendPA(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -533,7 +511,7 @@ static void evergreenSendPA(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void evergreenSendTP(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendTP(struct gl_context *ctx, struct radeon_state_atom *atom) { /* context_t *context = EVERGREEN_CONTEXT(ctx); @@ -545,7 +523,7 @@ static void evergreenSendTP(GLcontext *ctx, struct radeon_state_atom *atom) */ } -static void evergreenSendPSresource(GLcontext *ctx) +static void evergreenSendPSresource(struct gl_context *ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -600,7 +578,7 @@ static void evergreenSendPSresource(GLcontext *ctx) COMMIT_BATCH(); } -static void evergreenSendVSresource(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendVSresource(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -656,7 +634,7 @@ static void evergreenSendVSresource(GLcontext *ctx, struct radeon_state_atom *at COMMIT_BATCH(); } -static void evergreenSendSQ(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendSQ(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -771,7 +749,7 @@ static void evergreenSendSQ(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void evergreenSendSPI(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendSPI(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -843,7 +821,7 @@ static void evergreenSendSPI(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void evergreenSendSX(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendSX(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -865,7 +843,7 @@ static void evergreenSetDepthTarget(context_t *context) { EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); struct radeon_renderbuffer *rrb; - unsigned int nPitchInPixel, height; + unsigned int nPitchInPixel, height, offtostencil; rrb = radeon_get_depthbuffer(&context->radeon); if (!rrb) @@ -898,22 +876,28 @@ static void evergreenSetDepthTarget(context_t *context) if(4 == rrb->cpp) { - SETfield(evergreen->DB_Z_INFO.u32All, DEPTH_8_24, + SETfield(evergreen->DB_Z_INFO.u32All, EG_Z_24, EG_DB_Z_INFO__FORMAT_shift, EG_DB_Z_INFO__FORMAT_mask); } else { - SETfield(evergreen->DB_Z_INFO.u32All, DEPTH_16, + SETfield(evergreen->DB_Z_INFO.u32All, EG_Z_16, EG_DB_Z_INFO__FORMAT_shift, EG_DB_Z_INFO__FORMAT_mask); } SETfield(evergreen->DB_Z_INFO.u32All, ARRAY_1D_TILED_THIN1, EG_DB_Z_INFO__ARRAY_MODE_shift, EG_DB_Z_INFO__ARRAY_MODE_mask); + + + offtostencil = ((height * rrb->pitch) + 255) & ~255; + evergreen->DB_STENCIL_WRITE_BASE.u32All = offtostencil >> 8; + evergreen->DB_STENCIL_READ_BASE.u32All = offtostencil >> 8; + } -static void evergreenSendDB(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendDB(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -971,17 +955,18 @@ static void evergreenSendDB(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); rrb = radeon_get_depthbuffer(&context->radeon); + if( (rrb != NULL) && (rrb->bo != NULL) ) { /* make the hw happy */ BEGIN_BATCH_NO_AUTOSTATE(3 + 2); - EVERGREEN_OUT_BATCH_REGVAL(EG_DB_HTILE_DATA_BASE, evergreen->DB_HTILE_DATA_BASE.u32All); - R600_OUT_BATCH_RELOC(evergreen->DB_HTILE_DATA_BASE.u32All, + EVERGREEN_OUT_BATCH_REGVAL(EG_DB_HTILE_DATA_BASE, evergreen->DB_HTILE_DATA_BASE.u32All); + R600_OUT_BATCH_RELOC(evergreen->DB_HTILE_DATA_BASE.u32All, rrb->bo, evergreen->DB_HTILE_DATA_BASE.u32All, 0, RADEON_GEM_DOMAIN_VRAM, 0); - END_BATCH(); + END_BATCH(); //5 BEGIN_BATCH_NO_AUTOSTATE(3 + 2); @@ -1015,26 +1000,35 @@ static void evergreenSendDB(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } } -/* + if (ctx->DrawBuffer) { rrb = radeon_get_renderbuffer(ctx->DrawBuffer, BUFFER_STENCIL); if((rrb != NULL) && (rrb->bo != NULL)) - { + { //5 BEGIN_BATCH_NO_AUTOSTATE(3 + 2); - EVERGREEN_OUT_BATCH_REGVAL(EG_DB_STENCIL_INFO, evergreen->DB_Z_INFO.u32All); + EVERGREEN_OUT_BATCH_REGVAL(EG_DB_STENCIL_INFO, evergreen->DB_STENCIL_INFO.u32All); R600_OUT_BATCH_RELOC(evergreen->DB_STENCIL_INFO.u32All, rrb->bo, evergreen->DB_STENCIL_INFO.u32All, 0, RADEON_GEM_DOMAIN_VRAM, 0); END_BATCH(); + + //4 + BEGIN_BATCH_NO_AUTOSTATE(4); + R600_OUT_BATCH_REGSEQ(DB_STENCILREFMASK, 2); + R600_OUT_BATCH(evergreen->DB_STENCILREFMASK.u32All); + R600_OUT_BATCH(evergreen->DB_STENCILREFMASK_BF.u32All); + END_BATCH(); + //------------------------ //10 if((evergreen->DB_DEPTH_CONTROL.u32All & STENCIL_ENABLE_bit) > 0) { - BEGIN_BATCH_NO_AUTOSTATE(3 + 2); + + BEGIN_BATCH_NO_AUTOSTATE(3 + 2); EVERGREEN_OUT_BATCH_REGVAL(EG_DB_STENCIL_READ_BASE, evergreen->DB_STENCIL_READ_BASE.u32All); R600_OUT_BATCH_RELOC(evergreen->DB_STENCIL_READ_BASE.u32All, rrb->bo, @@ -1052,7 +1046,7 @@ static void evergreenSendDB(GLcontext *ctx, struct radeon_state_atom *atom) } } } -*/ + COMMIT_BATCH(); } @@ -1372,7 +1366,7 @@ static void evergreenSetRenderTarget(context_t *context, int id) evergreen->render_target[id].enabled = GL_TRUE; } -static void evergreenSendCB(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendCB(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1415,9 +1409,17 @@ static void evergreenSendCB(GLcontext *ctx, struct radeon_state_atom *atom) R600_OUT_BATCH(evergreen->render_target[id].CB_COLOR0_VIEW.u32All); END_BATCH(); - BEGIN_BATCH_NO_AUTOSTATE(4); - EVERGREEN_OUT_BATCH_REGSEQ(EG_CB_COLOR0_ATTRIB, 2); + BEGIN_BATCH_NO_AUTOSTATE(3 + 2); + EVERGREEN_OUT_BATCH_REGSEQ(EG_CB_COLOR0_ATTRIB, 1); R600_OUT_BATCH(evergreen->render_target[id].CB_COLOR0_ATTRIB.u32All); + R600_OUT_BATCH_RELOC(0, + rrb->bo, + 0, + 0, RADEON_GEM_DOMAIN_VRAM, 0); + END_BATCH(); + + BEGIN_BATCH_NO_AUTOSTATE(3); + EVERGREEN_OUT_BATCH_REGSEQ(EG_CB_COLOR0_DIM, 1); R600_OUT_BATCH(evergreen->render_target[id].CB_COLOR0_DIM.u32All); /* R600_OUT_BATCH(evergreen->render_target[id].CB_COLOR0_CMASK.u32All); @@ -1449,7 +1451,7 @@ static void evergreenSendCB(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void evergreenSendVGT(GLcontext *ctx, struct radeon_state_atom *atom) +static void evergreenSendVGT(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1514,7 +1516,7 @@ void evergreenInitAtoms(context_t *context) context->radeon.hw.atomlist.name = "atom-list"; EVERGREEN_ALLOC_STATE(init, always, 19, evergreenSendSQConfig); - EVERGREEN_ALLOC_STATE(vtx, evergreen_vtx, (6 + (VERT_ATTRIB_MAX * 12)), evergreenSendVTX); + EVERGREEN_ALLOC_STATE(vtx, evergreen_vtx, (VERT_ATTRIB_MAX * 12), evergreenSendVTX); EVERGREEN_ALLOC_STATE(pa, always, 124, evergreenSendPA); EVERGREEN_ALLOC_STATE(tp, always, 0, evergreenSendTP); EVERGREEN_ALLOC_STATE(sq, always, 86, evergreenSendSQ); /* 85 */ @@ -1522,8 +1524,8 @@ void evergreenInitAtoms(context_t *context) EVERGREEN_ALLOC_STATE(spi, always, 59, evergreenSendSPI); EVERGREEN_ALLOC_STATE(sx, always, 9, evergreenSendSX); EVERGREEN_ALLOC_STATE(tx, evergreen_tx, (R700_TEXTURE_NUMBERUNITS * (21+5) + 6), evergreenSendTexState); /* 21 for resource, 5 for sampler */ - EVERGREEN_ALLOC_STATE(db, always, 65, evergreenSendDB); - EVERGREEN_ALLOC_STATE(cb, always, 33, evergreenSendCB); + EVERGREEN_ALLOC_STATE(db, always, 69, evergreenSendDB); + EVERGREEN_ALLOC_STATE(cb, always, 37, evergreenSendCB); EVERGREEN_ALLOC_STATE(vgt, always, 29, evergreenSendVGT); evergreen_init_query_stateobj(&context->radeon, 6 * 2); diff --git a/src/mesa/drivers/dri/r600/evergreen_context.c b/src/mesa/drivers/dri/r600/evergreen_context.c index fff7c20031..911775f590 100644 --- a/src/mesa/drivers/dri/r600/evergreen_context.c +++ b/src/mesa/drivers/dri/r600/evergreen_context.c @@ -61,7 +61,7 @@ static void evergreen_vtbl_pre_emit_atoms(radeonContextPtr radeon) r700Start3D((context_t *)radeon); } -static void evergreen_fallback(GLcontext *ctx, GLuint bit, GLboolean mode) +static void evergreen_fallback(struct gl_context *ctx, GLuint bit, GLboolean mode) { context_t *context = EVERGREEN_CONTEXT(ctx); if (mode) diff --git a/src/mesa/drivers/dri/r600/evergreen_fragprog.c b/src/mesa/drivers/dri/r600/evergreen_fragprog.c index 0e7edf4fbe..cfb923efdd 100644 --- a/src/mesa/drivers/dri/r600/evergreen_fragprog.c +++ b/src/mesa/drivers/dri/r600/evergreen_fragprog.c @@ -44,7 +44,7 @@ #include "evergreen_vertprog.h" #include "evergreen_fragprog.h" -void evergreen_insert_wpos_code(GLcontext *ctx, struct gl_fragment_program *fprog) +void evergreen_insert_wpos_code(struct gl_context *ctx, struct gl_fragment_program *fprog) { static const gl_state_index winstate[STATE_LENGTH] = { STATE_INTERNAL, STATE_FB_SIZE, 0, 0, 0}; @@ -95,7 +95,7 @@ void evergreen_insert_wpos_code(GLcontext *ctx, struct gl_fragment_program *fpro //TODO : Validate FP input with VP output. void evergreen_Map_Fragment_Program(r700_AssemblerBase *pAsm, struct gl_fragment_program *mesa_fp, - GLcontext *ctx) + struct gl_context *ctx) { unsigned int unBit; unsigned int i; @@ -354,7 +354,7 @@ GLboolean evergreen_Find_Instruction_Dependencies_fp(struct evergreen_fragment_p GLboolean evergreenTranslateFragmentShader(struct evergreen_fragment_program *fp, struct gl_fragment_program *mesa_fp, - GLcontext *ctx) + struct gl_context *ctx) { GLuint number_of_colors_exported; GLboolean z_enabled = GL_FALSE; @@ -457,7 +457,7 @@ GLboolean evergreenTranslateFragmentShader(struct evergreen_fragment_program *fp return GL_TRUE; } -void evergreenSelectFragmentShader(GLcontext *ctx) +void evergreenSelectFragmentShader(struct gl_context *ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); struct evergreen_fragment_program *fp = (struct evergreen_fragment_program *) @@ -471,7 +471,7 @@ void evergreenSelectFragmentShader(GLcontext *ctx) evergreenTranslateFragmentShader(fp, &(fp->mesa_program), ctx); } -void * evergreenGetActiveFpShaderBo(GLcontext * ctx) +void * evergreenGetActiveFpShaderBo(struct gl_context * ctx) { struct evergreen_fragment_program *fp = (struct evergreen_fragment_program *) (ctx->FragmentProgram._Current); @@ -479,7 +479,7 @@ void * evergreenGetActiveFpShaderBo(GLcontext * ctx) return fp->shaderbo; } -void * evergreenGetActiveFpShaderConstBo(GLcontext * ctx) +void * evergreenGetActiveFpShaderConstBo(struct gl_context * ctx) { struct evergreen_fragment_program *fp = (struct evergreen_fragment_program *) (ctx->FragmentProgram._Current); @@ -487,7 +487,7 @@ void * evergreenGetActiveFpShaderConstBo(GLcontext * ctx) return fp->constbo0; } -GLboolean evergreenSetupFragmentProgram(GLcontext * ctx) +GLboolean evergreenSetupFragmentProgram(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -737,7 +737,7 @@ GLboolean evergreenSetupFragmentProgram(GLcontext * ctx) return GL_TRUE; } -GLboolean evergreenSetupFPconstants(GLcontext * ctx) +GLboolean evergreenSetupFPconstants(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); diff --git a/src/mesa/drivers/dri/r600/evergreen_fragprog.h b/src/mesa/drivers/dri/r600/evergreen_fragprog.h index 0e200bf383..97f06a75fc 100644 --- a/src/mesa/drivers/dri/r600/evergreen_fragprog.h +++ b/src/mesa/drivers/dri/r600/evergreen_fragprog.h @@ -51,27 +51,27 @@ struct evergreen_fragment_program }; /* Internal */ -void evergreen_insert_wpos_code(GLcontext *ctx, struct gl_fragment_program *fprog); +void evergreen_insert_wpos_code(struct gl_context *ctx, struct gl_fragment_program *fprog); void evergreen_Map_Fragment_Program(r700_AssemblerBase *pAsm, struct gl_fragment_program *mesa_fp, - GLcontext *ctx); + struct gl_context *ctx); GLboolean evergreen_Find_Instruction_Dependencies_fp(struct evergreen_fragment_program *fp, struct gl_fragment_program *mesa_fp); GLboolean evergreenTranslateFragmentShader(struct evergreen_fragment_program *fp, struct gl_fragment_program *mesa_vp, - GLcontext *ctx); + struct gl_context *ctx); /* Interface */ -extern void evergreenSelectFragmentShader(GLcontext *ctx); +extern void evergreenSelectFragmentShader(struct gl_context *ctx); -extern GLboolean evergreenSetupFragmentProgram(GLcontext * ctx); +extern GLboolean evergreenSetupFragmentProgram(struct gl_context * ctx); -extern GLboolean evergreenSetupFPconstants(GLcontext * ctx); +extern GLboolean evergreenSetupFPconstants(struct gl_context * ctx); -extern void * evergreenGetActiveFpShaderBo(GLcontext * ctx); +extern void * evergreenGetActiveFpShaderBo(struct gl_context * ctx); -extern void * evergreenGetActiveFpShaderConstBo(GLcontext * ctx); +extern void * evergreenGetActiveFpShaderConstBo(struct gl_context * ctx); #endif /*_EVERGREEN_FRAGPROG_H_*/ diff --git a/src/mesa/drivers/dri/r600/evergreen_ioctl.c b/src/mesa/drivers/dri/r600/evergreen_ioctl.c index 5c1270790d..19f8e6b3ec 100644 --- a/src/mesa/drivers/dri/r600/evergreen_ioctl.c +++ b/src/mesa/drivers/dri/r600/evergreen_ioctl.c @@ -40,7 +40,7 @@ #include "r700_clear.h" -void evergreenClear(GLcontext * ctx, GLbitfield mask) +void evergreenClear(struct gl_context * ctx, GLbitfield mask) { r700Clear(ctx, mask); } diff --git a/src/mesa/drivers/dri/r600/evergreen_ioctl.h b/src/mesa/drivers/dri/r600/evergreen_ioctl.h index 3c663a7083..a41b5b6033 100644 --- a/src/mesa/drivers/dri/r600/evergreen_ioctl.h +++ b/src/mesa/drivers/dri/r600/evergreen_ioctl.h @@ -30,7 +30,7 @@ #include "r600_context.h" #include "radeon_drm.h" -extern void evergreenClear(GLcontext * ctx, GLbitfield mask); +extern void evergreenClear(struct gl_context * ctx, GLbitfield mask); extern void evergreenInitIoctlFuncs(struct dd_function_table *functions); #endif /* _EVERGREEN_IOCTL_H_ */ diff --git a/src/mesa/drivers/dri/r600/evergreen_oglprog.c b/src/mesa/drivers/dri/r600/evergreen_oglprog.c index 9fe523234c..a2a361f32e 100644 --- a/src/mesa/drivers/dri/r600/evergreen_oglprog.c +++ b/src/mesa/drivers/dri/r600/evergreen_oglprog.c @@ -40,7 +40,7 @@ #include "evergreen_vertprog.h" -static void evergreen_freeVertProgCache(GLcontext *ctx, struct r700_vertex_program_cont *cache) +static void evergreen_freeVertProgCache(struct gl_context *ctx, struct r700_vertex_program_cont *cache) { struct evergreen_vertex_program *tmp, *vp = cache->progs; @@ -64,7 +64,7 @@ static void evergreen_freeVertProgCache(GLcontext *ctx, struct r700_vertex_progr } } -static struct gl_program *evergreenNewProgram(GLcontext * ctx, +static struct gl_program *evergreenNewProgram(struct gl_context * ctx, GLenum target, GLuint id) { @@ -109,7 +109,7 @@ static struct gl_program *evergreenNewProgram(GLcontext * ctx, return pProgram; } -static void evergreenDeleteProgram(GLcontext * ctx, struct gl_program *prog) +static void evergreenDeleteProgram(struct gl_context * ctx, struct gl_program *prog) { struct evergreen_vertex_program_cont *vpc = (struct evergreen_vertex_program_cont *)prog; struct evergreen_fragment_program * fp; @@ -147,7 +147,7 @@ static void evergreenDeleteProgram(GLcontext * ctx, struct gl_program *prog) } static GLboolean -evergreenProgramStringNotify(GLcontext * ctx, GLenum target, struct gl_program *prog) +evergreenProgramStringNotify(struct gl_context * ctx, GLenum target, struct gl_program *prog) { struct evergreen_vertex_program_cont *vpc = (struct evergreen_vertex_program_cont *)prog; struct evergreen_fragment_program * fp = (struct evergreen_fragment_program*)prog; @@ -178,7 +178,7 @@ evergreenProgramStringNotify(GLcontext * ctx, GLenum target, struct gl_program * return GL_TRUE; } -static GLboolean evergreenIsProgramNative(GLcontext * ctx, GLenum target, struct gl_program *prog) +static GLboolean evergreenIsProgramNative(struct gl_context * ctx, GLenum target, struct gl_program *prog) { return GL_TRUE; diff --git a/src/mesa/drivers/dri/r600/evergreen_render.c b/src/mesa/drivers/dri/r600/evergreen_render.c index 85b2f9d6ab..0c0eeca1fc 100644 --- a/src/mesa/drivers/dri/r600/evergreen_render.c +++ b/src/mesa/drivers/dri/r600/evergreen_render.c @@ -148,7 +148,8 @@ static int evergreenNumVerts(int num_verts, int prim) //same return num_verts - verts_off; } -static void evergreenRunRenderPrimitive(GLcontext * ctx, int start, int end, int prim) //same +static void evergreenRunRenderPrimitive(struct gl_context * ctx, int start, int end, int prim, + GLint basevertex) //same { context_t *context = EVERGREEN_CONTEXT(ctx); BATCH_LOCALS(&context->radeon); @@ -186,6 +187,7 @@ static void evergreenRunRenderPrimitive(GLcontext * ctx, int start, int end, int total_emit = 3 /* VGT_PRIMITIVE_TYPE */ + 2 /* VGT_INDEX_TYPE */ + 2 /* NUM_INSTANCES */ + + 4 /* VTX_BASE_VTX_LOC + VTX_START_INST_LOC */ + 5 + 2; /* DRAW_INDEX */ BEGIN_BATCH_NO_AUTOSTATE(total_emit); @@ -198,6 +200,11 @@ static void evergreenRunRenderPrimitive(GLcontext * ctx, int start, int end, int // num instances R600_OUT_BATCH(CP_PACKET3(R600_IT_NUM_INSTANCES, 0)); R600_OUT_BATCH(1); + /* offset */ + R600_OUT_BATCH(CP_PACKET3(R600_IT_SET_CTL_CONST, 2)); + R600_OUT_BATCH(mmSQ_VTX_BASE_VTX_LOC - ASIC_CTL_CONST_BASE_INDEX); + R600_OUT_BATCH(basevertex); //VTX_BASE_VTX_LOC + R600_OUT_BATCH(0); //VTX_START_INST_LOC // draw packet R600_OUT_BATCH(CP_PACKET3(R600_IT_DRAW_INDEX, 3)); R600_OUT_BATCH(context->ind_buf.bo_offset); @@ -212,7 +219,7 @@ static void evergreenRunRenderPrimitive(GLcontext * ctx, int start, int end, int COMMIT_BATCH(); } -static void evergreenRunRenderPrimitiveImmediate(GLcontext * ctx, int start, int end, int prim) //same +static void evergreenRunRenderPrimitiveImmediate(struct gl_context * ctx, int start, int end, int prim) //same { context_t *context = EVERGREEN_CONTEXT(ctx); BATCH_LOCALS(&context->radeon); @@ -268,6 +275,7 @@ static void evergreenRunRenderPrimitiveImmediate(GLcontext * ctx, int start, int total_emit += 3 /* VGT_PRIMITIVE_TYPE */ + 2 /* VGT_INDEX_TYPE */ + 2 /* NUM_INSTANCES */ + + 4 /* VTX_BASE_VTX_LOC + VTX_START_INST_LOC */ + 3; /* DRAW */ BEGIN_BATCH_NO_AUTOSTATE(total_emit); @@ -280,6 +288,11 @@ static void evergreenRunRenderPrimitiveImmediate(GLcontext * ctx, int start, int // num instances R600_OUT_BATCH(CP_PACKET3(R600_IT_NUM_INSTANCES, 0)); R600_OUT_BATCH(1); + /* offset */ + R600_OUT_BATCH(CP_PACKET3(R600_IT_SET_CTL_CONST, 2)); + R600_OUT_BATCH(mmSQ_VTX_BASE_VTX_LOC - ASIC_CTL_CONST_BASE_INDEX); + R600_OUT_BATCH(0); //VTX_BASE_VTX_LOC + R600_OUT_BATCH(0); //VTX_START_INST_LOC // draw packet if(start == 0) { @@ -350,7 +363,7 @@ static void evergreenRunRenderPrimitiveImmediate(GLcontext * ctx, int start, int * Convert attribute data type to float * If the attribute uses named buffer object replace the bo with newly allocated bo */ -static void evergreenConvertAttrib(GLcontext *ctx, int count, +static void evergreenConvertAttrib(struct gl_context *ctx, int count, const struct gl_client_array *input, struct StreamDesc *attr) { @@ -429,7 +442,7 @@ static void evergreenConvertAttrib(GLcontext *ctx, int count, } } -static void evergreenFixupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer *mesa_ind_buf) +static void evergreenFixupIndexBuffer(struct gl_context *ctx, const struct _mesa_index_buffer *mesa_ind_buf) { context_t *context = EVERGREEN_CONTEXT(ctx); GLvoid *src_ptr; @@ -504,7 +517,7 @@ static void evergreenFixupIndexBuffer(GLcontext *ctx, const struct _mesa_index_b } } -static GLboolean evergreen_check_fallbacks(GLcontext *ctx) //same +static GLboolean evergreen_check_fallbacks(struct gl_context *ctx) //same { if (ctx->RenderMode != GL_RENDER) return GL_TRUE; @@ -515,7 +528,7 @@ static GLboolean evergreen_check_fallbacks(GLcontext *ctx) //same /* start 3d, idle, cb/db flush */ #define PRE_EMIT_STATE_BUFSZ 5 + 5 + 14 -static GLuint evergreenPredictRenderSize(GLcontext* ctx, +static GLuint evergreenPredictRenderSize(struct gl_context* ctx, const struct _mesa_prim *prim, const struct _mesa_index_buffer *ib, GLuint nr_prims) @@ -527,16 +540,16 @@ static GLuint evergreenPredictRenderSize(GLcontext* ctx, dwords = PRE_EMIT_STATE_BUFSZ; if (ib) - dwords += nr_prims * 14; + dwords += nr_prims * 18; else { for (i = 0; i < nr_prims; ++i) { if (prim[i].start == 0) - dwords += 10; + dwords += 14; else if (prim[i].count > 0xffff) - dwords += prim[i].count + 10; + dwords += prim[i].count + 14; else - dwords += ((prim[i].count + 1) / 2) + 10; + dwords += ((prim[i].count + 1) / 2) + 14; } } @@ -554,7 +567,7 @@ static GLuint evergreenPredictRenderSize(GLcontext* ctx, } -static void evergreenSetupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer *mesa_ind_buf) +static void evergreenSetupIndexBuffer(struct gl_context *ctx, const struct _mesa_index_buffer *mesa_ind_buf) { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -607,7 +620,7 @@ static void evergreenSetupIndexBuffer(GLcontext *ctx, const struct _mesa_index_b } } -static void evergreenAlignDataToDword(GLcontext *ctx, +static void evergreenAlignDataToDword(struct gl_context *ctx, const struct gl_client_array *input, int count, struct StreamDesc *attr) @@ -649,7 +662,7 @@ static void evergreenAlignDataToDword(GLcontext *ctx, attr->stride = dst_stride; } -static void evergreenSetupStreams(GLcontext *ctx, const struct gl_client_array *input[], int count) +static void evergreenSetupStreams(struct gl_context *ctx, const struct gl_client_array *input[], int count) { context_t *context = EVERGREEN_CONTEXT(ctx); GLuint stride; @@ -665,11 +678,11 @@ static void evergreenSetupStreams(GLcontext *ctx, const struct gl_client_array * stride = (input[i]->StrideB == 0) ? getTypeSize(input[i]->Type) * input[i]->Size : input[i]->StrideB; - if (input[i]->Type == GL_DOUBLE || input[i]->Type == GL_UNSIGNED_INT || input[i]->Type == GL_INT || + if (input[i]->Type == GL_DOUBLE || input[i]->Type == GL_UNSIGNED_INT || input[i]->Type == GL_INT #if MESA_BIG_ENDIAN - getTypeSize(input[i]->Type) != 4 || + || getTypeSize(input[i]->Type) != 4 #endif - stride < 4) + ) { evergreenConvertAttrib(ctx, count, input[i], &context->stream_desc[index]); } @@ -677,19 +690,10 @@ static void evergreenSetupStreams(GLcontext *ctx, const struct gl_client_array * { if (input[i]->BufferObj->Name) { - if (stride % 4 != 0) - { - assert(((intptr_t) input[i]->Ptr) % input[i]->StrideB == 0); - evergreenAlignDataToDword(ctx, input[i], count, &context->stream_desc[index]); - context->stream_desc[index].is_named_bo = GL_FALSE; - } - else - { - context->stream_desc[index].stride = input[i]->StrideB; - context->stream_desc[index].bo_offset = (intptr_t) input[i]->Ptr; - context->stream_desc[index].bo = get_radeon_buffer_object(input[i]->BufferObj)->bo; - context->stream_desc[index].is_named_bo = GL_TRUE; - } + context->stream_desc[index].stride = input[i]->StrideB; + context->stream_desc[index].bo_offset = (intptr_t) input[i]->Ptr; + context->stream_desc[index].bo = get_radeon_buffer_object(input[i]->BufferObj)->bo; + context->stream_desc[index].is_named_bo = GL_TRUE; } else { @@ -759,7 +763,7 @@ static void evergreenSetupStreams(GLcontext *ctx, const struct gl_client_array * RADEON_GEM_DOMAIN_GTT, 0); } -static void evergreenFreeData(GLcontext *ctx) +static void evergreenFreeData(struct gl_context *ctx) { /* Need to zero tcl.aos[n].bo and tcl.elt_dma_bo * to prevent double unref in radeonReleaseArrays @@ -795,7 +799,7 @@ static void evergreenFreeData(GLcontext *ctx) } } -static GLboolean evergreenTryDrawPrims(GLcontext *ctx, +static GLboolean evergreenTryDrawPrims(struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -857,7 +861,8 @@ static GLboolean evergreenTryDrawPrims(GLcontext *ctx, evergreenRunRenderPrimitive(ctx, prim[i].start, prim[i].start + prim[i].count, - prim[i].mode); + prim[i].mode, + prim[i].basevertex); else evergreenRunRenderPrimitiveImmediate(ctx, prim[i].start, @@ -893,7 +898,7 @@ static GLboolean evergreenTryDrawPrims(GLcontext *ctx, return GL_TRUE; } -static void evergreenDrawPrims(GLcontext *ctx, +static void evergreenDrawPrims(struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -907,15 +912,16 @@ static void evergreenDrawPrims(GLcontext *ctx, /* This check should get folded into just the places that * min/max index are really needed. */ - if (!index_bounds_valid) { - vbo_get_minmax_index(ctx, prim, ib, &min_index, &max_index); - } - - if (min_index) { - vbo_rebase_prims( ctx, arrays, prim, nr_prims, ib, min_index, max_index, evergreenDrawPrims ); - return; + if (!vbo_all_varyings_in_vbos(arrays)) { + if (!index_bounds_valid) + vbo_get_minmax_index(ctx, prim, ib, &min_index, &max_index); + /* do we want to rebase, minimizes the + * amount of data to upload? */ + if (min_index) { + vbo_rebase_prims( ctx, arrays, prim, nr_prims, ib, min_index, max_index, evergreenDrawPrims ); + return; + } } - /* Make an attempt at drawing */ retval = evergreenTryDrawPrims(ctx, arrays, prim, nr_prims, ib, min_index, max_index); @@ -926,7 +932,7 @@ static void evergreenDrawPrims(GLcontext *ctx, } } -void evergreenInitDraw(GLcontext *ctx) +void evergreenInitDraw(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); diff --git a/src/mesa/drivers/dri/r600/evergreen_state.c b/src/mesa/drivers/dri/r600/evergreen_state.c index 931478caa5..a77be183a1 100644 --- a/src/mesa/drivers/dri/r600/evergreen_state.c +++ b/src/mesa/drivers/dri/r600/evergreen_state.c @@ -53,9 +53,9 @@ #include "evergreen_fragprog.h" #include "evergreen_tex.h" -void evergreenUpdateStateParameters(GLcontext * ctx, GLuint new_state); //same +void evergreenUpdateStateParameters(struct gl_context * ctx, GLuint new_state); //same -void evergreenUpdateShaders(GLcontext * ctx) +void evergreenUpdateShaders(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -73,7 +73,7 @@ void evergreenUpdateShaders(GLcontext * ctx) context->radeon.NewGLState = 0; } -void evergreeUpdateShaders(GLcontext * ctx) +void evergreeUpdateShaders(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); @@ -94,7 +94,7 @@ void evergreeUpdateShaders(GLcontext * ctx) /* * To correctly position primitives: */ -void evergreenUpdateViewportOffset(GLcontext * ctx) //------------------ +void evergreenUpdateViewportOffset(struct gl_context * ctx) //------------------ { context_t *context = R700_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -120,7 +120,7 @@ void evergreenUpdateViewportOffset(GLcontext * ctx) //------------------ radeonUpdateScissor(ctx); } -void evergreenUpdateStateParameters(GLcontext * ctx, GLuint new_state) //same +void evergreenUpdateStateParameters(struct gl_context * ctx, GLuint new_state) //same { struct evergreen_fragment_program *fp = (struct evergreen_fragment_program *)ctx->FragmentProgram._Current; @@ -144,7 +144,7 @@ void evergreenUpdateStateParameters(GLcontext * ctx, GLuint new_state) //same /** * Called by Mesa after an internal state update. */ -static void evergreenInvalidateState(GLcontext * ctx, GLuint new_state) //same +static void evergreenInvalidateState(struct gl_context * ctx, GLuint new_state) //same { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -212,7 +212,7 @@ static void evergreenInvalidateState(GLcontext * ctx, GLuint new_state) //same context->radeon.NewGLState |= new_state; } -static void evergreenSetAlphaState(GLcontext * ctx) //same +static void evergreenSetAlphaState(struct gl_context * ctx) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -259,14 +259,14 @@ static void evergreenSetAlphaState(GLcontext * ctx) //same } } -static void evergreenAlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) //same +static void evergreenAlphaFunc(struct gl_context * ctx, GLenum func, GLfloat ref) //same { (void)func; (void)ref; evergreenSetAlphaState(ctx); } -static void evergreenBlendColor(GLcontext * ctx, const GLfloat cf[4]) //same +static void evergreenBlendColor(struct gl_context * ctx, const GLfloat cf[4]) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -334,7 +334,7 @@ static int evergreenblend_factor(GLenum factor, GLboolean is_src) //same } } -static void evergreenSetBlendState(GLcontext * ctx) //diff : CB_COLOR_CONTROL, CB_BLEND0_CONTROL bits +static void evergreenSetBlendState(struct gl_context * ctx) //diff : CB_COLOR_CONTROL, CB_BLEND0_CONTROL bits { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -459,13 +459,13 @@ static void evergreenSetBlendState(GLcontext * ctx) //diff : CB_COLOR_CONTROL, C evergreen->CB_BLEND0_CONTROL.u32All = blend_reg; } -static void evergreenBlendEquationSeparate(GLcontext * ctx, +static void evergreenBlendEquationSeparate(struct gl_context * ctx, GLenum modeRGB, GLenum modeA) //same { evergreenSetBlendState(ctx); } -static void evergreenBlendFuncSeparate(GLcontext * ctx, +static void evergreenBlendFuncSeparate(struct gl_context * ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA) //same { @@ -513,7 +513,7 @@ static GLuint evergreen_translate_logicop(GLenum logicop) //same } } -static void evergreenSetLogicOpState(GLcontext *ctx) //diff : CB_COLOR_CONTROL.ROP3 is actually same bits. +static void evergreenSetLogicOpState(struct gl_context *ctx) //diff : CB_COLOR_CONTROL.ROP3 is actually same bits. { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -531,7 +531,7 @@ static void evergreenSetLogicOpState(GLcontext *ctx) //diff : CB_COLOR_CONTROL.R EG_CB_COLOR_CONTROL__ROP3_mask); } -static void evergreenClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) //same , but PA_CL_UCP_0_ offset diff +static void evergreenClipPlane( struct gl_context *ctx, GLenum plane, const GLfloat *eq ) //same , but PA_CL_UCP_0_ offset diff { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -549,7 +549,7 @@ static void evergreenClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq evergreen->ucp[p].PA_CL_UCP_0_W.u32All = ip[3]; } -static void evergreenSetClipPlaneState(GLcontext * ctx, GLenum cap, GLboolean state) //diff in func calls +static void evergreenSetClipPlaneState(struct gl_context * ctx, GLenum cap, GLboolean state) //diff in func calls { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -569,7 +569,7 @@ static void evergreenSetClipPlaneState(GLcontext * ctx, GLenum cap, GLboolean st } } -static void evergreenSetDBRenderState(GLcontext * ctx) +static void evergreenSetDBRenderState(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -629,13 +629,13 @@ static void evergreenSetDBRenderState(GLcontext * ctx) } } -void evergreenUpdateShaderStates(GLcontext * ctx) +void evergreenUpdateShaderStates(struct gl_context * ctx) { evergreenSetDBRenderState(ctx); evergreenUpdateTextureState(ctx); } -static void evergreenSetDepthState(GLcontext * ctx) //same +static void evergreenSetDepthState(struct gl_context * ctx) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -701,29 +701,30 @@ static void evergreenSetDepthState(GLcontext * ctx) //same } } -static void evergreenSetStencilState(GLcontext * ctx, GLboolean state) //same +static void evergreenSetStencilState(struct gl_context * ctx, GLboolean state) //same { - context_t *context = EVERGREEN_CONTEXT(ctx); - EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); - GLboolean hw_stencil = GL_FALSE; + context_t *context = EVERGREEN_CONTEXT(ctx); + EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); + GLboolean hw_stencil = GL_FALSE; - if (ctx->DrawBuffer) { - struct radeon_renderbuffer *rrbStencil - = radeon_get_renderbuffer(ctx->DrawBuffer, BUFFER_STENCIL); - hw_stencil = (rrbStencil && rrbStencil->bo); - } + if (ctx->DrawBuffer) { + struct radeon_renderbuffer *rrbStencil + = radeon_get_renderbuffer(ctx->DrawBuffer, BUFFER_STENCIL); + hw_stencil = (rrbStencil && rrbStencil->bo); + } - if (hw_stencil) { - EVERGREEN_STATECHANGE(context, db); - if (state) { - SETbit(evergreen->DB_DEPTH_CONTROL.u32All, STENCIL_ENABLE_bit); - SETbit(evergreen->DB_DEPTH_CONTROL.u32All, BACKFACE_ENABLE_bit); - } else - CLEARbit(evergreen->DB_DEPTH_CONTROL.u32All, STENCIL_ENABLE_bit); - } + if (hw_stencil) { + EVERGREEN_STATECHANGE(context, db); + if (state) { + SETbit(evergreen->DB_DEPTH_CONTROL.u32All, STENCIL_ENABLE_bit); + SETbit(evergreen->DB_DEPTH_CONTROL.u32All, BACKFACE_ENABLE_bit); + SETbit(evergreen->DB_STENCIL_INFO.u32All, EG_DB_STENCIL_INFO__FORMAT_bit); + } else + CLEARbit(evergreen->DB_DEPTH_CONTROL.u32All, STENCIL_ENABLE_bit); + } } -static void evergreenUpdateCulling(GLcontext * ctx) //same +static void evergreenUpdateCulling(struct gl_context * ctx) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -775,7 +776,7 @@ static void evergreenUpdateCulling(GLcontext * ctx) //same evergreen->PA_SU_SC_MODE_CNTL.u32All ^= FACE_bit; } -static void evergreenSetPolygonOffsetState(GLcontext * ctx, GLboolean state) //same +static void evergreenSetPolygonOffsetState(struct gl_context * ctx, GLboolean state) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -793,7 +794,7 @@ static void evergreenSetPolygonOffsetState(GLcontext * ctx, GLboolean state) //s } } -static void evergreenUpdateLineStipple(GLcontext * ctx) //diff +static void evergreenUpdateLineStipple(struct gl_context * ctx) //diff { /* TODO */ } @@ -912,7 +913,7 @@ void evergreenSetScissor(context_t *context) //diff evergreen->viewport[id].enabled = GL_TRUE; } -static void evergreenUpdateWindow(GLcontext * ctx, int id) //diff in calling evergreenSetScissor +static void evergreenUpdateWindow(struct gl_context * ctx, int id) //diff in calling evergreenSetScissor { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -968,7 +969,7 @@ static void evergreenUpdateWindow(GLcontext * ctx, int id) //diff in calling eve evergreenSetScissor(context); } -static void evergreenEnable(GLcontext * ctx, GLenum cap, GLboolean state) //diff in func calls +static void evergreenEnable(struct gl_context * ctx, GLenum cap, GLboolean state) //diff in func calls { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -1029,7 +1030,7 @@ static void evergreenEnable(GLcontext * ctx, GLenum cap, GLboolean state) //diff } -static void evergreenColorMask(GLcontext * ctx, +static void evergreenColorMask(struct gl_context * ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a) //same { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -1045,26 +1046,26 @@ static void evergreenColorMask(GLcontext * ctx, } } -static void evergreenDepthFunc(GLcontext * ctx, GLenum func) //same +static void evergreenDepthFunc(struct gl_context * ctx, GLenum func) //same { evergreenSetDepthState(ctx); } -static void evergreenDepthMask(GLcontext * ctx, GLboolean mask) //same +static void evergreenDepthMask(struct gl_context * ctx, GLboolean mask) //same { evergreenSetDepthState(ctx); } -static void evergreenCullFace(GLcontext * ctx, GLenum mode) //same +static void evergreenCullFace(struct gl_context * ctx, GLenum mode) //same { evergreenUpdateCulling(ctx); } -static void evergreenFogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) //same +static void evergreenFogfv(struct gl_context * ctx, GLenum pname, const GLfloat * param) //same { } -static void evergreenUpdatePolygonMode(GLcontext * ctx) //same +static void evergreenUpdatePolygonMode(struct gl_context * ctx) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1119,13 +1120,13 @@ static void evergreenUpdatePolygonMode(GLcontext * ctx) //same } } -static void evergreenFrontFace(GLcontext * ctx, GLenum mode) //same +static void evergreenFrontFace(struct gl_context * ctx, GLenum mode) //same { evergreenUpdateCulling(ctx); evergreenUpdatePolygonMode(ctx); } -static void evergreenShadeModel(GLcontext * ctx, GLenum mode) //same +static void evergreenShadeModel(struct gl_context * ctx, GLenum mode) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1145,13 +1146,13 @@ static void evergreenShadeModel(GLcontext * ctx, GLenum mode) //same } } -static void evergreenLogicOpcode(GLcontext *ctx, GLenum logicop) //diff +static void evergreenLogicOpcode(struct gl_context *ctx, GLenum logicop) //diff { if (RGBA_LOGICOP_ENABLED(ctx)) evergreenSetLogicOpState(ctx); } -static void evergreenPointSize(GLcontext * ctx, GLfloat size) //same +static void evergreenPointSize(struct gl_context * ctx, GLfloat size) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1173,7 +1174,7 @@ static void evergreenPointSize(GLcontext * ctx, GLfloat size) //same } -static void evergreenPointParameter(GLcontext * ctx, GLenum pname, const GLfloat * param) //same +static void evergreenPointParameter(struct gl_context * ctx, GLenum pname, const GLfloat * param) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1224,7 +1225,7 @@ static int evergreen_translate_stencil_func(int func) //same return 0; } -static void evergreenStencilFuncSeparate(GLcontext * ctx, GLenum face, +static void evergreenStencilFuncSeparate(struct gl_context * ctx, GLenum face, GLenum func, GLint ref, GLuint mask) //same { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -1253,7 +1254,7 @@ static void evergreenStencilFuncSeparate(GLcontext * ctx, GLenum face, STENCILFUNC_BF_shift, STENCILFUNC_BF_mask); } -static void evergreenStencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) //same +static void evergreenStencilMaskSeparate(struct gl_context * ctx, GLenum face, GLuint mask) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1297,7 +1298,7 @@ static int evergreen_translate_stencil_op(int op) //same return 0; } -static void evergreenStencilOpSeparate(GLcontext * ctx, GLenum face, +static void evergreenStencilOpSeparate(struct gl_context * ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) //same { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -1321,7 +1322,7 @@ static void evergreenStencilOpSeparate(GLcontext * ctx, GLenum face, STENCILZPASS_BF_shift, STENCILZPASS_BF_mask); } -static void evergreenViewport(GLcontext * ctx, +static void evergreenViewport(struct gl_context * ctx, GLint x, GLint y, GLsizei width, @@ -1332,12 +1333,12 @@ static void evergreenViewport(GLcontext * ctx, radeon_viewport(ctx, x, y, width, height); } -static void evergreenDepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval) //diff in evergreenUpdateWindow +static void evergreenDepthRange(struct gl_context * ctx, GLclampd nearval, GLclampd farval) //diff in evergreenUpdateWindow { evergreenUpdateWindow(ctx, 0); } -static void evergreenLineWidth(GLcontext * ctx, GLfloat widthf) //same +static void evergreenLineWidth(struct gl_context * ctx, GLfloat widthf) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1351,7 +1352,7 @@ static void evergreenLineWidth(GLcontext * ctx, GLfloat widthf) //same PA_SU_LINE_CNTL__WIDTH_shift, PA_SU_LINE_CNTL__WIDTH_mask); } -static void evergreenLineStipple(GLcontext *ctx, GLint factor, GLushort pattern) //same +static void evergreenLineStipple(struct gl_context *ctx, GLint factor, GLushort pattern) //same { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1363,7 +1364,7 @@ static void evergreenLineStipple(GLcontext *ctx, GLint factor, GLushort pattern) SETfield(evergreen->PA_SC_LINE_STIPPLE.u32All, 1, AUTO_RESET_CNTL_shift, AUTO_RESET_CNTL_mask); } -static void evergreenPolygonOffset(GLcontext * ctx, GLfloat factor, GLfloat units) //diff : +static void evergreenPolygonOffset(struct gl_context * ctx, GLfloat factor, GLfloat units) //diff : //all register here offset diff, bits same { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -1394,7 +1395,7 @@ static void evergreenPolygonOffset(GLcontext * ctx, GLfloat factor, GLfloat unit evergreen->PA_SU_POLY_OFFSET_BACK_OFFSET.f32All = constant; } -static void evergreenPolygonMode(GLcontext * ctx, GLenum face, GLenum mode) //same +static void evergreenPolygonMode(struct gl_context * ctx, GLenum face, GLenum mode) //same { (void)face; (void)mode; @@ -1402,12 +1403,12 @@ static void evergreenPolygonMode(GLcontext * ctx, GLenum face, GLenum mode) //sa evergreenUpdatePolygonMode(ctx); } -static void evergreenRenderMode(GLcontext * ctx, GLenum mode) //same +static void evergreenRenderMode(struct gl_context * ctx, GLenum mode) //same { } //TODO : move to kernel. -static void evergreenInitSQConfig(GLcontext * ctx) +static void evergreenInitSQConfig(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1607,7 +1608,7 @@ static void evergreenInitSQConfig(GLcontext * ctx) NUM_CLIP_SEQ_mask); } -void evergreenInitState(GLcontext * ctx) //diff +void evergreenInitState(struct gl_context * ctx) //diff { context_t *context = R700_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -1699,7 +1700,7 @@ void evergreenInitState(GLcontext * ctx) //diff evergreen->DB_STENCIL_INFO.u32All = 0; CLEARbit(evergreen->DB_STENCIL_INFO.u32All, EG_DB_STENCIL_INFO__FORMAT_bit); - SETfield(evergreen->DB_STENCIL_INFO.u32All, EG_ADDR_SURF_TILE_SPLIT_256B, + SETfield(evergreen->DB_STENCIL_INFO.u32All, 0, EG_DB_STENCIL_INFO__TILE_SPLIT_shift, EG_DB_STENCIL_INFO__TILE_SPLIT_mask); evergreen->DB_RENDER_CONTROL.u32All = 0; @@ -1709,6 +1710,15 @@ void evergreenInitState(GLcontext * ctx) //diff SETfield(evergreen->DB_RENDER_OVERRIDE.u32All, FORCE_DISABLE, FORCE_HIS_ENABLE0_shift, FORCE_HIS_ENABLE0_mask); SETfield(evergreen->DB_RENDER_OVERRIDE.u32All, FORCE_DISABLE, FORCE_HIS_ENABLE1_shift, FORCE_HIS_ENABLE1_mask); + /* stencil */ + evergreenEnable(ctx, GL_STENCIL_TEST, ctx->Stencil._Enabled); + evergreenStencilMaskSeparate(ctx, 0, ctx->Stencil.WriteMask[0]); + evergreenStencilFuncSeparate(ctx, 0, ctx->Stencil.Function[0], + ctx->Stencil.Ref[0], ctx->Stencil.ValueMask[0]); + evergreenStencilOpSeparate(ctx, 0, ctx->Stencil.FailFunc[0], + ctx->Stencil.ZFailFunc[0], + ctx->Stencil.ZPassFunc[0]); + // Disable ROP3 modes by setting src to dst copy: SETfield(evergreen->CB_COLOR_CONTROL.u32All, 0xCC, EG_CB_COLOR_CONTROL__ROP3_shift, diff --git a/src/mesa/drivers/dri/r600/evergreen_state.h b/src/mesa/drivers/dri/r600/evergreen_state.h index ffdb56b38a..2f350e90fa 100644 --- a/src/mesa/drivers/dri/r600/evergreen_state.h +++ b/src/mesa/drivers/dri/r600/evergreen_state.h @@ -31,15 +31,15 @@ #include "r600_context.h" -extern void evergreenUpdateStateParameters(GLcontext * ctx, GLuint new_state); -extern void evergreenUpdateShaders(GLcontext * ctx); -extern void evergreenUpdateShaderStates(GLcontext * ctx); +extern void evergreenUpdateStateParameters(struct gl_context * ctx, GLuint new_state); +extern void evergreenUpdateShaders(struct gl_context * ctx); +extern void evergreenUpdateShaderStates(struct gl_context * ctx); -extern void evergreeUpdateShaders(GLcontext * ctx); +extern void evergreeUpdateShaders(struct gl_context * ctx); -extern void evergreenUpdateViewportOffset(GLcontext * ctx); +extern void evergreenUpdateViewportOffset(struct gl_context * ctx); -extern void evergreenInitState(GLcontext * ctx); +extern void evergreenInitState(struct gl_context * ctx); extern void evergreenInitStateFuncs (radeonContextPtr radeon, struct dd_function_table *functions); extern void evergreenSetScissor(context_t *context); diff --git a/src/mesa/drivers/dri/r600/evergreen_tex.c b/src/mesa/drivers/dri/r600/evergreen_tex.c index 8b42045ebb..58420ed123 100644 --- a/src/mesa/drivers/dri/r600/evergreen_tex.c +++ b/src/mesa/drivers/dri/r600/evergreen_tex.c @@ -934,7 +934,7 @@ EG_S_FIXED(float value, uint32_t frac_bits) return value * (1 << frac_bits); } -static GLboolean evergreen_setup_hardware_state(GLcontext * ctx, struct gl_texture_object *texObj, int unit) +static GLboolean evergreen_setup_hardware_state(struct gl_context * ctx, struct gl_texture_object *texObj, int unit) { context_t *context = EVERGREEN_CONTEXT(ctx); radeonTexObj *t = radeon_tex_obj(texObj); @@ -1289,7 +1289,7 @@ void evergreenSetTexBuffer(__DRIcontext *pDRICtx, GLint target, GLint glx_textur return; } -void evergreenUpdateTextureState(GLcontext * ctx) +void evergreenUpdateTextureState(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT * evergreen = GET_EVERGREEN_CHIP(context); @@ -1311,7 +1311,7 @@ void evergreenUpdateTextureState(GLcontext * ctx) } } -static GLboolean evergreen_validate_texture(GLcontext * ctx, struct gl_texture_object *texObj, int unit) +static GLboolean evergreen_validate_texture(struct gl_context * ctx, struct gl_texture_object *texObj, int unit) { radeonTexObj *t = radeon_tex_obj(texObj); @@ -1327,7 +1327,7 @@ static GLboolean evergreen_validate_texture(GLcontext * ctx, struct gl_texture_o return GL_TRUE; } -GLboolean evergreenValidateBuffers(GLcontext * ctx) +GLboolean evergreenValidateBuffers(struct gl_context * ctx) { context_t *rmesa = EVERGREEN_CONTEXT(ctx); struct radeon_renderbuffer *rrb; @@ -1403,7 +1403,7 @@ GLboolean evergreenValidateBuffers(GLcontext * ctx) return GL_TRUE; } -static struct gl_texture_object *evergreenNewTextureObject(GLcontext * ctx, +static struct gl_texture_object *evergreenNewTextureObject(struct gl_context * ctx, GLuint name, GLenum target) { @@ -1426,7 +1426,7 @@ static struct gl_texture_object *evergreenNewTextureObject(GLcontext * ctx, return &t->base; } -static void evergreenDeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj) +static void evergreenDeleteTexture(struct gl_context * ctx, struct gl_texture_object *texObj) { context_t * rmesa = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT * evergreen = GET_EVERGREEN_CHIP(rmesa); @@ -1456,7 +1456,7 @@ static void evergreenDeleteTexture(GLcontext * ctx, struct gl_texture_object *te _mesa_delete_texture_object(ctx, texObj); } -static void evergreenTexParameter(GLcontext * ctx, GLenum target, +static void evergreenTexParameter(struct gl_context * ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat * params) { diff --git a/src/mesa/drivers/dri/r600/evergreen_tex.h b/src/mesa/drivers/dri/r600/evergreen_tex.h index b43508a9ea..982a087f8e 100644 --- a/src/mesa/drivers/dri/r600/evergreen_tex.h +++ b/src/mesa/drivers/dri/r600/evergreen_tex.h @@ -27,9 +27,9 @@ #ifndef _EVERGREEN_TEX_H_ #define _EVERGREEN_TEX_H_ -extern GLboolean evergreenValidateBuffers(GLcontext * ctx); +extern GLboolean evergreenValidateBuffers(struct gl_context * ctx); -extern void evergreenUpdateTextureState(GLcontext * ctx); +extern void evergreenUpdateTextureState(struct gl_context * ctx); extern void evergreenInitTextureFuncs(radeonContextPtr radeon, struct dd_function_table *functions); extern void evergreenSetTexOffset(__DRIcontext * pDRICtx, GLint texname, unsigned long long offset, GLint depth, GLuint pitch); diff --git a/src/mesa/drivers/dri/r600/evergreen_vertprog.c b/src/mesa/drivers/dri/r600/evergreen_vertprog.c index 6840fa3c86..b3371f20b1 100644 --- a/src/mesa/drivers/dri/r600/evergreen_vertprog.c +++ b/src/mesa/drivers/dri/r600/evergreen_vertprog.c @@ -169,7 +169,7 @@ GLboolean evergreen_Process_Vertex_Program_Vfetch_Instructions( } GLboolean evergreen_Process_Vertex_Program_Vfetch_Instructions2( - GLcontext *ctx, + struct gl_context *ctx, struct evergreen_vertex_program *vp, struct gl_vertex_program *mesa_vp) { @@ -196,7 +196,7 @@ GLboolean evergreen_Process_Vertex_Program_Vfetch_Instructions2( return GL_TRUE; } -void evergreen_Map_Vertex_Program(GLcontext *ctx, +void evergreen_Map_Vertex_Program(struct gl_context *ctx, struct evergreen_vertex_program *vp, struct gl_vertex_program *mesa_vp) { @@ -292,7 +292,7 @@ GLboolean evergreen_Find_Instruction_Dependencies_vp(struct evergreen_vertex_pro return GL_TRUE; } -struct evergreen_vertex_program* evergreenTranslateVertexShader(GLcontext *ctx, +struct evergreen_vertex_program* evergreenTranslateVertexShader(struct gl_context *ctx, struct gl_vertex_program *mesa_vp) { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -374,7 +374,7 @@ struct evergreen_vertex_program* evergreenTranslateVertexShader(GLcontext *ctx, return vp; } -void evergreenSelectVertexShader(GLcontext *ctx) +void evergreenSelectVertexShader(struct gl_context *ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); struct evergreen_vertex_program_cont *vpc; @@ -448,7 +448,7 @@ int evergreen_getTypeSize(GLenum type) } } -static void evergreenTranslateAttrib(GLcontext *ctx, GLuint unLoc, int count, const struct gl_client_array *input) +static void evergreenTranslateAttrib(struct gl_context *ctx, GLuint unLoc, int count, const struct gl_client_array *input) { context_t *context = EVERGREEN_CONTEXT(ctx); @@ -459,11 +459,11 @@ static void evergreenTranslateAttrib(GLcontext *ctx, GLuint unLoc, int count, co stride = (input->StrideB == 0) ? evergreen_getTypeSize(input->Type) * input->Size : input->StrideB; - if (input->Type == GL_DOUBLE || input->Type == GL_UNSIGNED_INT || input->Type == GL_INT || + if (input->Type == GL_DOUBLE || input->Type == GL_UNSIGNED_INT || input->Type == GL_INT #if MESA_BIG_ENDIAN - evergreen_getTypeSize(input->Type) != 4 || + || evergreen_getTypeSize(input->Type) != 4 #endif - stride < 4) + ) { pStreamDesc->type = GL_FLOAT; @@ -534,7 +534,7 @@ static void evergreenTranslateAttrib(GLcontext *ctx, GLuint unLoc, int count, co context->nNumActiveAos++; } -void evergreenSetVertexFormat(GLcontext *ctx, const struct gl_client_array *arrays[], int count) +void evergreenSetVertexFormat(struct gl_context *ctx, const struct gl_client_array *arrays[], int count) { context_t *context = EVERGREEN_CONTEXT(ctx); struct evergreen_vertex_program *vpc @@ -563,7 +563,7 @@ void evergreenSetVertexFormat(GLcontext *ctx, const struct gl_client_array *arra context->radeon.tcl.aos_count = context->nNumActiveAos; } -void * evergreenGetActiveVpShaderBo(GLcontext * ctx) +void * evergreenGetActiveVpShaderBo(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); struct evergreen_vertex_program *vp = context->selected_vp;; @@ -574,7 +574,7 @@ void * evergreenGetActiveVpShaderBo(GLcontext * ctx) return NULL; } -void * evergreenGetActiveVpShaderConstBo(GLcontext * ctx) +void * evergreenGetActiveVpShaderConstBo(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); struct evergreen_vertex_program *vp = context->selected_vp;; @@ -585,7 +585,7 @@ void * evergreenGetActiveVpShaderConstBo(GLcontext * ctx) return NULL; } -GLboolean evergreenSetupVertexProgram(GLcontext * ctx) +GLboolean evergreenSetupVertexProgram(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); @@ -646,7 +646,7 @@ GLboolean evergreenSetupVertexProgram(GLcontext * ctx) return GL_TRUE; } -GLboolean evergreenSetupVPconstants(GLcontext * ctx) +GLboolean evergreenSetupVPconstants(struct gl_context * ctx) { context_t *context = EVERGREEN_CONTEXT(ctx); EVERGREEN_CHIP_CONTEXT *evergreen = GET_EVERGREEN_CHIP(context); diff --git a/src/mesa/drivers/dri/r600/evergreen_vertprog.h b/src/mesa/drivers/dri/r600/evergreen_vertprog.h index 5853902115..8163e36927 100644 --- a/src/mesa/drivers/dri/r600/evergreen_vertprog.h +++ b/src/mesa/drivers/dri/r600/evergreen_vertprog.h @@ -80,29 +80,29 @@ GLboolean evergreen_Process_Vertex_Program_Vfetch_Instructions( struct evergreen_vertex_program *vp, struct gl_vertex_program *mesa_vp); GLboolean evergreen_Process_Vertex_Program_Vfetch_Instructions2( - GLcontext *ctx, + struct gl_context *ctx, struct evergreen_vertex_program *vp, struct gl_vertex_program *mesa_vp); -void evergreen_Map_Vertex_Program(GLcontext *ctx, +void evergreen_Map_Vertex_Program(struct gl_context *ctx, struct evergreen_vertex_program *vp, struct gl_vertex_program *mesa_vp); GLboolean evergreen_Find_Instruction_Dependencies_vp(struct evergreen_vertex_program *vp, struct gl_vertex_program *mesa_vp); -struct evergreen_vertex_program* evergreenTranslateVertexShader(GLcontext *ctx, +struct evergreen_vertex_program* evergreenTranslateVertexShader(struct gl_context *ctx, struct gl_vertex_program *mesa_vp); /* Interface */ -extern void evergreenSelectVertexShader(GLcontext *ctx); -extern void evergreenSetVertexFormat(GLcontext *ctx, const struct gl_client_array *arrays[], int count); +extern void evergreenSelectVertexShader(struct gl_context *ctx); +extern void evergreenSetVertexFormat(struct gl_context *ctx, const struct gl_client_array *arrays[], int count); -extern GLboolean evergreenSetupVertexProgram(GLcontext * ctx); +extern GLboolean evergreenSetupVertexProgram(struct gl_context * ctx); -extern GLboolean evergreenSetupVPconstants(GLcontext * ctx); +extern GLboolean evergreenSetupVPconstants(struct gl_context * ctx); -extern void * evergreenGetActiveVpShaderBo(GLcontext * ctx); +extern void * evergreenGetActiveVpShaderBo(struct gl_context * ctx); -extern void * evergreenGetActiveVpShaderConstBo(GLcontext * ctx); +extern void * evergreenGetActiveVpShaderConstBo(struct gl_context * ctx); extern int evergreen_getTypeSize(GLenum type); diff --git a/src/mesa/drivers/dri/r600/r600_blit.c b/src/mesa/drivers/dri/r600/r600_blit.c index 3090c9f613..31c32d62f9 100644 --- a/src/mesa/drivers/dri/r600/r600_blit.c +++ b/src/mesa/drivers/dri/r600/r600_blit.c @@ -408,7 +408,7 @@ set_render_target(context_t *context, struct radeon_bo *bo, gl_format mesa_forma } -static inline void load_shaders(GLcontext * ctx) +static inline void load_shaders(struct gl_context * ctx) { radeonContextPtr radeonctx = RADEON_CONTEXT(ctx); @@ -1566,7 +1566,7 @@ static GLboolean validate_buffers(context_t *rmesa, return GL_TRUE; } -unsigned r600_blit(GLcontext *ctx, +unsigned r600_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r600/r600_blit.h b/src/mesa/drivers/dri/r600/r600_blit.h index d56b21ba9b..9dc8e2fec6 100644 --- a/src/mesa/drivers/dri/r600/r600_blit.h +++ b/src/mesa/drivers/dri/r600/r600_blit.h @@ -30,7 +30,7 @@ unsigned r600_check_blit(gl_format mesa_format); -unsigned r600_blit(GLcontext *ctx, +unsigned r600_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/r600/r600_cmdbuf.c b/src/mesa/drivers/dri/r600/r600_cmdbuf.c index b3331fc8b8..ce2f777956 100644 --- a/src/mesa/drivers/dri/r600/r600_cmdbuf.c +++ b/src/mesa/drivers/dri/r600/r600_cmdbuf.c @@ -47,7 +47,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_reg.h" #include "r600_cmdbuf.h" #include "radeon_bocs_wrapper.h" -#include "radeon_reg.h" #ifdef HAVE_LIBDRM_RADEON #include "radeon_cs_int.h" diff --git a/src/mesa/drivers/dri/r600/r600_context.c b/src/mesa/drivers/dri/r600/r600_context.c index cd34e6208d..c882a9cce9 100644 --- a/src/mesa/drivers/dri/r600/r600_context.c +++ b/src/mesa/drivers/dri/r600/r600_context.c @@ -208,7 +208,7 @@ static void r600_vtbl_pre_emit_atoms(radeonContextPtr radeon) r700Start3D((context_t *)radeon); } -static void r600_fallback(GLcontext *ctx, GLuint bit, GLboolean mode) +static void r600_fallback(struct gl_context *ctx, GLuint bit, GLboolean mode) { context_t *context = R700_CONTEXT(ctx); if (mode) @@ -249,7 +249,7 @@ static void r600_init_vtbl(radeonContextPtr radeon) radeon->vtbl.is_format_renderable = r600IsFormatRenderable; } -static void r600InitConstValues(GLcontext *ctx, radeonScreenPtr screen) +static void r600InitConstValues(struct gl_context *ctx, radeonScreenPtr screen) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -335,7 +335,7 @@ static void r600ParseOptions(context_t *r600, radeonScreenPtr screen) } -static void r600InitGLExtensions(GLcontext *ctx) +static void r600InitGLExtensions(struct gl_context *ctx) { context_t *r600 = R700_CONTEXT(ctx); #ifdef R600_ENABLE_GLSL_TEST @@ -380,7 +380,7 @@ static void r600InitGLExtensions(GLcontext *ctx) /* Create the device specific rendering context. */ GLboolean r600CreateContext(gl_api api, - const __GLcontextModes * glVisual, + const struct gl_config * glVisual, __DRIcontext * driContextPriv, void *sharedContextPrivate) { @@ -388,7 +388,7 @@ GLboolean r600CreateContext(gl_api api, radeonScreenPtr screen = (radeonScreenPtr) (sPriv->private); struct dd_function_table functions; context_t *r600; - GLcontext *ctx; + struct gl_context *ctx; assert(glVisual); assert(driContextPriv); diff --git a/src/mesa/drivers/dri/r600/r600_context.h b/src/mesa/drivers/dri/r600/r600_context.h index 6a83196648..d3dc901acf 100644 --- a/src/mesa/drivers/dri/r600/r600_context.h +++ b/src/mesa/drivers/dri/r600/r600_context.h @@ -188,12 +188,12 @@ struct r600_context { #define EVERGREEN_CONTEXT(ctx) ((context_t *)(ctx->DriverCtx)) #define R700_CONTEXT(ctx) ((context_t *)(ctx->DriverCtx)) -#define GL_CONTEXT(context) ((GLcontext *)(context->radeon.glCtx)) +#define GL_CONTEXT(context) ((struct gl_context *)(context->radeon.glCtx)) #define GET_EVERGREEN_CHIP(context) ((EVERGREEN_CHIP_CONTEXT*)(context->pChip)) extern GLboolean r600CreateContext(gl_api api, - const __GLcontextModes * glVisual, + const struct gl_config * glVisual, __DRIcontext * driContextPriv, void *sharedContextPrivate); @@ -232,10 +232,10 @@ extern void r700WaitForIdleClean(context_t *context); extern void r700Start3D(context_t *context); extern void r600InitAtoms(context_t *context); -extern void r700InitDraw(GLcontext *ctx); +extern void r700InitDraw(struct gl_context *ctx); extern void evergreenInitAtoms(context_t *context); -extern void evergreenInitDraw(GLcontext *ctx); +extern void evergreenInitDraw(struct gl_context *ctx); #define RADEON_D_CAPTURE 0 #define RADEON_D_PLAYBACK 1 diff --git a/src/mesa/drivers/dri/r600/r600_emit.c b/src/mesa/drivers/dri/r600/r600_emit.c index a840106c14..53ece9a350 100644 --- a/src/mesa/drivers/dri/r600/r600_emit.c +++ b/src/mesa/drivers/dri/r600/r600_emit.c @@ -49,7 +49,7 @@ void r600EmitCacheFlush(context_t *rmesa) { } -GLboolean r600AllocShaderConsts(GLcontext * ctx, +GLboolean r600AllocShaderConsts(struct gl_context * ctx, void ** constbo, int sizeinBYTE, char * szShaderUsage) @@ -93,7 +93,7 @@ shader_again_alloc: return GL_TRUE; } -GLboolean r600EmitShaderConsts(GLcontext * ctx, +GLboolean r600EmitShaderConsts(struct gl_context * ctx, void * constbo, int bo_offset, GLvoid * data, @@ -114,7 +114,7 @@ GLboolean r600EmitShaderConsts(GLcontext * ctx, return GL_TRUE; } -GLboolean r600EmitShader(GLcontext * ctx, +GLboolean r600EmitShader(struct gl_context * ctx, void ** shaderbo, GLvoid * data, int sizeinDWORD, @@ -163,7 +163,7 @@ shader_again_alloc: return GL_TRUE; } -GLboolean r600DeleteShader(GLcontext * ctx, +GLboolean r600DeleteShader(struct gl_context * ctx, void * shaderbo) { struct radeon_bo * pbo = (struct radeon_bo *)shaderbo; diff --git a/src/mesa/drivers/dri/r600/r600_emit.h b/src/mesa/drivers/dri/r600/r600_emit.h index 259561539f..c50b6060ca 100644 --- a/src/mesa/drivers/dri/r600/r600_emit.h +++ b/src/mesa/drivers/dri/r600/r600_emit.h @@ -43,20 +43,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. void r600EmitCacheFlush(context_t *rmesa); -extern GLboolean r600EmitShader(GLcontext * ctx, +extern GLboolean r600EmitShader(struct gl_context * ctx, void ** shaderbo, GLvoid * data, int sizeinDWORD, char * szShaderUsage); -extern GLboolean r600DeleteShader(GLcontext * ctx, +extern GLboolean r600DeleteShader(struct gl_context * ctx, void * shaderbo); -extern GLboolean r600AllocShaderConsts(GLcontext * ctx, +extern GLboolean r600AllocShaderConsts(struct gl_context * ctx, void ** constbo, int sizeinBYTE, char * szShaderUsage); -GLboolean r600EmitShaderConsts(GLcontext * ctx, +GLboolean r600EmitShaderConsts(struct gl_context * ctx, void * constbo, int bo_offset, GLvoid * data, diff --git a/src/mesa/drivers/dri/r600/r600_tex.c b/src/mesa/drivers/dri/r600/r600_tex.c index 512a52ede3..d6a58f410c 100644 --- a/src/mesa/drivers/dri/r600/r600_tex.c +++ b/src/mesa/drivers/dri/r600/r600_tex.c @@ -276,7 +276,7 @@ static void r600SetTexBorderColor(radeonTexObjPtr t, const GLfloat color[4]) * next UpdateTextureState */ -static void r600TexParameter(GLcontext * ctx, GLenum target, +static void r600TexParameter(struct gl_context * ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat * params) { @@ -332,7 +332,7 @@ static void r600TexParameter(GLcontext * ctx, GLenum target, } } -static void r600DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj) +static void r600DeleteTexture(struct gl_context * ctx, struct gl_texture_object *texObj) { context_t* rmesa = R700_CONTEXT(ctx); radeonTexObj* t = radeon_tex_obj(texObj); @@ -368,7 +368,7 @@ static void r600DeleteTexture(GLcontext * ctx, struct gl_texture_object *texObj) * allocate the default texture objects. * Fixup MaxAnisotropy according to user preference. */ -static struct gl_texture_object *r600NewTextureObject(GLcontext * ctx, +static struct gl_texture_object *r600NewTextureObject(struct gl_context * ctx, GLuint name, GLenum target) { diff --git a/src/mesa/drivers/dri/r600/r600_tex.h b/src/mesa/drivers/dri/r600/r600_tex.h index 771affdfa6..256588429e 100644 --- a/src/mesa/drivers/dri/r600/r600_tex.h +++ b/src/mesa/drivers/dri/r600/r600_tex.h @@ -56,7 +56,7 @@ extern void r600SetTexOffset(__DRIcontext *pDRICtx, GLint texname, unsigned long long offset, GLint depth, GLuint pitch); -extern GLboolean r600ValidateBuffers(GLcontext * ctx); +extern GLboolean r600ValidateBuffers(struct gl_context * ctx); extern void r600InitTextureFuncs(radeonContextPtr radeon, struct dd_function_table *functions); diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c index fd928cfe5d..3869768bf0 100644 --- a/src/mesa/drivers/dri/r600/r600_texstate.c +++ b/src/mesa/drivers/dri/r600/r600_texstate.c @@ -52,9 +52,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "evergreen_tex.h" -void r600UpdateTextureState(GLcontext * ctx); +void r600UpdateTextureState(struct gl_context * ctx); -void r600UpdateTextureState(GLcontext * ctx) +void r600UpdateTextureState(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -707,7 +707,7 @@ void r600SetDepthTexMode(struct gl_texture_object *tObj) * \param rmesa Context pointer * \param t the r300 texture object */ -static GLboolean setup_hardware_state(GLcontext * ctx, struct gl_texture_object *texObj, int unit) +static GLboolean setup_hardware_state(struct gl_context * ctx, struct gl_texture_object *texObj, int unit) { context_t *rmesa = R700_CONTEXT(ctx); radeonTexObj *t = radeon_tex_obj(texObj); @@ -803,7 +803,7 @@ static GLboolean setup_hardware_state(GLcontext * ctx, struct gl_texture_object * * Mostly this means populating the texture object's mipmap tree. */ -static GLboolean r600_validate_texture(GLcontext * ctx, struct gl_texture_object *texObj, int unit) +static GLboolean r600_validate_texture(struct gl_context * ctx, struct gl_texture_object *texObj, int unit) { radeonTexObj *t = radeon_tex_obj(texObj); @@ -822,7 +822,7 @@ static GLboolean r600_validate_texture(GLcontext * ctx, struct gl_texture_object /** * Ensure all enabled and complete textures are uploaded along with any buffers being used. */ -GLboolean r600ValidateBuffers(GLcontext * ctx) +GLboolean r600ValidateBuffers(struct gl_context * ctx) { context_t *rmesa = R700_CONTEXT(ctx); struct radeon_renderbuffer *rrb; diff --git a/src/mesa/drivers/dri/r600/r700_chip.c b/src/mesa/drivers/dri/r600/r700_chip.c index 3bb194eb6d..4ec2845ab4 100644 --- a/src/mesa/drivers/dri/r600/r700_chip.c +++ b/src/mesa/drivers/dri/r600/r700_chip.c @@ -39,7 +39,7 @@ #include "radeon_mipmap_tree.h" -static void r700SendTexState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendTexState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -104,7 +104,7 @@ static void r700SendTexState(GLcontext *ctx, struct radeon_state_atom *atom) #define SAMPLER_STRIDE 3 -static void r700SendTexSamplerState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendTexSamplerState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -141,7 +141,7 @@ static void r700SendTexSamplerState(GLcontext *ctx, struct radeon_state_atom *at } } -static void r700SendTexBorderColorState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendTexBorderColorState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -167,7 +167,7 @@ static void r700SendTexBorderColorState(GLcontext *ctx, struct radeon_state_atom } extern int getTypeSize(GLenum type); -static void r700SetupVTXConstants(GLcontext * ctx, +static void r700SetupVTXConstants(struct gl_context * ctx, void * pAos, StreamDesc * pStreamDesc) { @@ -243,7 +243,7 @@ static void r700SetupVTXConstants(GLcontext * ctx, } -static void r700SendVTXState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendVTXState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); struct r700_vertex_program *vp = context->selected_vp; @@ -599,7 +599,7 @@ static void r700SetDepthTarget(context_t *context) /* r700->DB_PREFETCH_LIMIT.bits.DEPTH_HEIGHT_TILE_MAX = (context->currentDraw->h >> 3) - 1; */ /* z buffer sie may much bigger than what need, so use actual used h. */ } -static void r700SendDepthTargetState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendDepthTargetState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -646,7 +646,7 @@ static void r700SendDepthTargetState(GLcontext *ctx, struct radeon_state_atom *a } -static void r700SendRenderTargetState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendRenderTargetState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -724,7 +724,7 @@ static void r700SendRenderTargetState(GLcontext *ctx, struct radeon_state_atom * } -static void r700SendPSState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendPSState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -766,7 +766,7 @@ static void r700SendPSState(GLcontext *ctx, struct radeon_state_atom *atom) } -static void r700SendVSState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendVSState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -827,7 +827,7 @@ static void r700SendVSState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendFSState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendFSState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -869,7 +869,7 @@ static void r700SendFSState(GLcontext *ctx, struct radeon_state_atom *atom) } -static void r700SendViewportState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendViewportState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -903,7 +903,7 @@ static void r700SendViewportState(GLcontext *ctx, struct radeon_state_atom *atom } -static void r700SendSQConfig(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendSQConfig(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -940,7 +940,7 @@ static void r700SendSQConfig(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendUCPState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendUCPState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -962,7 +962,7 @@ static void r700SendUCPState(GLcontext *ctx, struct radeon_state_atom *atom) } } -static void r700SendSPIState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendSPIState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1037,7 +1037,7 @@ static void r700SendSPIState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendVGTState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendVGTState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1083,7 +1083,7 @@ static void r700SendVGTState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendSXState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendSXState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1098,7 +1098,7 @@ static void r700SendSXState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendDBState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendDBState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1124,7 +1124,7 @@ static void r700SendDBState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendStencilState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendStencilState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1138,7 +1138,7 @@ static void r700SendStencilState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendCBState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendCBState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1168,7 +1168,7 @@ static void r700SendCBState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendCBCLRCMPState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendCBCLRCMPState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1184,7 +1184,7 @@ static void r700SendCBCLRCMPState(GLcontext *ctx, struct radeon_state_atom *atom COMMIT_BATCH(); } -static void r700SendCBBlendState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendCBBlendState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1216,7 +1216,7 @@ static void r700SendCBBlendState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendCBBlendColorState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendCBBlendColorState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1233,7 +1233,7 @@ static void r700SendCBBlendColorState(GLcontext *ctx, struct radeon_state_atom * COMMIT_BATCH(); } -static void r700SendSUState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendSUState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1251,7 +1251,7 @@ static void r700SendSUState(GLcontext *ctx, struct radeon_state_atom *atom) } -static void r700SendPolyState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendPolyState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1271,7 +1271,7 @@ static void r700SendPolyState(GLcontext *ctx, struct radeon_state_atom *atom) } -static void r700SendCLState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendCLState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1287,7 +1287,7 @@ static void r700SendCLState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendGBState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendGBState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1303,7 +1303,7 @@ static void r700SendGBState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendScissorState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendScissorState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1336,7 +1336,7 @@ static void r700SendScissorState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendSCState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendSCState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1353,7 +1353,7 @@ static void r700SendSCState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendAAState(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendAAState(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1368,7 +1368,7 @@ static void r700SendAAState(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendPSConsts(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendPSConsts(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1392,7 +1392,7 @@ static void r700SendPSConsts(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendVSConsts(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendVSConsts(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = R700_CONTEXT_STATES(context); @@ -1417,7 +1417,7 @@ static void r700SendVSConsts(GLcontext *ctx, struct radeon_state_atom *atom) COMMIT_BATCH(); } -static void r700SendQueryBegin(GLcontext *ctx, struct radeon_state_atom *atom) +static void r700SendQueryBegin(struct gl_context *ctx, struct radeon_state_atom *atom) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = radeon->query.current; @@ -1443,12 +1443,12 @@ static void r700SendQueryBegin(GLcontext *ctx, struct radeon_state_atom *atom) query->emitted_begin = GL_TRUE; } -static int check_always(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_always(struct gl_context *ctx, struct radeon_state_atom *atom) { return atom->cmd_size; } -static int check_cb(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_cb(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); int count = 7; @@ -1460,7 +1460,7 @@ static int check_cb(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static int check_blnd(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_blnd(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1485,7 +1485,7 @@ static int check_blnd(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static int check_ucp(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_ucp(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1500,7 +1500,7 @@ static int check_ucp(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static int check_vtx(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_vtx(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); int count = context->radeon.tcl.aos_count * 18; @@ -1509,7 +1509,7 @@ static int check_vtx(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static int check_tx(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_tx(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); unsigned int i, count = 0; @@ -1526,7 +1526,7 @@ static int check_tx(GLcontext *ctx, struct radeon_state_atom *atom) return count * 31; } -static int check_ps_consts(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_ps_consts(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1539,7 +1539,7 @@ static int check_ps_consts(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static int check_vs_consts(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_vs_consts(struct gl_context *ctx, struct radeon_state_atom *atom) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1552,7 +1552,7 @@ static int check_vs_consts(GLcontext *ctx, struct radeon_state_atom *atom) return count; } -static int check_queryobj(GLcontext *ctx, struct radeon_state_atom *atom) +static int check_queryobj(struct gl_context *ctx, struct radeon_state_atom *atom) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = radeon->query.current; diff --git a/src/mesa/drivers/dri/r600/r700_clear.c b/src/mesa/drivers/dri/r600/r700_clear.c index d1008f28b9..853dec9233 100644 --- a/src/mesa/drivers/dri/r600/r700_clear.c +++ b/src/mesa/drivers/dri/r600/r700_clear.c @@ -45,7 +45,7 @@ static GLboolean r700ClearFast(context_t *context, GLbitfield mask) return GL_FALSE; } -void r700Clear(GLcontext * ctx, GLbitfield mask) +void r700Clear(struct gl_context * ctx, GLbitfield mask) { context_t *context = R700_CONTEXT(ctx); radeonContextPtr radeon = &context->radeon; diff --git a/src/mesa/drivers/dri/r600/r700_clear.h b/src/mesa/drivers/dri/r600/r700_clear.h index bed1d3a90e..de372ee303 100644 --- a/src/mesa/drivers/dri/r600/r700_clear.h +++ b/src/mesa/drivers/dri/r600/r700_clear.h @@ -28,6 +28,6 @@ #ifndef __r700_CLEAR_H__ #define __r700_CLEAR_H__ -extern void r700Clear(GLcontext * ctx, GLbitfield mask); +extern void r700Clear(struct gl_context * ctx, GLbitfield mask); #endif /* __r700_CLEAR_H__ */ diff --git a/src/mesa/drivers/dri/r600/r700_fragprog.c b/src/mesa/drivers/dri/r600/r700_fragprog.c index 217b0e27a4..2a6a39dfba 100644 --- a/src/mesa/drivers/dri/r600/r700_fragprog.c +++ b/src/mesa/drivers/dri/r600/r700_fragprog.c @@ -44,7 +44,7 @@ #include "r700_debug.h" -void insert_wpos_code(GLcontext *ctx, struct gl_fragment_program *fprog) +void insert_wpos_code(struct gl_context *ctx, struct gl_fragment_program *fprog) { static const gl_state_index winstate[STATE_LENGTH] = { STATE_INTERNAL, STATE_FB_SIZE, 0, 0, 0}; @@ -95,7 +95,7 @@ void insert_wpos_code(GLcontext *ctx, struct gl_fragment_program *fprog) //TODO : Validate FP input with VP output. void Map_Fragment_Program(r700_AssemblerBase *pAsm, struct gl_fragment_program *mesa_fp, - GLcontext *ctx) + struct gl_context *ctx) { unsigned int unBit; unsigned int i; @@ -353,7 +353,7 @@ GLboolean Find_Instruction_Dependencies_fp(struct r700_fragment_program *fp, GLboolean r700TranslateFragmentShader(struct r700_fragment_program *fp, struct gl_fragment_program *mesa_fp, - GLcontext *ctx) + struct gl_context *ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -466,7 +466,7 @@ GLboolean r700TranslateFragmentShader(struct r700_fragment_program *fp, return GL_TRUE; } -void r700SelectFragmentShader(GLcontext *ctx) +void r700SelectFragmentShader(struct gl_context *ctx) { context_t *context = R700_CONTEXT(ctx); struct r700_fragment_program *fp = (struct r700_fragment_program *) @@ -480,7 +480,7 @@ void r700SelectFragmentShader(GLcontext *ctx) r700TranslateFragmentShader(fp, &(fp->mesa_program), ctx); } -void * r700GetActiveFpShaderBo(GLcontext * ctx) +void * r700GetActiveFpShaderBo(struct gl_context * ctx) { struct r700_fragment_program *fp = (struct r700_fragment_program *) (ctx->FragmentProgram._Current); @@ -488,7 +488,7 @@ void * r700GetActiveFpShaderBo(GLcontext * ctx) return fp->shaderbo; } -void * r700GetActiveFpShaderConstBo(GLcontext * ctx) +void * r700GetActiveFpShaderConstBo(struct gl_context * ctx) { struct r700_fragment_program *fp = (struct r700_fragment_program *) (ctx->FragmentProgram._Current); @@ -496,7 +496,7 @@ void * r700GetActiveFpShaderConstBo(GLcontext * ctx) return fp->constbo0; } -GLboolean r700SetupFragmentProgram(GLcontext * ctx) +GLboolean r700SetupFragmentProgram(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); diff --git a/src/mesa/drivers/dri/r600/r700_fragprog.h b/src/mesa/drivers/dri/r600/r700_fragprog.h index aaa6043d5d..bdb95ff0e7 100644 --- a/src/mesa/drivers/dri/r600/r700_fragprog.h +++ b/src/mesa/drivers/dri/r600/r700_fragprog.h @@ -51,25 +51,25 @@ struct r700_fragment_program }; /* Internal */ -void insert_wpos_code(GLcontext *ctx, struct gl_fragment_program *fprog); +void insert_wpos_code(struct gl_context *ctx, struct gl_fragment_program *fprog); void Map_Fragment_Program(r700_AssemblerBase *pAsm, struct gl_fragment_program *mesa_fp, - GLcontext *ctx); + struct gl_context *ctx); GLboolean Find_Instruction_Dependencies_fp(struct r700_fragment_program *fp, struct gl_fragment_program *mesa_fp); GLboolean r700TranslateFragmentShader(struct r700_fragment_program *fp, struct gl_fragment_program *mesa_vp, - GLcontext *ctx); + struct gl_context *ctx); /* Interface */ -extern void r700SelectFragmentShader(GLcontext *ctx); +extern void r700SelectFragmentShader(struct gl_context *ctx); -extern GLboolean r700SetupFragmentProgram(GLcontext * ctx); +extern GLboolean r700SetupFragmentProgram(struct gl_context * ctx); -extern void * r700GetActiveFpShaderBo(GLcontext * ctx); +extern void * r700GetActiveFpShaderBo(struct gl_context * ctx); -extern void * r700GetActiveFpShaderConstBo(GLcontext * ctx); +extern void * r700GetActiveFpShaderConstBo(struct gl_context * ctx); #endif /*_R700_FRAGPROG_H_*/ diff --git a/src/mesa/drivers/dri/r600/r700_oglprog.c b/src/mesa/drivers/dri/r600/r700_oglprog.c index e0c9179004..6ca7458003 100644 --- a/src/mesa/drivers/dri/r600/r700_oglprog.c +++ b/src/mesa/drivers/dri/r600/r700_oglprog.c @@ -40,7 +40,7 @@ #include "r700_vertprog.h" -static void freeVertProgCache(GLcontext *ctx, struct r700_vertex_program_cont *cache) +static void freeVertProgCache(struct gl_context *ctx, struct r700_vertex_program_cont *cache) { struct r700_vertex_program *tmp, *vp = cache->progs; @@ -64,7 +64,7 @@ static void freeVertProgCache(GLcontext *ctx, struct r700_vertex_program_cont *c } } -static struct gl_program *r700NewProgram(GLcontext * ctx, +static struct gl_program *r700NewProgram(struct gl_context * ctx, GLenum target, GLuint id) { @@ -109,7 +109,7 @@ static struct gl_program *r700NewProgram(GLcontext * ctx, return pProgram; } -static void r700DeleteProgram(GLcontext * ctx, struct gl_program *prog) +static void r700DeleteProgram(struct gl_context * ctx, struct gl_program *prog) { struct r700_vertex_program_cont *vpc = (struct r700_vertex_program_cont *)prog; struct r700_fragment_program * fp; @@ -147,7 +147,7 @@ static void r700DeleteProgram(GLcontext * ctx, struct gl_program *prog) } static GLboolean -r700ProgramStringNotify(GLcontext * ctx, GLenum target, struct gl_program *prog) +r700ProgramStringNotify(struct gl_context * ctx, GLenum target, struct gl_program *prog) { struct r700_vertex_program_cont *vpc = (struct r700_vertex_program_cont *)prog; struct r700_fragment_program * fp = (struct r700_fragment_program*)prog; @@ -178,7 +178,7 @@ r700ProgramStringNotify(GLcontext * ctx, GLenum target, struct gl_program *prog) return GL_TRUE; } -static GLboolean r700IsProgramNative(GLcontext * ctx, GLenum target, struct gl_program *prog) +static GLboolean r700IsProgramNative(struct gl_context * ctx, GLenum target, struct gl_program *prog) { return GL_TRUE; diff --git a/src/mesa/drivers/dri/r600/r700_render.c b/src/mesa/drivers/dri/r600/r700_render.c index f90c69c416..bb14a239b7 100644 --- a/src/mesa/drivers/dri/r600/r700_render.c +++ b/src/mesa/drivers/dri/r600/r700_render.c @@ -244,7 +244,7 @@ static int r700NumVerts(int num_verts, int prim) return num_verts - verts_off; } -static void r700RunRenderPrimitive(GLcontext * ctx, int start, int end, +static void r700RunRenderPrimitive(struct gl_context * ctx, int start, int end, int prim, GLint basevertex) { context_t *context = R700_CONTEXT(ctx); @@ -315,7 +315,7 @@ static void r700RunRenderPrimitive(GLcontext * ctx, int start, int end, COMMIT_BATCH(); } -static void r700RunRenderPrimitiveImmediate(GLcontext * ctx, int start, int end, int prim) +static void r700RunRenderPrimitiveImmediate(struct gl_context * ctx, int start, int end, int prim) { context_t *context = R700_CONTEXT(ctx); BATCH_LOCALS(&context->radeon); @@ -434,7 +434,7 @@ static void r700RunRenderPrimitiveImmediate(GLcontext * ctx, int start, int end, /* start 3d, idle, cb/db flush */ #define PRE_EMIT_STATE_BUFSZ 5 + 5 + 14 -static GLuint r700PredictRenderSize(GLcontext* ctx, +static GLuint r700PredictRenderSize(struct gl_context* ctx, const struct _mesa_prim *prim, const struct _mesa_index_buffer *ib, GLuint nr_prims) @@ -501,7 +501,7 @@ static GLuint r700PredictRenderSize(GLcontext* ctx, * Convert attribute data type to float * If the attribute uses named buffer object replace the bo with newly allocated bo */ -static void r700ConvertAttrib(GLcontext *ctx, int count, +static void r700ConvertAttrib(struct gl_context *ctx, int count, const struct gl_client_array *input, struct StreamDesc *attr) { @@ -580,7 +580,7 @@ static void r700ConvertAttrib(GLcontext *ctx, int count, } } -static void r700AlignDataToDword(GLcontext *ctx, +static void r700AlignDataToDword(struct gl_context *ctx, const struct gl_client_array *input, int count, struct StreamDesc *attr) @@ -622,7 +622,7 @@ static void r700AlignDataToDword(GLcontext *ctx, attr->stride = dst_stride; } -static void r700SetupStreams(GLcontext *ctx, const struct gl_client_array *input[], int count) +static void r700SetupStreams(struct gl_context *ctx, const struct gl_client_array *input[], int count) { context_t *context = R700_CONTEXT(ctx); GLuint stride; @@ -723,7 +723,7 @@ static void r700SetupStreams(GLcontext *ctx, const struct gl_client_array *input RADEON_GEM_DOMAIN_GTT, 0); } -static void r700FreeData(GLcontext *ctx) +static void r700FreeData(struct gl_context *ctx) { /* Need to zero tcl.aos[n].bo and tcl.elt_dma_bo * to prevent double unref in radeonReleaseArrays @@ -748,7 +748,7 @@ static void r700FreeData(GLcontext *ctx) } } -static void r700FixupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer *mesa_ind_buf) +static void r700FixupIndexBuffer(struct gl_context *ctx, const struct _mesa_index_buffer *mesa_ind_buf) { context_t *context = R700_CONTEXT(ctx); GLvoid *src_ptr; @@ -823,7 +823,7 @@ static void r700FixupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer } } -static void r700SetupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer *mesa_ind_buf) +static void r700SetupIndexBuffer(struct gl_context *ctx, const struct _mesa_index_buffer *mesa_ind_buf) { context_t *context = R700_CONTEXT(ctx); @@ -876,7 +876,7 @@ static void r700SetupIndexBuffer(GLcontext *ctx, const struct _mesa_index_buffer } } -static GLboolean check_fallbacks(GLcontext *ctx) +static GLboolean check_fallbacks(struct gl_context *ctx) { if (ctx->RenderMode != GL_RENDER) return GL_TRUE; @@ -884,7 +884,7 @@ static GLboolean check_fallbacks(GLcontext *ctx) return GL_FALSE; } -static GLboolean r700TryDrawPrims(GLcontext *ctx, +static GLboolean r700TryDrawPrims(struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -972,7 +972,7 @@ static GLboolean r700TryDrawPrims(GLcontext *ctx, return GL_TRUE; } -static void r700DrawPrims(GLcontext *ctx, +static void r700DrawPrims(struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -1011,7 +1011,7 @@ static void r700DrawPrims(GLcontext *ctx, } } -void r700InitDraw(GLcontext *ctx) +void r700InitDraw(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); diff --git a/src/mesa/drivers/dri/r600/r700_shader.c b/src/mesa/drivers/dri/r600/r700_shader.c index 8b3ed5cd82..cbbfaed31c 100644 --- a/src/mesa/drivers/dri/r600/r700_shader.c +++ b/src/mesa/drivers/dri/r600/r700_shader.c @@ -38,7 +38,7 @@ #include "r700_shader.h" -void r700ShaderInit(GLcontext * ctx) +void r700ShaderInit(struct gl_context * ctx) { } diff --git a/src/mesa/drivers/dri/r600/r700_shader.h b/src/mesa/drivers/dri/r600/r700_shader.h index 0599ffd901..183dd33525 100644 --- a/src/mesa/drivers/dri/r600/r700_shader.h +++ b/src/mesa/drivers/dri/r600/r700_shader.h @@ -33,7 +33,7 @@ #include "r700_shaderinst.h" -void r700ShaderInit(GLcontext * ctx); +void r700ShaderInit(struct gl_context * ctx); typedef enum R700ShaderType { diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c index 925b4ffe6d..bd04a633b4 100644 --- a/src/mesa/drivers/dri/r600/r700_state.c +++ b/src/mesa/drivers/dri/r600/r700_state.c @@ -52,14 +52,14 @@ #include "r700_fragprog.h" #include "r700_vertprog.h" -void r600UpdateTextureState(GLcontext * ctx); -static void r700SetClipPlaneState(GLcontext * ctx, GLenum cap, GLboolean state); -static void r700UpdatePolygonMode(GLcontext * ctx); -static void r700SetPolygonOffsetState(GLcontext * ctx, GLboolean state); -static void r700SetStencilState(GLcontext * ctx, GLboolean state); -static void r700UpdateWindow(GLcontext * ctx, int id); - -void r700UpdateShaders(GLcontext * ctx) +void r600UpdateTextureState(struct gl_context * ctx); +static void r700SetClipPlaneState(struct gl_context * ctx, GLenum cap, GLboolean state); +static void r700UpdatePolygonMode(struct gl_context * ctx); +static void r700SetPolygonOffsetState(struct gl_context * ctx, GLboolean state); +static void r700SetStencilState(struct gl_context * ctx, GLboolean state); +static void r700UpdateWindow(struct gl_context * ctx, int id); + +void r700UpdateShaders(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); @@ -80,7 +80,7 @@ void r700UpdateShaders(GLcontext * ctx) /* * To correctly position primitives: */ -void r700UpdateViewportOffset(GLcontext * ctx) //------------------ +void r700UpdateViewportOffset(struct gl_context * ctx) //------------------ { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -106,7 +106,7 @@ void r700UpdateViewportOffset(GLcontext * ctx) //------------------ radeonUpdateScissor(ctx); } -void r700UpdateStateParameters(GLcontext * ctx, GLuint new_state) //-------------------- +void r700UpdateStateParameters(struct gl_context * ctx, GLuint new_state) //-------------------- { struct r700_fragment_program *fp = (struct r700_fragment_program *)ctx->FragmentProgram._Current; @@ -130,7 +130,7 @@ void r700UpdateStateParameters(GLcontext * ctx, GLuint new_state) //------------ /** * Called by Mesa after an internal state update. */ -static void r700InvalidateState(GLcontext * ctx, GLuint new_state) //------------------- +static void r700InvalidateState(struct gl_context * ctx, GLuint new_state) //------------------- { context_t *context = R700_CONTEXT(ctx); @@ -190,7 +190,7 @@ static void r700InvalidateState(GLcontext * ctx, GLuint new_state) //----------- context->radeon.NewGLState |= new_state; } -static void r700SetDBRenderState(GLcontext * ctx) +static void r700SetDBRenderState(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -245,13 +245,13 @@ static void r700SetDBRenderState(GLcontext * ctx) } } -void r700UpdateShaderStates(GLcontext * ctx) +void r700UpdateShaderStates(struct gl_context * ctx) { r700SetDBRenderState(ctx); r600UpdateTextureState(ctx); } -static void r700SetDepthState(GLcontext * ctx) +static void r700SetDepthState(struct gl_context * ctx) { struct radeon_renderbuffer *rrb; context_t *context = R700_CONTEXT(ctx); @@ -320,7 +320,7 @@ static void r700SetDepthState(GLcontext * ctx) } } -static void r700SetAlphaState(GLcontext * ctx) +static void r700SetAlphaState(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -368,7 +368,7 @@ static void r700SetAlphaState(GLcontext * ctx) } -static void r700AlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) //--------------- +static void r700AlphaFunc(struct gl_context * ctx, GLenum func, GLfloat ref) //--------------- { (void)func; (void)ref; @@ -376,7 +376,7 @@ static void r700AlphaFunc(GLcontext * ctx, GLenum func, GLfloat ref) //--------- } -static void r700BlendColor(GLcontext * ctx, const GLfloat cf[4]) //---------------- +static void r700BlendColor(struct gl_context * ctx, const GLfloat cf[4]) //---------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -444,7 +444,7 @@ static int blend_factor(GLenum factor, GLboolean is_src) } } -static void r700SetBlendState(GLcontext * ctx) +static void r700SetBlendState(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -576,13 +576,13 @@ static void r700SetBlendState(GLcontext * ctx) } -static void r700BlendEquationSeparate(GLcontext * ctx, +static void r700BlendEquationSeparate(struct gl_context * ctx, GLenum modeRGB, GLenum modeA) //----------------- { r700SetBlendState(ctx); } -static void r700BlendFuncSeparate(GLcontext * ctx, +static void r700BlendFuncSeparate(struct gl_context * ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA) //------------------------ { @@ -637,7 +637,7 @@ static GLuint translate_logicop(GLenum logicop) * Used internally to update the r300->hw hardware state to match the * current OpenGL state. */ -static void r700SetLogicOpState(GLcontext *ctx) +static void r700SetLogicOpState(struct gl_context *ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&R700_CONTEXT(ctx)->hw); @@ -655,13 +655,13 @@ static void r700SetLogicOpState(GLcontext *ctx) * Called by Mesa when an application program changes the LogicOp state * via glLogicOp. */ -static void r700LogicOpcode(GLcontext *ctx, GLenum logicop) +static void r700LogicOpcode(struct gl_context *ctx, GLenum logicop) { if (RGBA_LOGICOP_ENABLED(ctx)) r700SetLogicOpState(ctx); } -static void r700UpdateCulling(GLcontext * ctx) +static void r700UpdateCulling(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&R700_CONTEXT(ctx)->hw); @@ -713,7 +713,7 @@ static void r700UpdateCulling(GLcontext * ctx) r700->PA_SU_SC_MODE_CNTL.u32All ^= FACE_bit; } -static void r700UpdateLineStipple(GLcontext * ctx) +static void r700UpdateLineStipple(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&R700_CONTEXT(ctx)->hw); @@ -730,7 +730,7 @@ static void r700UpdateLineStipple(GLcontext * ctx) } } -static void r700Enable(GLcontext * ctx, GLenum cap, GLboolean state) //------------------ +static void r700Enable(struct gl_context * ctx, GLenum cap, GLboolean state) //------------------ { context_t *context = R700_CONTEXT(ctx); @@ -794,7 +794,7 @@ static void r700Enable(GLcontext * ctx, GLenum cap, GLboolean state) //--------- /** * Handle glColorMask() */ -static void r700ColorMask(GLcontext * ctx, +static void r700ColorMask(struct gl_context * ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a) //------------------ { context_t *context = R700_CONTEXT(ctx); @@ -815,7 +815,7 @@ static void r700ColorMask(GLcontext * ctx, * * \note Mesa already filters redundant calls to this function. */ -static void r700DepthFunc(GLcontext * ctx, GLenum func) //-------------------- +static void r700DepthFunc(struct gl_context * ctx, GLenum func) //-------------------- { r700SetDepthState(ctx); } @@ -825,7 +825,7 @@ static void r700DepthFunc(GLcontext * ctx, GLenum func) //-------------------- * * \note Mesa already filters redundant calls to this function. */ -static void r700DepthMask(GLcontext * ctx, GLboolean mask) //------------------ +static void r700DepthMask(struct gl_context * ctx, GLboolean mask) //------------------ { r700SetDepthState(ctx); } @@ -835,7 +835,7 @@ static void r700DepthMask(GLcontext * ctx, GLboolean mask) //------------------ * * \note Mesa already filters redundant calls to this function. */ -static void r700CullFace(GLcontext * ctx, GLenum mode) //----------------- +static void r700CullFace(struct gl_context * ctx, GLenum mode) //----------------- { r700UpdateCulling(ctx); } @@ -843,7 +843,7 @@ static void r700CullFace(GLcontext * ctx, GLenum mode) //----------------- /* ============================================================= * Fog */ -static void r700Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) //-------------- +static void r700Fogfv(struct gl_context * ctx, GLenum pname, const GLfloat * param) //-------------- { } @@ -852,13 +852,13 @@ static void r700Fogfv(GLcontext * ctx, GLenum pname, const GLfloat * param) //-- * * \note Mesa already filters redundant calls to this function. */ -static void r700FrontFace(GLcontext * ctx, GLenum mode) //------------------ +static void r700FrontFace(struct gl_context * ctx, GLenum mode) //------------------ { r700UpdateCulling(ctx); r700UpdatePolygonMode(ctx); } -static void r700ShadeModel(GLcontext * ctx, GLenum mode) //-------------------- +static void r700ShadeModel(struct gl_context * ctx, GLenum mode) //-------------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -881,7 +881,7 @@ static void r700ShadeModel(GLcontext * ctx, GLenum mode) //-------------------- /* ============================================================= * Point state */ -static void r700PointSize(GLcontext * ctx, GLfloat size) +static void r700PointSize(struct gl_context * ctx, GLfloat size) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -903,7 +903,7 @@ static void r700PointSize(GLcontext * ctx, GLfloat size) } -static void r700PointParameter(GLcontext * ctx, GLenum pname, const GLfloat * param) //--------------- +static void r700PointParameter(struct gl_context * ctx, GLenum pname, const GLfloat * param) //--------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -980,7 +980,7 @@ static int translate_stencil_op(int op) return 0; } -static void r700SetStencilState(GLcontext * ctx, GLboolean state) +static void r700SetStencilState(struct gl_context * ctx, GLboolean state) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1002,7 +1002,7 @@ static void r700SetStencilState(GLcontext * ctx, GLboolean state) } } -static void r700StencilFuncSeparate(GLcontext * ctx, GLenum face, +static void r700StencilFuncSeparate(struct gl_context * ctx, GLenum face, GLenum func, GLint ref, GLuint mask) //--------------------- { context_t *context = R700_CONTEXT(ctx); @@ -1032,7 +1032,7 @@ static void r700StencilFuncSeparate(GLcontext * ctx, GLenum face, } -static void r700StencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) //-------------- +static void r700StencilMaskSeparate(struct gl_context * ctx, GLenum face, GLuint mask) //-------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1050,7 +1050,7 @@ static void r700StencilMaskSeparate(GLcontext * ctx, GLenum face, GLuint mask) / } -static void r700StencilOpSeparate(GLcontext * ctx, GLenum face, +static void r700StencilOpSeparate(struct gl_context * ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) //-------------------- { context_t *context = R700_CONTEXT(ctx); @@ -1074,7 +1074,7 @@ static void r700StencilOpSeparate(GLcontext * ctx, GLenum face, STENCILZPASS_BF_shift, STENCILZPASS_BF_mask); } -static void r700UpdateWindow(GLcontext * ctx, int id) //-------------------- +static void r700UpdateWindow(struct gl_context * ctx, int id) //-------------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1131,7 +1131,7 @@ static void r700UpdateWindow(GLcontext * ctx, int id) //-------------------- } -static void r700Viewport(GLcontext * ctx, +static void r700Viewport(struct gl_context * ctx, GLint x, GLint y, GLsizei width, @@ -1142,12 +1142,12 @@ static void r700Viewport(GLcontext * ctx, radeon_viewport(ctx, x, y, width, height); } -static void r700DepthRange(GLcontext * ctx, GLclampd nearval, GLclampd farval) //------------- +static void r700DepthRange(struct gl_context * ctx, GLclampd nearval, GLclampd farval) //------------- { r700UpdateWindow(ctx, 0); } -static void r700LineWidth(GLcontext * ctx, GLfloat widthf) //--------------- +static void r700LineWidth(struct gl_context * ctx, GLfloat widthf) //--------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1161,7 +1161,7 @@ static void r700LineWidth(GLcontext * ctx, GLfloat widthf) //--------------- PA_SU_LINE_CNTL__WIDTH_shift, PA_SU_LINE_CNTL__WIDTH_mask); } -static void r700LineStipple(GLcontext *ctx, GLint factor, GLushort pattern) +static void r700LineStipple(struct gl_context *ctx, GLint factor, GLushort pattern) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1173,7 +1173,7 @@ static void r700LineStipple(GLcontext *ctx, GLint factor, GLushort pattern) SETfield(r700->PA_SC_LINE_STIPPLE.u32All, 1, AUTO_RESET_CNTL_shift, AUTO_RESET_CNTL_mask); } -static void r700SetPolygonOffsetState(GLcontext * ctx, GLboolean state) +static void r700SetPolygonOffsetState(struct gl_context * ctx, GLboolean state) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1191,7 +1191,7 @@ static void r700SetPolygonOffsetState(GLcontext * ctx, GLboolean state) } } -static void r700PolygonOffset(GLcontext * ctx, GLfloat factor, GLfloat units) //-------------- +static void r700PolygonOffset(struct gl_context * ctx, GLfloat factor, GLfloat units) //-------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1221,7 +1221,7 @@ static void r700PolygonOffset(GLcontext * ctx, GLfloat factor, GLfloat units) // r700->PA_SU_POLY_OFFSET_BACK_OFFSET.f32All = constant; } -static void r700UpdatePolygonMode(GLcontext * ctx) +static void r700UpdatePolygonMode(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1276,7 +1276,7 @@ static void r700UpdatePolygonMode(GLcontext * ctx) } } -static void r700PolygonMode(GLcontext * ctx, GLenum face, GLenum mode) //------------------ +static void r700PolygonMode(struct gl_context * ctx, GLenum face, GLenum mode) //------------------ { (void)face; (void)mode; @@ -1284,11 +1284,11 @@ static void r700PolygonMode(GLcontext * ctx, GLenum face, GLenum mode) //------- r700UpdatePolygonMode(ctx); } -static void r700RenderMode(GLcontext * ctx, GLenum mode) //--------------------- +static void r700RenderMode(struct gl_context * ctx, GLenum mode) //--------------------- { } -static void r700ClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) +static void r700ClipPlane( struct gl_context *ctx, GLenum plane, const GLfloat *eq ) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1306,7 +1306,7 @@ static void r700ClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) r700->ucp[p].PA_CL_UCP_0_W.u32All = ip[3]; } -static void r700SetClipPlaneState(GLcontext * ctx, GLenum cap, GLboolean state) +static void r700SetClipPlaneState(struct gl_context * ctx, GLenum cap, GLboolean state) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1428,7 +1428,7 @@ void r700SetScissor(context_t *context) //--------------- r700->viewport[id].enabled = GL_TRUE; } -static void r700InitSQConfig(GLcontext * ctx) +static void r700InitSQConfig(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); @@ -1635,7 +1635,7 @@ static void r700InitSQConfig(GLcontext * ctx) * Assumes that the command buffer and state atoms have been * initialized already. */ -void r700InitState(GLcontext * ctx) //------------------- +void r700InitState(struct gl_context * ctx) //------------------- { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); diff --git a/src/mesa/drivers/dri/r600/r700_state.h b/src/mesa/drivers/dri/r600/r700_state.h index 56885e0b15..2d51198c8a 100644 --- a/src/mesa/drivers/dri/r600/r700_state.h +++ b/src/mesa/drivers/dri/r600/r700_state.h @@ -33,13 +33,13 @@ #include "r700_chip.h" -extern void r700UpdateStateParameters(GLcontext * ctx, GLuint new_state); -extern void r700UpdateShaders (GLcontext * ctx); -extern void r700UpdateShaderStates(GLcontext * ctx); +extern void r700UpdateStateParameters(struct gl_context * ctx, GLuint new_state); +extern void r700UpdateShaders (struct gl_context * ctx); +extern void r700UpdateShaderStates(struct gl_context * ctx); -extern void r700UpdateViewportOffset(GLcontext * ctx); +extern void r700UpdateViewportOffset(struct gl_context * ctx); -extern void r700InitState (GLcontext * ctx); +extern void r700InitState (struct gl_context * ctx); extern void r700InitStateFuncs (radeonContextPtr radeon, struct dd_function_table *functions); extern void r700SetScissor(context_t *context); diff --git a/src/mesa/drivers/dri/r600/r700_vertprog.c b/src/mesa/drivers/dri/r600/r700_vertprog.c index 2fee5b4433..7ba49d8f98 100644 --- a/src/mesa/drivers/dri/r600/r700_vertprog.c +++ b/src/mesa/drivers/dri/r600/r700_vertprog.c @@ -170,7 +170,7 @@ GLboolean Process_Vertex_Program_Vfetch_Instructions( } GLboolean Process_Vertex_Program_Vfetch_Instructions2( - GLcontext *ctx, + struct gl_context *ctx, struct r700_vertex_program *vp, struct gl_vertex_program *mesa_vp) { @@ -197,7 +197,7 @@ GLboolean Process_Vertex_Program_Vfetch_Instructions2( return GL_TRUE; } -void Map_Vertex_Program(GLcontext *ctx, +void Map_Vertex_Program(struct gl_context *ctx, struct r700_vertex_program *vp, struct gl_vertex_program *mesa_vp) { @@ -293,7 +293,7 @@ GLboolean Find_Instruction_Dependencies_vp(struct r700_vertex_program *vp, return GL_TRUE; } -struct r700_vertex_program* r700TranslateVertexShader(GLcontext *ctx, +struct r700_vertex_program* r700TranslateVertexShader(struct gl_context *ctx, struct gl_vertex_program *mesa_vp) { context_t *context = R700_CONTEXT(ctx); @@ -385,7 +385,7 @@ struct r700_vertex_program* r700TranslateVertexShader(GLcontext *ctx, return vp; } -void r700SelectVertexShader(GLcontext *ctx) +void r700SelectVertexShader(struct gl_context *ctx) { context_t *context = R700_CONTEXT(ctx); struct r700_vertex_program_cont *vpc; @@ -459,7 +459,7 @@ int getTypeSize(GLenum type) } } -static void r700TranslateAttrib(GLcontext *ctx, GLuint unLoc, int count, const struct gl_client_array *input) +static void r700TranslateAttrib(struct gl_context *ctx, GLuint unLoc, int count, const struct gl_client_array *input) { context_t *context = R700_CONTEXT(ctx); @@ -545,7 +545,7 @@ static void r700TranslateAttrib(GLcontext *ctx, GLuint unLoc, int count, const s context->nNumActiveAos++; } -void r700SetVertexFormat(GLcontext *ctx, const struct gl_client_array *arrays[], int count) +void r700SetVertexFormat(struct gl_context *ctx, const struct gl_client_array *arrays[], int count) { context_t *context = R700_CONTEXT(ctx); struct r700_vertex_program *vpc @@ -574,7 +574,7 @@ void r700SetVertexFormat(GLcontext *ctx, const struct gl_client_array *arrays[], context->radeon.tcl.aos_count = context->nNumActiveAos; } -void * r700GetActiveVpShaderBo(GLcontext * ctx) +void * r700GetActiveVpShaderBo(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); struct r700_vertex_program *vp = context->selected_vp;; @@ -585,7 +585,7 @@ void * r700GetActiveVpShaderBo(GLcontext * ctx) return NULL; } -void * r700GetActiveVpShaderConstBo(GLcontext * ctx) +void * r700GetActiveVpShaderConstBo(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); struct r700_vertex_program *vp = context->selected_vp;; @@ -596,7 +596,7 @@ void * r700GetActiveVpShaderConstBo(GLcontext * ctx) return NULL; } -GLboolean r700SetupVertexProgram(GLcontext * ctx) +GLboolean r700SetupVertexProgram(struct gl_context * ctx) { context_t *context = R700_CONTEXT(ctx); R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw); diff --git a/src/mesa/drivers/dri/r600/r700_vertprog.h b/src/mesa/drivers/dri/r600/r700_vertprog.h index 9acdc8e350..859afb6e97 100644 --- a/src/mesa/drivers/dri/r600/r700_vertprog.h +++ b/src/mesa/drivers/dri/r600/r700_vertprog.h @@ -80,27 +80,27 @@ GLboolean Process_Vertex_Program_Vfetch_Instructions( struct r700_vertex_program *vp, struct gl_vertex_program *mesa_vp); GLboolean Process_Vertex_Program_Vfetch_Instructions2( - GLcontext *ctx, + struct gl_context *ctx, struct r700_vertex_program *vp, struct gl_vertex_program *mesa_vp); -void Map_Vertex_Program(GLcontext *ctx, +void Map_Vertex_Program(struct gl_context *ctx, struct r700_vertex_program *vp, struct gl_vertex_program *mesa_vp); GLboolean Find_Instruction_Dependencies_vp(struct r700_vertex_program *vp, struct gl_vertex_program *mesa_vp); -struct r700_vertex_program* r700TranslateVertexShader(GLcontext *ctx, +struct r700_vertex_program* r700TranslateVertexShader(struct gl_context *ctx, struct gl_vertex_program *mesa_vp); /* Interface */ -extern void r700SelectVertexShader(GLcontext *ctx); -extern void r700SetVertexFormat(GLcontext *ctx, const struct gl_client_array *arrays[], int count); +extern void r700SelectVertexShader(struct gl_context *ctx); +extern void r700SetVertexFormat(struct gl_context *ctx, const struct gl_client_array *arrays[], int count); -extern GLboolean r700SetupVertexProgram(GLcontext * ctx); +extern GLboolean r700SetupVertexProgram(struct gl_context * ctx); -extern void * r700GetActiveVpShaderBo(GLcontext * ctx); +extern void * r700GetActiveVpShaderBo(struct gl_context * ctx); -extern void * r700GetActiveVpShaderConstBo(GLcontext * ctx); +extern void * r700GetActiveVpShaderConstBo(struct gl_context * ctx); extern int getTypeSize(GLenum type); diff --git a/src/mesa/drivers/dri/radeon/radeon_blit.c b/src/mesa/drivers/dri/radeon/radeon_blit.c index 143822361e..fe14540bc2 100644 --- a/src/mesa/drivers/dri/radeon/radeon_blit.c +++ b/src/mesa/drivers/dri/radeon/radeon_blit.c @@ -321,7 +321,7 @@ static inline void emit_draw_packet(struct r100_context *r100, * @param[in] height region height * @param[in] flip_y set if y coords of the source image need to be flipped */ -unsigned r100_blit(GLcontext *ctx, +unsigned r100_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/radeon/radeon_blit.h b/src/mesa/drivers/dri/radeon/radeon_blit.h index d7d0b5554a..5e5c73481a 100644 --- a/src/mesa/drivers/dri/radeon/radeon_blit.h +++ b/src/mesa/drivers/dri/radeon/radeon_blit.h @@ -32,7 +32,7 @@ void r100_blit_init(struct r100_context *r100); unsigned r100_check_blit(gl_format mesa_format); -unsigned r100_blit(GLcontext *ctx, +unsigned r100_blit(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, diff --git a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c index 0897dafbd8..0d1af726c0 100644 --- a/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c +++ b/src/mesa/drivers/dri/radeon/radeon_buffer_objects.c @@ -40,7 +40,7 @@ get_radeon_buffer_object(struct gl_buffer_object *obj) } static struct gl_buffer_object * -radeonNewBufferObject(GLcontext * ctx, +radeonNewBufferObject(struct gl_context * ctx, GLuint name, GLenum target) { @@ -57,7 +57,7 @@ radeonNewBufferObject(GLcontext * ctx, * Called via glDeleteBuffersARB(). */ static void -radeonDeleteBufferObject(GLcontext * ctx, +radeonDeleteBufferObject(struct gl_context * ctx, struct gl_buffer_object *obj) { struct radeon_buffer_object *radeon_obj = get_radeon_buffer_object(obj); @@ -82,7 +82,7 @@ radeonDeleteBufferObject(GLcontext * ctx, * \return GL_TRUE for success, GL_FALSE if out of memory */ static GLboolean -radeonBufferData(GLcontext * ctx, +radeonBufferData(struct gl_context * ctx, GLenum target, GLsizeiptrARB size, const GLvoid * data, @@ -129,7 +129,7 @@ radeonBufferData(GLcontext * ctx, * Called via glBufferSubDataARB(). */ static void -radeonBufferSubData(GLcontext * ctx, +radeonBufferSubData(struct gl_context * ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, @@ -154,7 +154,7 @@ radeonBufferSubData(GLcontext * ctx, * Called via glGetBufferSubDataARB() */ static void -radeonGetBufferSubData(GLcontext * ctx, +radeonGetBufferSubData(struct gl_context * ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, @@ -174,7 +174,7 @@ radeonGetBufferSubData(GLcontext * ctx, * Called via glMapBufferARB() */ static void * -radeonMapBuffer(GLcontext * ctx, +radeonMapBuffer(struct gl_context * ctx, GLenum target, GLenum access, struct gl_buffer_object *obj) @@ -204,7 +204,7 @@ radeonMapBuffer(GLcontext * ctx, * Called via glUnmapBufferARB() */ static GLboolean -radeonUnmapBuffer(GLcontext * ctx, +radeonUnmapBuffer(struct gl_context * ctx, GLenum target, struct gl_buffer_object *obj) { diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index c1a660af3d..43a6355ad8 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -201,7 +201,7 @@ void radeonSetCliprects(radeonContextPtr radeon) -void radeonUpdateScissor( GLcontext *ctx ) +void radeonUpdateScissor( struct gl_context *ctx ) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); GLint x = ctx->Scissor.X, y = ctx->Scissor.Y; @@ -252,7 +252,7 @@ void radeonUpdateScissor( GLcontext *ctx ) * Scissoring */ -void radeonScissor(GLcontext* ctx, GLint x, GLint y, GLsizei w, GLsizei h) +void radeonScissor(struct gl_context* ctx, GLint x, GLint y, GLsizei w, GLsizei h) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); if (ctx->Scissor.Enabled) { @@ -578,7 +578,7 @@ void radeonSwapBuffers(__DRIdrawable * dPriv) if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) { radeonContextPtr radeon; - GLcontext *ctx; + struct gl_context *ctx; radeon = (radeonContextPtr) dPriv->driContextPriv->driverPrivate; ctx = radeon->glCtx; @@ -620,7 +620,7 @@ void radeonCopySubBuffer(__DRIdrawable * dPriv, { if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) { radeonContextPtr radeon; - GLcontext *ctx; + struct gl_context *ctx; radeon = (radeonContextPtr) dPriv->driContextPriv->driverPrivate; ctx = radeon->glCtx; @@ -646,7 +646,7 @@ void radeonCopySubBuffer(__DRIdrawable * dPriv, * If so, set the intel->front_buffer_dirty field to true. */ void -radeon_check_front_buffer_rendering(GLcontext *ctx) +radeon_check_front_buffer_rendering(struct gl_context *ctx) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); const struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -662,7 +662,7 @@ radeon_check_front_buffer_rendering(GLcontext *ctx) } -void radeon_draw_buffer(GLcontext *ctx, struct gl_framebuffer *fb) +void radeon_draw_buffer(struct gl_context *ctx, struct gl_framebuffer *fb) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_renderbuffer *rrbDepth = NULL, *rrbStencil = NULL, @@ -817,7 +817,7 @@ void radeon_draw_buffer(GLcontext *ctx, struct gl_framebuffer *fb) /** * Called via glDrawBuffer. */ -void radeonDrawBuffer( GLcontext *ctx, GLenum mode ) +void radeonDrawBuffer( struct gl_context *ctx, GLenum mode ) { if (RADEON_DEBUG & RADEON_DRI) fprintf(stderr, "%s %s\n", __FUNCTION__, @@ -844,7 +844,7 @@ void radeonDrawBuffer( GLcontext *ctx, GLenum mode ) radeon_draw_buffer(ctx, ctx->DrawBuffer); } -void radeonReadBuffer( GLcontext *ctx, GLenum mode ) +void radeonReadBuffer( struct gl_context *ctx, GLenum mode ) { if ((ctx->DrawBuffer != NULL) && (ctx->DrawBuffer->Name == 0)) { struct radeon_context *const rmesa = RADEON_CONTEXT(ctx); @@ -891,11 +891,11 @@ void radeon_window_moved(radeonContextPtr radeon) } } -void radeon_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height) +void radeon_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); __DRIcontext *driContext = radeon->dri.context; - void (*old_viewport)(GLcontext *ctx, GLint x, GLint y, + void (*old_viewport)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h); if (!driContext->driScreenPriv->dri2.enabled) @@ -1064,7 +1064,7 @@ static INLINE void radeonEmitAtoms(radeonContextPtr radeon, GLboolean emitAll) COMMIT_BATCH(); } -static GLboolean radeon_revalidate_bos(GLcontext *ctx) +static GLboolean radeon_revalidate_bos(struct gl_context *ctx) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); int ret; @@ -1104,7 +1104,7 @@ void radeonEmitState(radeonContextPtr radeon) } -void radeonFlush(GLcontext *ctx) +void radeonFlush(struct gl_context *ctx) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); if (RADEON_DEBUG & RADEON_IOCTL) @@ -1145,7 +1145,7 @@ flush_front: /* Make sure all commands have been sent to the hardware and have * completed processing. */ -void radeonFinish(GLcontext * ctx) +void radeonFinish(struct gl_context * ctx) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -1327,7 +1327,7 @@ void rcommonBeginBatch(radeonContextPtr rmesa, int n, } -void radeonUserClear(GLcontext *ctx, GLuint mask) +void radeonUserClear(struct gl_context *ctx, GLuint mask) { _mesa_meta_Clear(ctx, mask); } diff --git a/src/mesa/drivers/dri/radeon/radeon_common.h b/src/mesa/drivers/dri/radeon/radeon_common.h index 35b3f08fff..85a114623a 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.h +++ b/src/mesa/drivers/dri/radeon/radeon_common.h @@ -5,11 +5,11 @@ #include "radeon_dma.h" #include "radeon_texture.h" -void radeonUserClear(GLcontext *ctx, GLuint mask); +void radeonUserClear(struct gl_context *ctx, GLuint mask); void radeonRecalcScissorRects(radeonContextPtr radeon); void radeonSetCliprects(radeonContextPtr radeon); -void radeonUpdateScissor( GLcontext *ctx ); -void radeonScissor(GLcontext* ctx, GLint x, GLint y, GLsizei w, GLsizei h); +void radeonUpdateScissor( struct gl_context *ctx ); +void radeonScissor(struct gl_context* ctx, GLint x, GLint y, GLsizei w, GLsizei h); void radeonWaitForIdleLocked(radeonContextPtr radeon); extern uint32_t radeonGetAge(radeonContextPtr radeon); @@ -21,18 +21,18 @@ void radeonCopySubBuffer(__DRIdrawable * dPriv, void radeonUpdatePageFlipping(radeonContextPtr rmesa); -void radeonFlush(GLcontext *ctx); -void radeonFinish(GLcontext * ctx); +void radeonFlush(struct gl_context *ctx); +void radeonFinish(struct gl_context * ctx); void radeonEmitState(radeonContextPtr radeon); GLuint radeonCountStateEmitSize(radeonContextPtr radeon); -void radeon_clear_tris(GLcontext *ctx, GLbitfield mask); +void radeon_clear_tris(struct gl_context *ctx, GLbitfield mask); void radeon_window_moved(radeonContextPtr radeon); -void radeon_draw_buffer(GLcontext *ctx, struct gl_framebuffer *fb); -void radeonDrawBuffer( GLcontext *ctx, GLenum mode ); -void radeonReadBuffer( GLcontext *ctx, GLenum mode ); -void radeon_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height); +void radeon_draw_buffer(struct gl_context *ctx, struct gl_framebuffer *fb); +void radeonDrawBuffer( struct gl_context *ctx, GLenum mode ); +void radeonReadBuffer( struct gl_context *ctx, GLenum mode ); +void radeon_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height); void radeon_get_cliprects(radeonContextPtr radeon, struct drm_clip_rect **cliprects, unsigned int *num_cliprects, @@ -45,12 +45,12 @@ struct radeon_renderbuffer * radeon_create_renderbuffer(gl_format format, __DRIdrawable *driDrawPriv); void -radeonReadPixels(GLcontext * ctx, +radeonReadPixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, GLvoid * pixels); -void radeon_check_front_buffer_rendering(GLcontext *ctx); +void radeon_check_front_buffer_rendering(struct gl_context *ctx); static inline struct radeon_renderbuffer *radeon_renderbuffer(struct gl_renderbuffer *rb) { struct radeon_renderbuffer *rrb = (struct radeon_renderbuffer *)rb; diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c index 85e4988c53..40544860b3 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common_context.c +++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c @@ -105,7 +105,7 @@ static const char* get_chip_family_name(int chip_family) /* Return various strings for glGetString(). */ -static const GLubyte *radeonGetString(GLcontext * ctx, GLenum name) +static const GLubyte *radeonGetString(struct gl_context * ctx, GLenum name) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); static char buffer[128]; @@ -180,14 +180,14 @@ static void radeonInitDriverFuncs(struct dd_function_table *functions) */ GLboolean radeonInitContext(radeonContextPtr radeon, struct dd_function_table* functions, - const __GLcontextModes * glVisual, + const struct gl_config * glVisual, __DRIcontext * driContextPriv, void *sharedContextPrivate) { __DRIscreen *sPriv = driContextPriv->driScreenPriv; radeonScreenPtr screen = (radeonScreenPtr) (sPriv->private); - GLcontext* ctx; - GLcontext* shareCtx; + struct gl_context* ctx; + struct gl_context* shareCtx; int fthrottle_mode; /* Fill in additional standard functions. */ @@ -521,6 +521,7 @@ void radeon_prepare_render(radeonContextPtr radeon) __DRIcontext *driContext = radeon->dri.context; __DRIdrawable *drawable; __DRIscreen *screen; + struct radeon_framebuffer *draw; screen = driContext->driScreenPriv; if (!screen->dri2.loader) @@ -531,9 +532,10 @@ void radeon_prepare_render(radeonContextPtr radeon) if (drawable->lastStamp != drawable->dri2.stamp) radeon_update_renderbuffers(driContext, drawable, GL_FALSE); - /* Intel driver does the equivalent of this, no clue if it is needed: - * radeon_draw_buffer(radeon->glCtx, &(drawable->driverPrivate)->base); - */ + /* Intel driver does the equivalent of this, no clue if it is needed:*/ + draw = drawable->driverPrivate; + radeon_draw_buffer(radeon->glCtx, &draw->base); + driContext->dri2.draw_stamp = drawable->dri2.stamp; } diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.h b/src/mesa/drivers/dri/radeon/radeon_common_context.h index 024e31f8ec..c62913afd0 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common_context.h +++ b/src/mesa/drivers/dri/radeon/radeon_common_context.h @@ -159,8 +159,8 @@ struct radeon_state_atom { GLuint *cmd; /* one or more cmd's */ GLuint *lastcmd; /* one or more cmd's */ GLboolean dirty; /* dirty-mark in emit_state_list */ - int (*check) (GLcontext *, struct radeon_state_atom *atom); /* is this state active? */ - void (*emit) (GLcontext *, struct radeon_state_atom *atom); + int (*check) (struct gl_context *, struct radeon_state_atom *atom); /* is this state active? */ + void (*emit) (struct gl_context *, struct radeon_state_atom *atom); }; struct radeon_hw_state { @@ -316,7 +316,7 @@ struct radeon_dma { * flush must be called before non-active vertex allocations can be * performed. */ - void (*flush) (GLcontext *); + void (*flush) (struct gl_context *); }; /* radeon_swtcl.c @@ -432,7 +432,7 @@ struct radeon_cmdbuf { }; struct radeon_context { - GLcontext *glCtx; + struct gl_context *glCtx; radeonScreenPtr radeonScreen; /* Screen private DRI data */ /* Texture object bookkeeping @@ -518,17 +518,17 @@ struct radeon_context { struct { void (*get_lock)(radeonContextPtr radeon); - void (*update_viewport_offset)(GLcontext *ctx); + void (*update_viewport_offset)(struct gl_context *ctx); void (*emit_cs_header)(struct radeon_cs *cs, radeonContextPtr rmesa); - void (*swtcl_flush)(GLcontext *ctx, uint32_t offset); + void (*swtcl_flush)(struct gl_context *ctx, uint32_t offset); void (*pre_emit_atoms)(radeonContextPtr rmesa); void (*pre_emit_state)(radeonContextPtr rmesa); - void (*fallback)(GLcontext *ctx, GLuint bit, GLboolean mode); - void (*free_context)(GLcontext *ctx); + void (*fallback)(struct gl_context *ctx, GLuint bit, GLboolean mode); + void (*free_context)(struct gl_context *ctx); void (*emit_query_finish)(radeonContextPtr radeon); - void (*update_scissor)(GLcontext *ctx); + void (*update_scissor)(struct gl_context *ctx); unsigned (*check_blit)(gl_format mesa_format); - unsigned (*blit)(GLcontext *ctx, + unsigned (*blit)(struct gl_context *ctx, struct radeon_bo *src_bo, intptr_t src_offset, gl_format src_mesaformat, @@ -611,7 +611,7 @@ static INLINE uint32_t radeonPackFloat24(float f) GLboolean radeonInitContext(radeonContextPtr radeon, struct dd_function_table* functions, - const __GLcontextModes * glVisual, + const struct gl_config * glVisual, __DRIcontext * driContextPriv, void *sharedContextPrivate); diff --git a/src/mesa/drivers/dri/radeon/radeon_context.c b/src/mesa/drivers/dri/radeon/radeon_context.c index 0b92c51466..cc9590213c 100644 --- a/src/mesa/drivers/dri/radeon/radeon_context.c +++ b/src/mesa/drivers/dri/radeon/radeon_context.c @@ -167,7 +167,7 @@ static void r100_vtbl_pre_emit_state(radeonContextPtr radeon) radeon->hw.is_dirty = 1; } -static void r100_vtbl_free_context(GLcontext *ctx) +static void r100_vtbl_free_context(struct gl_context *ctx) { r100ContextPtr rmesa = R100_CONTEXT(ctx); _mesa_vector4f_free( &rmesa->tcl.ObjClean ); @@ -206,7 +206,7 @@ static void r100_init_vtbl(radeonContextPtr radeon) */ GLboolean r100CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate) { @@ -214,7 +214,7 @@ r100CreateContext( gl_api api, radeonScreenPtr screen = (radeonScreenPtr)(sPriv->private); struct dd_function_table functions; r100ContextPtr rmesa; - GLcontext *ctx; + struct gl_context *ctx; int i; int tcl_mode, fthrottle_mode; diff --git a/src/mesa/drivers/dri/radeon/radeon_context.h b/src/mesa/drivers/dri/radeon/radeon_context.h index c4bfbfdaeb..de71aa2c6d 100644 --- a/src/mesa/drivers/dri/radeon/radeon_context.h +++ b/src/mesa/drivers/dri/radeon/radeon_context.h @@ -451,7 +451,7 @@ struct r100_context { #define RADEON_OLD_PACKETS 1 extern GLboolean r100CreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate); diff --git a/src/mesa/drivers/dri/radeon/radeon_dma.c b/src/mesa/drivers/dri/radeon/radeon_dma.c index 31a45169da..03d4e9656d 100644 --- a/src/mesa/drivers/dri/radeon/radeon_dma.c +++ b/src/mesa/drivers/dri/radeon/radeon_dma.c @@ -133,7 +133,7 @@ void radeonEmitVec16(uint32_t *out, const GLvoid * data, int stride, int count) } } -void rcommon_emit_vector(GLcontext * ctx, struct radeon_aos *aos, +void rcommon_emit_vector(struct gl_context * ctx, struct radeon_aos *aos, const GLvoid * data, int size, int stride, int count) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); @@ -389,7 +389,7 @@ void radeonReleaseDmaRegions(radeonContextPtr rmesa) /* Flush vertices in the current dma region. */ -void rcommon_flush_last_swtcl_prim( GLcontext *ctx ) +void rcommon_flush_last_swtcl_prim( struct gl_context *ctx ) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); struct radeon_dma *dma = &rmesa->dma; @@ -462,7 +462,7 @@ rcommonAllocDmaLowVerts( radeonContextPtr rmesa, int nverts, int vsize ) return head; } -void radeonReleaseArrays( GLcontext *ctx, GLuint newinputs ) +void radeonReleaseArrays( struct gl_context *ctx, GLuint newinputs ) { radeonContextPtr radeon = RADEON_CONTEXT( ctx ); int i; diff --git a/src/mesa/drivers/dri/radeon/radeon_dma.h b/src/mesa/drivers/dri/radeon/radeon_dma.h index 74e653fd18..ad6a3b8baa 100644 --- a/src/mesa/drivers/dri/radeon/radeon_dma.h +++ b/src/mesa/drivers/dri/radeon/radeon_dma.h @@ -38,7 +38,7 @@ void radeonEmitVec8(uint32_t *out, const GLvoid * data, int stride, int count); void radeonEmitVec12(uint32_t *out, const GLvoid * data, int stride, int count); void radeonEmitVec16(uint32_t *out, const GLvoid * data, int stride, int count); -void rcommon_emit_vector(GLcontext * ctx, struct radeon_aos *aos, +void rcommon_emit_vector(struct gl_context * ctx, struct radeon_aos *aos, const GLvoid * data, int size, int stride, int count); void radeonReturnDmaRegion(radeonContextPtr rmesa, int return_bytes); @@ -50,9 +50,9 @@ void radeonAllocDmaRegion(radeonContextPtr rmesa, int bytes, int alignment); void radeonReleaseDmaRegions(radeonContextPtr rmesa); -void rcommon_flush_last_swtcl_prim(GLcontext *ctx); +void rcommon_flush_last_swtcl_prim(struct gl_context *ctx); void *rcommonAllocDmaLowVerts(radeonContextPtr rmesa, int nverts, int vsize); void radeonFreeDmaRegions(radeonContextPtr rmesa); -void radeonReleaseArrays( GLcontext *ctx, GLuint newinputs ); +void radeonReleaseArrays( struct gl_context *ctx, GLuint newinputs ); #endif diff --git a/src/mesa/drivers/dri/radeon/radeon_fbo.c b/src/mesa/drivers/dri/radeon/radeon_fbo.c index 0597d4250d..2a6fbaeaf0 100644 --- a/src/mesa/drivers/dri/radeon/radeon_fbo.c +++ b/src/mesa/drivers/dri/radeon/radeon_fbo.c @@ -47,7 +47,7 @@ } while(0) static struct gl_framebuffer * -radeon_new_framebuffer(GLcontext *ctx, GLuint name) +radeon_new_framebuffer(struct gl_context *ctx, GLuint name) { return _mesa_new_framebuffer(ctx, name); } @@ -70,7 +70,7 @@ radeon_delete_renderbuffer(struct gl_renderbuffer *rb) } static void * -radeon_get_pointer(GLcontext *ctx, struct gl_renderbuffer *rb, +radeon_get_pointer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { radeon_print(RADEON_TEXTURE, RADEON_TRACE, @@ -85,7 +85,7 @@ radeon_get_pointer(GLcontext *ctx, struct gl_renderbuffer *rb, * storage for a user-created renderbuffer. */ static GLboolean -radeon_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb, +radeon_alloc_renderbuffer_storage(struct gl_context * ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { @@ -206,7 +206,7 @@ radeon_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb, * Not used for user-created renderbuffers! */ static GLboolean -radeon_alloc_window_storage(GLcontext * ctx, struct gl_renderbuffer *rb, +radeon_alloc_window_storage(struct gl_context * ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { ASSERT(rb->Name == 0); @@ -223,7 +223,7 @@ radeon_alloc_window_storage(GLcontext * ctx, struct gl_renderbuffer *rb, static void -radeon_resize_buffers(GLcontext *ctx, struct gl_framebuffer *fb, +radeon_resize_buffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height) { struct radeon_framebuffer *radeon_fb = (struct radeon_framebuffer*)fb; @@ -255,7 +255,7 @@ radeon_resize_buffers(GLcontext *ctx, struct gl_framebuffer *fb, /** Dummy function for gl_renderbuffer::AllocStorage() */ static GLboolean -radeon_nop_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb, +radeon_nop_alloc_storage(struct gl_context * ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { _mesa_problem(ctx, "radeon_op_alloc_storage should never be called."); @@ -352,7 +352,7 @@ radeon_create_renderbuffer(gl_format format, __DRIdrawable *driDrawPriv) } static struct gl_renderbuffer * -radeon_new_renderbuffer(GLcontext * ctx, GLuint name) +radeon_new_renderbuffer(struct gl_context * ctx, GLuint name) { struct radeon_renderbuffer *rrb; @@ -376,7 +376,7 @@ radeon_new_renderbuffer(GLcontext * ctx, GLuint name) } static void -radeon_bind_framebuffer(GLcontext * ctx, GLenum target, +radeon_bind_framebuffer(struct gl_context * ctx, GLenum target, struct gl_framebuffer *fb, struct gl_framebuffer *fbread) { radeon_print(RADEON_TEXTURE, RADEON_TRACE, @@ -393,7 +393,7 @@ radeon_bind_framebuffer(GLcontext * ctx, GLenum target, } static void -radeon_framebuffer_renderbuffer(GLcontext * ctx, +radeon_framebuffer_renderbuffer(struct gl_context * ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb) { @@ -410,7 +410,7 @@ radeon_framebuffer_renderbuffer(GLcontext * ctx, } static GLboolean -radeon_update_wrapper(GLcontext *ctx, struct radeon_renderbuffer *rrb, +radeon_update_wrapper(struct gl_context *ctx, struct radeon_renderbuffer *rrb, struct gl_texture_image *texImage) { radeon_print(RADEON_TEXTURE, RADEON_TRACE, @@ -459,7 +459,7 @@ radeon_update_wrapper(GLcontext *ctx, struct radeon_renderbuffer *rrb, static struct radeon_renderbuffer * -radeon_wrap_texture(GLcontext * ctx, struct gl_texture_image *texImage) +radeon_wrap_texture(struct gl_context * ctx, struct gl_texture_image *texImage) { const GLuint name = ~0; /* not significant, but distinct for debugging */ struct radeon_renderbuffer *rrb; @@ -488,7 +488,7 @@ radeon_wrap_texture(GLcontext * ctx, struct gl_texture_image *texImage) } static void -radeon_render_texture(GLcontext * ctx, +radeon_render_texture(struct gl_context * ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att) { @@ -568,13 +568,13 @@ radeon_render_texture(GLcontext * ctx, } static void -radeon_finish_render_texture(GLcontext * ctx, +radeon_finish_render_texture(struct gl_context * ctx, struct gl_renderbuffer_attachment *att) { } static void -radeon_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) +radeon_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); gl_format mesa_format; diff --git a/src/mesa/drivers/dri/radeon/radeon_ioctl.c b/src/mesa/drivers/dri/radeon/radeon_ioctl.c index 5ac526c6de..a91d872779 100644 --- a/src/mesa/drivers/dri/radeon/radeon_ioctl.c +++ b/src/mesa/drivers/dri/radeon/radeon_ioctl.c @@ -44,7 +44,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/glheader.h" #include "main/imports.h" #include "main/simple_list.h" -#include "swrast/swrast.h" #include "radeon_context.h" #include "radeon_common.h" @@ -179,7 +178,7 @@ extern void radeonEmitVbufPrim( r100ContextPtr rmesa, #endif } -void radeonFlushElts( GLcontext *ctx ) +void radeonFlushElts( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); BATCH_LOCALS(&rmesa->radeon); @@ -433,7 +432,7 @@ void radeonEmitAOS( r100ContextPtr rmesa, */ #define RADEON_MAX_CLEARS 256 -static void radeonKernelClear(GLcontext *ctx, GLuint flags) +static void radeonKernelClear(struct gl_context *ctx, GLuint flags) { r100ContextPtr rmesa = R100_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -556,7 +555,7 @@ static void radeonKernelClear(GLcontext *ctx, GLuint flags) UNLOCK_HARDWARE( &rmesa->radeon ); } -static void radeonClear( GLcontext *ctx, GLbitfield mask ) +static void radeonClear( struct gl_context *ctx, GLbitfield mask ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -630,7 +629,7 @@ static void radeonClear( GLcontext *ctx, GLbitfield mask ) } } -void radeonInitIoctlFuncs( GLcontext *ctx ) +void radeonInitIoctlFuncs( struct gl_context *ctx ) { ctx->Driver.Clear = radeonClear; ctx->Driver.Finish = radeonFinish; diff --git a/src/mesa/drivers/dri/radeon/radeon_ioctl.h b/src/mesa/drivers/dri/radeon/radeon_ioctl.h index deb53ae313..790205719b 100644 --- a/src/mesa/drivers/dri/radeon/radeon_ioctl.h +++ b/src/mesa/drivers/dri/radeon/radeon_ioctl.h @@ -50,7 +50,7 @@ extern void radeonEmitVbufPrim( r100ContextPtr rmesa, GLuint primitive, GLuint vertex_nr ); -extern void radeonFlushElts( GLcontext *ctx ); +extern void radeonFlushElts( struct gl_context *ctx ); extern GLushort *radeonAllocEltsOpenEnded( r100ContextPtr rmesa, @@ -77,9 +77,9 @@ extern void radeonEmitWait( r100ContextPtr rmesa, GLuint flags ); extern void radeonFlushCmdBuf( r100ContextPtr rmesa, const char * ); -extern void radeonFlush( GLcontext *ctx ); -extern void radeonFinish( GLcontext *ctx ); -extern void radeonInitIoctlFuncs( GLcontext *ctx ); +extern void radeonFlush( struct gl_context *ctx ); +extern void radeonFinish( struct gl_context *ctx ); +extern void radeonInitIoctlFuncs( struct gl_context *ctx ); extern void radeonGetAllParams( r100ContextPtr rmesa ); extern void radeonSetUpAtomList( r100ContextPtr rmesa ); diff --git a/src/mesa/drivers/dri/radeon/radeon_maos.h b/src/mesa/drivers/dri/radeon/radeon_maos.h index b88eb198d5..0feea35815 100644 --- a/src/mesa/drivers/dri/radeon/radeon_maos.h +++ b/src/mesa/drivers/dri/radeon/radeon_maos.h @@ -37,6 +37,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_context.h" -extern void radeonEmitArrays( GLcontext *ctx, GLuint inputs ); +extern void radeonEmitArrays( struct gl_context *ctx, GLuint inputs ); #endif diff --git a/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c b/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c index d810e6080e..94fe7e4b9f 100644 --- a/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c +++ b/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c @@ -48,7 +48,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_maos.h" #include "radeon_tcl.h" -static void emit_vecfog(GLcontext *ctx, struct radeon_aos *aos, +static void emit_vecfog(struct gl_context *ctx, struct radeon_aos *aos, GLvoid *data, int stride, int count) { int i; @@ -121,7 +121,7 @@ static void emit_stq_vec(uint32_t *out, GLvoid *data, int stride, int count) -static void emit_tex_vector(GLcontext *ctx, struct radeon_aos *aos, +static void emit_tex_vector(struct gl_context *ctx, struct radeon_aos *aos, GLvoid *data, int size, int stride, int count) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); @@ -182,7 +182,7 @@ static void emit_tex_vector(GLcontext *ctx, struct radeon_aos *aos, /* Emit any changed arrays to new GART memory, re-emit a packet to * update the arrays. */ -void radeonEmitArrays( GLcontext *ctx, GLuint inputs ) +void radeonEmitArrays( struct gl_context *ctx, GLuint inputs ) { r100ContextPtr rmesa = R100_CONTEXT( ctx ); struct vertex_buffer *VB = &TNL_CONTEXT( ctx )->vb; diff --git a/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h b/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h index d764ccb982..b73fc8abfe 100644 --- a/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h +++ b/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h @@ -34,7 +34,7 @@ #define TCL_DEBUG 0 #endif -static void TAG(emit)( GLcontext *ctx, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest ) { diff --git a/src/mesa/drivers/dri/radeon/radeon_maos_verts.c b/src/mesa/drivers/dri/radeon/radeon_maos_verts.c index 98f96ff2a7..5dac2a362b 100644 --- a/src/mesa/drivers/dri/radeon/radeon_maos_verts.c +++ b/src/mesa/drivers/dri/radeon/radeon_maos_verts.c @@ -40,7 +40,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "math/m_translate.h" #include "tnl/tnl.h" #include "tnl/t_pipeline.h" -#include "math/m_translate.h" #include "radeon_context.h" #include "radeon_state.h" #include "radeon_ioctl.h" @@ -55,7 +54,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. union emit_union { float f; GLuint ui; radeon_color_t rgba; }; static struct { - void (*emit)( GLcontext *, GLuint, GLuint, void * ); + void (*emit)( struct gl_context *, GLuint, GLuint, void * ); GLuint vertex_size; GLuint vertex_format; } setup_tab[RADEON_TCL_MAX_SETUP]; @@ -308,7 +307,7 @@ static void init_tcl_verts( void ) } -void radeonEmitArrays( GLcontext *ctx, GLuint inputs ) +void radeonEmitArrays( struct gl_context *ctx, GLuint inputs ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; diff --git a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c index ddfde3edaf..1fadad2756 100644 --- a/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c +++ b/src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c @@ -578,7 +578,7 @@ static radeon_mipmap_tree * get_biggest_matching_miptree(radeonTexObj *texObj, * If individual images are stored in different mipmap trees * use the mipmap tree that has the most of the correct data. */ -int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *texObj) +int radeon_validate_texture_miptree(struct gl_context * ctx, struct gl_texture_object *texObj) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); radeonTexObj *t = radeon_tex_obj(texObj); diff --git a/src/mesa/drivers/dri/radeon/radeon_pixel_read.c b/src/mesa/drivers/dri/radeon/radeon_pixel_read.c index 216eb932db..e44d6f2f8f 100644 --- a/src/mesa/drivers/dri/radeon/radeon_pixel_read.c +++ b/src/mesa/drivers/dri/radeon/radeon_pixel_read.c @@ -86,7 +86,7 @@ static gl_format gl_format_and_type_to_mesa_format(GLenum format, GLenum type) } static GLboolean -do_blit_readpixels(GLcontext * ctx, +do_blit_readpixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, GLvoid * pixels) @@ -194,7 +194,7 @@ do_blit_readpixels(GLcontext * ctx, } void -radeonReadPixels(GLcontext * ctx, +radeonReadPixels(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, GLvoid * pixels) diff --git a/src/mesa/drivers/dri/radeon/radeon_queryobj.c b/src/mesa/drivers/dri/radeon/radeon_queryobj.c index 5b7178bcca..a45ca7cad0 100644 --- a/src/mesa/drivers/dri/radeon/radeon_queryobj.c +++ b/src/mesa/drivers/dri/radeon/radeon_queryobj.c @@ -33,7 +33,7 @@ #include <inttypes.h> -static void radeonQueryGetResult(GLcontext *ctx, struct gl_query_object *q) +static void radeonQueryGetResult(struct gl_context *ctx, struct gl_query_object *q) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = (struct radeon_query_object *)q; @@ -79,7 +79,7 @@ static void radeonQueryGetResult(GLcontext *ctx, struct gl_query_object *q) radeon_bo_unmap(query->bo); } -static struct gl_query_object * radeonNewQueryObject(GLcontext *ctx, GLuint id) +static struct gl_query_object * radeonNewQueryObject(struct gl_context *ctx, GLuint id) { struct radeon_query_object *query; @@ -95,7 +95,7 @@ static struct gl_query_object * radeonNewQueryObject(GLcontext *ctx, GLuint id) return &query->Base; } -static void radeonDeleteQuery(GLcontext *ctx, struct gl_query_object *q) +static void radeonDeleteQuery(struct gl_context *ctx, struct gl_query_object *q) { struct radeon_query_object *query = (struct radeon_query_object *)q; @@ -108,7 +108,7 @@ static void radeonDeleteQuery(GLcontext *ctx, struct gl_query_object *q) free(query); } -static void radeonWaitQuery(GLcontext *ctx, struct gl_query_object *q) +static void radeonWaitQuery(struct gl_context *ctx, struct gl_query_object *q) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = (struct radeon_query_object *)q; @@ -125,7 +125,7 @@ static void radeonWaitQuery(GLcontext *ctx, struct gl_query_object *q) } -static void radeonBeginQuery(GLcontext *ctx, struct gl_query_object *q) +static void radeonBeginQuery(struct gl_context *ctx, struct gl_query_object *q) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = (struct radeon_query_object *)q; @@ -148,7 +148,7 @@ static void radeonBeginQuery(GLcontext *ctx, struct gl_query_object *q) radeon->hw.is_dirty = GL_TRUE; } -void radeonEmitQueryEnd(GLcontext *ctx) +void radeonEmitQueryEnd(struct gl_context *ctx) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = radeon->query.current; @@ -168,7 +168,7 @@ void radeonEmitQueryEnd(GLcontext *ctx) radeon->vtbl.emit_query_finish(radeon); } -static void radeonEndQuery(GLcontext *ctx, struct gl_query_object *q) +static void radeonEndQuery(struct gl_context *ctx, struct gl_query_object *q) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); @@ -181,7 +181,7 @@ static void radeonEndQuery(GLcontext *ctx, struct gl_query_object *q) radeon->query.current = NULL; } -static void radeonCheckQuery(GLcontext *ctx, struct gl_query_object *q) +static void radeonCheckQuery(struct gl_context *ctx, struct gl_query_object *q) { radeon_print(RADEON_STATE, RADEON_TRACE, "%s: query id %d\n", __FUNCTION__, q->Id); @@ -219,7 +219,7 @@ void radeonInitQueryObjFunctions(struct dd_function_table *functions) functions->WaitQuery = radeonWaitQuery; } -int radeon_check_query_active(GLcontext *ctx, struct radeon_state_atom *atom) +int radeon_check_query_active(struct gl_context *ctx, struct radeon_state_atom *atom) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); struct radeon_query_object *query = radeon->query.current; @@ -229,7 +229,7 @@ int radeon_check_query_active(GLcontext *ctx, struct radeon_state_atom *atom) return atom->cmd_size; } -void radeon_emit_queryobj(GLcontext *ctx, struct radeon_state_atom *atom) +void radeon_emit_queryobj(struct gl_context *ctx, struct radeon_state_atom *atom) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); BATCH_LOCALS(radeon); diff --git a/src/mesa/drivers/dri/radeon/radeon_queryobj.h b/src/mesa/drivers/dri/radeon/radeon_queryobj.h index 19374dc76b..e506393482 100644 --- a/src/mesa/drivers/dri/radeon/radeon_queryobj.h +++ b/src/mesa/drivers/dri/radeon/radeon_queryobj.h @@ -29,15 +29,15 @@ #include "main/simple_list.h" #include "radeon_common_context.h" -extern void radeonEmitQueryBegin(GLcontext *ctx); -extern void radeonEmitQueryEnd(GLcontext *ctx); +extern void radeonEmitQueryBegin(struct gl_context *ctx); +extern void radeonEmitQueryEnd(struct gl_context *ctx); extern void radeonInitQueryObjFunctions(struct dd_function_table *functions); #define RADEON_QUERY_PAGE_SIZE 4096 -int radeon_check_query_active(GLcontext *ctx, struct radeon_state_atom *atom); -void radeon_emit_queryobj(GLcontext *ctx, struct radeon_state_atom *atom); +int radeon_check_query_active(struct gl_context *ctx, struct radeon_state_atom *atom); +void radeon_emit_queryobj(struct gl_context *ctx, struct radeon_state_atom *atom); static inline void radeon_init_query_stateobj(radeonContextPtr radeon, int SZ) { diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c index 2ea77e56c7..43ebc81093 100644 --- a/src/mesa/drivers/dri/radeon/radeon_screen.c +++ b/src/mesa/drivers/dri/radeon/radeon_screen.c @@ -258,7 +258,7 @@ radeonFillInModes( __DRIscreen *psp, unsigned stencil_bits, GLboolean have_back_buffer ) { __DRIconfig **configs; - __GLcontextModes *m; + struct gl_config *m; unsigned depth_buffer_factor; unsigned back_buffer_factor; int i; @@ -1583,7 +1583,7 @@ radeonInitDriver( __DRIscreen *sPriv ) static GLboolean radeonCreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap ) { radeonScreenPtr screen = (radeonScreenPtr) driScrnPriv->private; @@ -1691,7 +1691,7 @@ radeonDestroyBuffer(__DRIdrawable *driDrawPriv) if (!rfb) return; radeon_cleanup_renderbuffers(rfb); - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } @@ -1700,7 +1700,7 @@ radeonDestroyBuffer(__DRIdrawable *driDrawPriv) * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig ** radeonInitScreen(__DRIscreen *psp) @@ -1750,7 +1750,7 @@ radeonInitScreen(__DRIscreen *psp) * This is the driver specific part of the createNewScreen entry point. * Called when using DRI2. * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig **radeonInitScreen2(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/radeon/radeon_span.c b/src/mesa/drivers/dri/radeon/radeon_span.c index 9dfe2dd243..1c5326fe9d 100644 --- a/src/mesa/drivers/dri/radeon/radeon_span.c +++ b/src/mesa/drivers/dri/radeon/radeon_span.c @@ -1015,7 +1015,7 @@ static void map_unmap_rb(struct gl_renderbuffer *rb, int flag) } static void -radeon_map_unmap_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, +radeon_map_unmap_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLboolean map) { GLuint i, j; @@ -1060,7 +1060,7 @@ radeon_map_unmap_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, radeon_check_front_buffer_rendering(ctx); } -static void radeonSpanRenderStart(GLcontext * ctx) +static void radeonSpanRenderStart(struct gl_context * ctx) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); int i; @@ -1087,7 +1087,7 @@ static void radeonSpanRenderStart(GLcontext * ctx) radeon_map_unmap_framebuffer(ctx, ctx->ReadBuffer, GL_TRUE); } -static void radeonSpanRenderFinish(GLcontext * ctx) +static void radeonSpanRenderFinish(struct gl_context * ctx) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); int i; @@ -1108,7 +1108,7 @@ static void radeonSpanRenderFinish(GLcontext * ctx) } } -void radeonInitSpanFuncs(GLcontext * ctx) +void radeonInitSpanFuncs(struct gl_context * ctx) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); diff --git a/src/mesa/drivers/dri/radeon/radeon_span.h b/src/mesa/drivers/dri/radeon/radeon_span.h index ea6a2e7fb4..64517b5923 100644 --- a/src/mesa/drivers/dri/radeon/radeon_span.h +++ b/src/mesa/drivers/dri/radeon/radeon_span.h @@ -42,6 +42,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_SPAN_H__ #define __RADEON_SPAN_H__ -extern void radeonInitSpanFuncs(GLcontext * ctx); +extern void radeonInitSpanFuncs(struct gl_context * ctx); #endif diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c index 539b067742..cae12f192c 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.c +++ b/src/mesa/drivers/dri/radeon/radeon_state.c @@ -55,13 +55,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_tex.h" #include "radeon_swtcl.h" -static void radeonUpdateSpecular( GLcontext *ctx ); +static void radeonUpdateSpecular( struct gl_context *ctx ); /* ============================================================= * Alpha blending */ -static void radeonAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) +static void radeonAlphaFunc( struct gl_context *ctx, GLenum func, GLfloat ref ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); int pp_misc = rmesa->hw.ctx.cmd[CTX_PP_MISC]; @@ -104,7 +104,7 @@ static void radeonAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) rmesa->hw.ctx.cmd[CTX_PP_MISC] = pp_misc; } -static void radeonBlendEquationSeparate( GLcontext *ctx, +static void radeonBlendEquationSeparate( struct gl_context *ctx, GLenum modeRGB, GLenum modeA ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -144,7 +144,7 @@ static void radeonBlendEquationSeparate( GLcontext *ctx, } } -static void radeonBlendFuncSeparate( GLcontext *ctx, +static void radeonBlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -256,7 +256,7 @@ static void radeonBlendFuncSeparate( GLcontext *ctx, * Depth testing */ -static void radeonDepthFunc( GLcontext *ctx, GLenum func ) +static void radeonDepthFunc( struct gl_context *ctx, GLenum func ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -292,7 +292,7 @@ static void radeonDepthFunc( GLcontext *ctx, GLenum func ) } -static void radeonDepthMask( GLcontext *ctx, GLboolean flag ) +static void radeonDepthMask( struct gl_context *ctx, GLboolean flag ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); RADEON_STATECHANGE( rmesa, ctx ); @@ -304,7 +304,7 @@ static void radeonDepthMask( GLcontext *ctx, GLboolean flag ) } } -static void radeonClearDepth( GLcontext *ctx, GLclampd d ) +static void radeonClearDepth( struct gl_context *ctx, GLclampd d ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint format = (rmesa->hw.ctx.cmd[CTX_RB3D_ZSTENCILCNTL] & @@ -326,7 +326,7 @@ static void radeonClearDepth( GLcontext *ctx, GLclampd d ) */ -static void radeonFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) +static void radeonFogfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); union { int i; float f; } c, d; @@ -411,7 +411,7 @@ static void radeonFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) * Culling */ -static void radeonCullFace( GLcontext *ctx, GLenum unused ) +static void radeonCullFace( struct gl_context *ctx, GLenum unused ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint s = rmesa->hw.set.cmd[SET_SE_CNTL]; @@ -448,7 +448,7 @@ static void radeonCullFace( GLcontext *ctx, GLenum unused ) } } -static void radeonFrontFace( GLcontext *ctx, GLenum mode ) +static void radeonFrontFace( struct gl_context *ctx, GLenum mode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -477,7 +477,7 @@ static void radeonFrontFace( GLcontext *ctx, GLenum mode ) /* ============================================================= * Line state */ -static void radeonLineWidth( GLcontext *ctx, GLfloat widthf ) +static void radeonLineWidth( struct gl_context *ctx, GLfloat widthf ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -494,7 +494,7 @@ static void radeonLineWidth( GLcontext *ctx, GLfloat widthf ) } } -static void radeonLineStipple( GLcontext *ctx, GLint factor, GLushort pattern ) +static void radeonLineStipple( struct gl_context *ctx, GLint factor, GLushort pattern ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -507,7 +507,7 @@ static void radeonLineStipple( GLcontext *ctx, GLint factor, GLushort pattern ) /* ============================================================= * Masks */ -static void radeonColorMask( GLcontext *ctx, +static void radeonColorMask( struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -536,7 +536,7 @@ static void radeonColorMask( GLcontext *ctx, * Polygon state */ -static void radeonPolygonOffset( GLcontext *ctx, +static void radeonPolygonOffset( struct gl_context *ctx, GLfloat factor, GLfloat units ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -549,7 +549,7 @@ static void radeonPolygonOffset( GLcontext *ctx, rmesa->hw.zbs.cmd[ZBS_SE_ZBIAS_CONSTANT] = constant.ui32; } -static void radeonPolygonStipplePreKMS( GLcontext *ctx, const GLubyte *mask ) +static void radeonPolygonStipplePreKMS( struct gl_context *ctx, const GLubyte *mask ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint i; @@ -574,7 +574,7 @@ static void radeonPolygonStipplePreKMS( GLcontext *ctx, const GLubyte *mask ) UNLOCK_HARDWARE( &rmesa->radeon ); } -static void radeonPolygonMode( GLcontext *ctx, GLenum face, GLenum mode ) +static void radeonPolygonMode( struct gl_context *ctx, GLenum face, GLenum mode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLboolean flag = (ctx->_TriangleCaps & DD_TRI_UNFILLED) != 0; @@ -601,7 +601,7 @@ static void radeonPolygonMode( GLcontext *ctx, GLenum face, GLenum mode ) /* Examine lighting and texture state to determine if separate specular * should be enabled. */ -static void radeonUpdateSpecular( GLcontext *ctx ) +static void radeonUpdateSpecular( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); uint32_t p = rmesa->hw.ctx.cmd[CTX_PP_CNTL]; @@ -689,7 +689,7 @@ static void radeonUpdateSpecular( GLcontext *ctx ) /* Update on colormaterial, material emmissive/ambient, * lightmodel.globalambient */ -static void update_global_ambient( GLcontext *ctx ) +static void update_global_ambient( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); float *fcmd = (float *)RADEON_DB_STATE( glt ); @@ -719,7 +719,7 @@ static void update_global_ambient( GLcontext *ctx ) * - light[p].colors * - light[p].enabled */ -static void update_light_colors( GLcontext *ctx, GLuint p ) +static void update_light_colors( struct gl_context *ctx, GLuint p ) { struct gl_light *l = &ctx->Light.Light[p]; @@ -739,7 +739,7 @@ static void update_light_colors( GLcontext *ctx, GLuint p ) /* Also fallback for asym colormaterial mode in twoside lighting... */ -static void check_twoside_fallback( GLcontext *ctx ) +static void check_twoside_fallback( struct gl_context *ctx ) { GLboolean fallback = GL_FALSE; GLint i; @@ -764,7 +764,7 @@ static void check_twoside_fallback( GLcontext *ctx ) } -static void radeonColorMaterial( GLcontext *ctx, GLenum face, GLenum mode ) +static void radeonColorMaterial( struct gl_context *ctx, GLenum face, GLenum mode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint light_model_ctl1 = rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL]; @@ -828,7 +828,7 @@ static void radeonColorMaterial( GLcontext *ctx, GLenum face, GLenum mode ) } } -void radeonUpdateMaterial( GLcontext *ctx ) +void radeonUpdateMaterial( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLfloat (*mat)[4] = ctx->Light.Material.Attrib; @@ -893,7 +893,7 @@ void radeonUpdateMaterial( GLcontext *ctx ) * lighting space (model or eye), hence dependencies on _NEW_MODELVIEW * and _MESA_NEW_NEED_EYE_COORDS. */ -static void update_light( GLcontext *ctx ) +static void update_light( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -957,7 +957,7 @@ static void update_light( GLcontext *ctx ) } } -static void radeonLightfv( GLcontext *ctx, GLenum light, +static void radeonLightfv( struct gl_context *ctx, GLenum light, GLenum pname, const GLfloat *params ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1078,7 +1078,7 @@ static void radeonLightfv( GLcontext *ctx, GLenum light, -static void radeonLightModelfv( GLcontext *ctx, GLenum pname, +static void radeonLightModelfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1120,7 +1120,7 @@ static void radeonLightModelfv( GLcontext *ctx, GLenum pname, } } -static void radeonShadeModel( GLcontext *ctx, GLenum mode ) +static void radeonShadeModel( struct gl_context *ctx, GLenum mode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint s = rmesa->hw.set.cmd[SET_SE_CNTL]; @@ -1158,7 +1158,7 @@ static void radeonShadeModel( GLcontext *ctx, GLenum mode ) * User clip planes */ -static void radeonClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) +static void radeonClipPlane( struct gl_context *ctx, GLenum plane, const GLfloat *eq ) { GLint p = (GLint) plane - (GLint) GL_CLIP_PLANE0; r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1171,7 +1171,7 @@ static void radeonClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) rmesa->hw.ucp[p].cmd[UCP_W] = ip[3]; } -static void radeonUpdateClipPlanes( GLcontext *ctx ) +static void radeonUpdateClipPlanes( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint p; @@ -1195,7 +1195,7 @@ static void radeonUpdateClipPlanes( GLcontext *ctx ) */ static void -radeonStencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, +radeonStencilFuncSeparate( struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1240,7 +1240,7 @@ radeonStencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, } static void -radeonStencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) +radeonStencilMaskSeparate( struct gl_context *ctx, GLenum face, GLuint mask ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1250,7 +1250,7 @@ radeonStencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) ((ctx->Stencil.WriteMask[0] & 0xff) << RADEON_STENCIL_WRITEMASK_SHIFT); } -static void radeonStencilOpSeparate( GLcontext *ctx, GLenum face, GLenum fail, +static void radeonStencilOpSeparate( struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1370,7 +1370,7 @@ static void radeonStencilOpSeparate( GLcontext *ctx, GLenum face, GLenum fail, } } -static void radeonClearStencil( GLcontext *ctx, GLint s ) +static void radeonClearStencil( struct gl_context *ctx, GLint s ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1396,7 +1396,7 @@ static void radeonClearStencil( GLcontext *ctx, GLint s ) * Called when window size or position changes or viewport or depth range * state is changed. We update the hardware viewport state here. */ -void radeonUpdateWindow( GLcontext *ctx ) +void radeonUpdateWindow( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -1433,7 +1433,7 @@ void radeonUpdateWindow( GLcontext *ctx ) } -static void radeonViewport( GLcontext *ctx, GLint x, GLint y, +static void radeonViewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { /* Don't pipeline viewport changes, conflict with window offset @@ -1445,13 +1445,13 @@ static void radeonViewport( GLcontext *ctx, GLint x, GLint y, radeon_viewport(ctx, x, y, width, height); } -static void radeonDepthRange( GLcontext *ctx, GLclampd nearval, +static void radeonDepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { radeonUpdateWindow( ctx ); } -void radeonUpdateViewportOffset( GLcontext *ctx ) +void radeonUpdateViewportOffset( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); __DRIdrawable *dPriv = radeon_get_drawable(&rmesa->radeon); @@ -1507,7 +1507,7 @@ void radeonUpdateViewportOffset( GLcontext *ctx ) * Miscellaneous */ -static void radeonClearColor( GLcontext *ctx, const GLfloat color[4] ) +static void radeonClearColor( struct gl_context *ctx, const GLfloat color[4] ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLubyte c[4]; @@ -1526,7 +1526,7 @@ static void radeonClearColor( GLcontext *ctx, const GLfloat color[4] ) } -static void radeonRenderMode( GLcontext *ctx, GLenum mode ) +static void radeonRenderMode( struct gl_context *ctx, GLenum mode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); FALLBACK( rmesa, RADEON_FALLBACK_RENDER_MODE, (mode != GL_RENDER) ); @@ -1552,7 +1552,7 @@ static GLuint radeon_rop_tab[] = { RADEON_ROP_SET, }; -static void radeonLogicOpCode( GLcontext *ctx, GLenum opcode ) +static void radeonLogicOpCode( struct gl_context *ctx, GLenum opcode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint rop = (GLuint)opcode - GL_CLEAR; @@ -1567,7 +1567,7 @@ static void radeonLogicOpCode( GLcontext *ctx, GLenum opcode ) * State enable/disable */ -static void radeonEnable( GLcontext *ctx, GLenum cap, GLboolean state ) +static void radeonEnable( struct gl_context *ctx, GLenum cap, GLboolean state ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint p, flag; @@ -1860,7 +1860,7 @@ static void radeonEnable( GLcontext *ctx, GLenum cap, GLboolean state ) } -static void radeonLightingSpaceChange( GLcontext *ctx ) +static void radeonLightingSpaceChange( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLboolean tmp; @@ -1995,7 +1995,7 @@ static void upload_matrix_t( r100ContextPtr rmesa, GLfloat *src, int idx ) } -static void update_texturematrix( GLcontext *ctx ) +static void update_texturematrix( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT( ctx ); GLuint tpc = rmesa->hw.tcl.cmd[TCL_TEXTURE_PROC_CTL]; @@ -2061,7 +2061,7 @@ static void update_texturematrix( GLcontext *ctx ) } } -static GLboolean r100ValidateBuffers(GLcontext *ctx) +static GLboolean r100ValidateBuffers(struct gl_context *ctx) { r100ContextPtr rmesa = R100_CONTEXT(ctx); struct radeon_renderbuffer *rrb; @@ -2105,7 +2105,7 @@ static GLboolean r100ValidateBuffers(GLcontext *ctx) return GL_TRUE; } -GLboolean radeonValidateState( GLcontext *ctx ) +GLboolean radeonValidateState( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint new_state = rmesa->radeon.NewGLState; @@ -2163,7 +2163,7 @@ GLboolean radeonValidateState( GLcontext *ctx ) } -static void radeonInvalidateState( GLcontext *ctx, GLuint new_state ) +static void radeonInvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -2176,7 +2176,7 @@ static void radeonInvalidateState( GLcontext *ctx, GLuint new_state ) /* A hack. Need a faster way to find this out. */ -static GLboolean check_material( GLcontext *ctx ) +static GLboolean check_material( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLint i; @@ -2192,7 +2192,7 @@ static GLboolean check_material( GLcontext *ctx ) } -static void radeonWrapRunPipeline( GLcontext *ctx ) +static void radeonWrapRunPipeline( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLboolean has_material; @@ -2221,7 +2221,7 @@ static void radeonWrapRunPipeline( GLcontext *ctx ) } } -static void radeonPolygonStipple( GLcontext *ctx, const GLubyte *mask ) +static void radeonPolygonStipple( struct gl_context *ctx, const GLubyte *mask ) { r100ContextPtr r100 = R100_CONTEXT(ctx); GLint i; @@ -2242,7 +2242,7 @@ static void radeonPolygonStipple( GLcontext *ctx, const GLubyte *mask ) * Many of the ctx->Driver functions might have been initialized to * software defaults in the earlier _mesa_init_driver_functions() call. */ -void radeonInitStateFuncs( GLcontext *ctx , GLboolean dri2 ) +void radeonInitStateFuncs( struct gl_context *ctx , GLboolean dri2 ) { ctx->Driver.UpdateState = radeonInvalidateState; ctx->Driver.LightingSpaceChange = radeonLightingSpaceChange; diff --git a/src/mesa/drivers/dri/radeon/radeon_state.h b/src/mesa/drivers/dri/radeon/radeon_state.h index c780cff0cf..9a011e11b2 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.h +++ b/src/mesa/drivers/dri/radeon/radeon_state.h @@ -40,20 +40,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_context.h" extern void radeonInitState( r100ContextPtr rmesa ); -extern void radeonInitStateFuncs( GLcontext *ctx , GLboolean dri2); +extern void radeonInitStateFuncs( struct gl_context *ctx , GLboolean dri2); -extern void radeonUpdateMaterial( GLcontext *ctx ); +extern void radeonUpdateMaterial( struct gl_context *ctx ); -extern void radeonUpdateViewportOffset( GLcontext *ctx ); -extern void radeonUpdateWindow( GLcontext *ctx ); -extern void radeonUpdateDrawBuffer( GLcontext *ctx ); +extern void radeonUpdateViewportOffset( struct gl_context *ctx ); +extern void radeonUpdateWindow( struct gl_context *ctx ); +extern void radeonUpdateDrawBuffer( struct gl_context *ctx ); extern void radeonUploadTexMatrix( r100ContextPtr rmesa, int unit, GLboolean swapcols ); -extern GLboolean radeonValidateState( GLcontext *ctx ); +extern GLboolean radeonValidateState( struct gl_context *ctx ); -extern void radeonFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void radeonFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( rmesa, bit, mode ) do { \ if ( 0 ) fprintf( stderr, "FALLBACK in %s: #%d=%d\n", \ __FUNCTION__, bit, mode ); \ diff --git a/src/mesa/drivers/dri/radeon/radeon_state_init.c b/src/mesa/drivers/dri/radeon/radeon_state_init.c index 91718a4777..698efb145c 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state_init.c +++ b/src/mesa/drivers/dri/radeon/radeon_state_init.c @@ -195,13 +195,13 @@ static int cmdscl( int offset, int stride, int count ) } #define CHECK( NM, FLAG, ADD ) \ -static int check_##NM( GLcontext *ctx, struct radeon_state_atom *atom ) \ +static int check_##NM( struct gl_context *ctx, struct radeon_state_atom *atom ) \ { \ return FLAG ? atom->cmd_size + (ADD) : 0; \ } #define TCL_CHECK( NM, FLAG, ADD ) \ -static int check_##NM( GLcontext *ctx, struct radeon_state_atom *atom ) \ +static int check_##NM( struct gl_context *ctx, struct radeon_state_atom *atom ) \ { \ r100ContextPtr rmesa = R100_CONTEXT(ctx); \ return (!rmesa->radeon.TclFallback && (FLAG)) ? atom->cmd_size + (ADD) : 0; \ @@ -294,7 +294,7 @@ CHECK( txr2, (ctx->Texture.Unit[2]._ReallyEnabled & TEXTURE_RECT_BIT), 0 ) OUT_BATCH_TABLE((data), h.scalars.count); \ } while(0) -static void scl_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void scl_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -306,7 +306,7 @@ static void scl_emit(GLcontext *ctx, struct radeon_state_atom *atom) } -static void vec_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void vec_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -318,7 +318,7 @@ static void vec_emit(GLcontext *ctx, struct radeon_state_atom *atom) } -static void lit_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void lit_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -330,7 +330,7 @@ static void lit_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void ctx_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void ctx_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -395,7 +395,7 @@ static void ctx_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static int check_always_ctx( GLcontext *ctx, struct radeon_state_atom *atom) +static int check_always_ctx( struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); struct radeon_renderbuffer *rrb, *drb; @@ -417,7 +417,7 @@ static int check_always_ctx( GLcontext *ctx, struct radeon_state_atom *atom) return dwords; } -static void ctx_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) +static void ctx_emit_cs(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -512,7 +512,7 @@ static void ctx_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void cube_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void cube_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -540,7 +540,7 @@ static void cube_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void cube_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) +static void cube_emit_cs(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -576,7 +576,7 @@ static void cube_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void tex_emit(GLcontext *ctx, struct radeon_state_atom *atom) +static void tex_emit(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -611,7 +611,7 @@ static void tex_emit(GLcontext *ctx, struct radeon_state_atom *atom) END_BATCH(); } -static void tex_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) +static void tex_emit_cs(struct gl_context *ctx, struct radeon_state_atom *atom) { r100ContextPtr r100 = R100_CONTEXT(ctx); BATCH_LOCALS(&r100->radeon); @@ -666,7 +666,7 @@ static void tex_emit_cs(GLcontext *ctx, struct radeon_state_atom *atom) */ void radeonInitState( r100ContextPtr rmesa ) { - GLcontext *ctx = rmesa->radeon.glCtx; + struct gl_context *ctx = rmesa->radeon.glCtx; GLuint i; rmesa->radeon.state.color.clear = 0x00000000; diff --git a/src/mesa/drivers/dri/radeon/radeon_swtcl.c b/src/mesa/drivers/dri/radeon/radeon_swtcl.c index 29defe73a7..f5b0df6ef5 100644 --- a/src/mesa/drivers/dri/radeon/radeon_swtcl.c +++ b/src/mesa/drivers/dri/radeon/radeon_swtcl.c @@ -87,7 +87,7 @@ static GLuint radeon_cp_vc_frmts[3][2] = { RADEON_CP_VC_FRMT_ST2, RADEON_CP_VC_FRMT_ST2 | RADEON_CP_VC_FRMT_Q2 }, }; -static void radeonSetVertexFormat( GLcontext *ctx ) +static void radeonSetVertexFormat( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT( ctx ); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -243,7 +243,7 @@ static void radeon_predict_emit_size( r100ContextPtr rmesa ) } } -static void radeonRenderStart( GLcontext *ctx ) +static void radeonRenderStart( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT( ctx ); @@ -260,7 +260,7 @@ static void radeonRenderStart( GLcontext *ctx ) * determine in advance whether or not the hardware can / should do the * projection divide or Mesa should do it. */ -void radeonChooseVertexState( GLcontext *ctx ) +void radeonChooseVertexState( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT( ctx ); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -302,7 +302,7 @@ void radeonChooseVertexState( GLcontext *ctx ) } } -void r100_swtcl_flush(GLcontext *ctx, uint32_t current_offset) +void r100_swtcl_flush(struct gl_context *ctx, uint32_t current_offset) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -398,7 +398,7 @@ static void* radeon_alloc_verts( r100ContextPtr rmesa , GLuint nr, GLuint size ) /**********************************************************************/ -static GLboolean radeon_run_render( GLcontext *ctx, +static GLboolean radeon_run_render( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -467,9 +467,9 @@ static const GLuint reduced_hw_prim[GL_POLYGON+1] = { RADEON_CP_VC_CNTL_PRIM_TYPE_TRI_LIST }; -static void radeonRasterPrimitive( GLcontext *ctx, GLuint hwprim ); -static void radeonRenderPrimitive( GLcontext *ctx, GLenum prim ); -static void radeonResetLineStipple( GLcontext *ctx ); +static void radeonRasterPrimitive( struct gl_context *ctx, GLuint hwprim ); +static void radeonRenderPrimitive( struct gl_context *ctx, GLenum prim ); +static void radeonResetLineStipple( struct gl_context *ctx ); /*********************************************************************** @@ -678,7 +678,7 @@ static void init_rast_tab( void ) /* Choose render functions */ /**********************************************************************/ -void radeonChooseRenderState( GLcontext *ctx ) +void radeonChooseRenderState( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -718,7 +718,7 @@ void radeonChooseRenderState( GLcontext *ctx ) /**********************************************************************/ -static void radeonRasterPrimitive( GLcontext *ctx, GLuint hwprim ) +static void radeonRasterPrimitive( struct gl_context *ctx, GLuint hwprim ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -728,7 +728,7 @@ static void radeonRasterPrimitive( GLcontext *ctx, GLuint hwprim ) } } -static void radeonRenderPrimitive( GLcontext *ctx, GLenum prim ) +static void radeonRenderPrimitive( struct gl_context *ctx, GLenum prim ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); rmesa->radeon.swtcl.render_primitive = prim; @@ -736,11 +736,11 @@ static void radeonRenderPrimitive( GLcontext *ctx, GLenum prim ) radeonRasterPrimitive( ctx, reduced_hw_prim[prim] ); } -static void radeonRenderFinish( GLcontext *ctx ) +static void radeonRenderFinish( struct gl_context *ctx ) { } -static void radeonResetLineStipple( GLcontext *ctx ) +static void radeonResetLineStipple( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); RADEON_STATECHANGE( rmesa, lin ); @@ -774,7 +774,7 @@ static const char *getFallbackString(GLuint bit) } -void radeonFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void radeonFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -831,7 +831,7 @@ void radeonFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) /* Initialization. */ /**********************************************************************/ -void radeonInitSwtcl( GLcontext *ctx ) +void radeonInitSwtcl( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); r100ContextPtr rmesa = R100_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/radeon/radeon_swtcl.h b/src/mesa/drivers/dri/radeon/radeon_swtcl.h index da89158eeb..ce2aa1e4c3 100644 --- a/src/mesa/drivers/dri/radeon/radeon_swtcl.h +++ b/src/mesa/drivers/dri/radeon/radeon_swtcl.h @@ -39,28 +39,28 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "swrast/swrast.h" #include "radeon_context.h" -extern void radeonInitSwtcl( GLcontext *ctx ); +extern void radeonInitSwtcl( struct gl_context *ctx ); -extern void radeonChooseRenderState( GLcontext *ctx ); -extern void radeonChooseVertexState( GLcontext *ctx ); +extern void radeonChooseRenderState( struct gl_context *ctx ); +extern void radeonChooseVertexState( struct gl_context *ctx ); -extern void radeonCheckTexSizes( GLcontext *ctx ); +extern void radeonCheckTexSizes( struct gl_context *ctx ); -extern void radeonBuildVertices( GLcontext *ctx, GLuint start, GLuint count, +extern void radeonBuildVertices( struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ); extern void radeonPrintSetupFlags(char *msg, GLuint flags ); -extern void radeon_emit_indexed_verts( GLcontext *ctx, +extern void radeon_emit_indexed_verts( struct gl_context *ctx, GLuint start, GLuint count ); -extern void radeon_translate_vertex( GLcontext *ctx, +extern void radeon_translate_vertex( struct gl_context *ctx, const radeonVertex *src, SWvertex *dst ); -extern void radeon_print_vertex( GLcontext *ctx, const radeonVertex *v ); +extern void radeon_print_vertex( struct gl_context *ctx, const radeonVertex *v ); -extern void r100_swtcl_flush(GLcontext *ctx, uint32_t current_offset); +extern void r100_swtcl_flush(struct gl_context *ctx, uint32_t current_offset); #endif diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.c b/src/mesa/drivers/dri/radeon/radeon_tcl.c index 5e1718f9df..c59b413012 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tcl.c +++ b/src/mesa/drivers/dri/radeon/radeon_tcl.c @@ -164,7 +164,7 @@ static GLushort *radeonAllocElts( r100ContextPtr rmesa, GLuint nr ) * discrete and there are no intervening state changes. (Somewhat * duplicates changes to DrawArrays code) */ -static void radeonEmitPrim( GLcontext *ctx, +static void radeonEmitPrim( struct gl_context *ctx, GLenum prim, GLuint hwprim, GLuint start, @@ -228,7 +228,7 @@ static void radeonEmitPrim( GLcontext *ctx, /* External entrypoints */ /**********************************************************************/ -void radeonEmitPrimitive( GLcontext *ctx, +void radeonEmitPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ) @@ -236,7 +236,7 @@ void radeonEmitPrimitive( GLcontext *ctx, tcl_render_tab_verts[flags&PRIM_MODE_MASK]( ctx, first, last, flags ); } -void radeonEmitEltPrimitive( GLcontext *ctx, +void radeonEmitEltPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ) @@ -244,7 +244,7 @@ void radeonEmitEltPrimitive( GLcontext *ctx, tcl_render_tab_elts[flags&PRIM_MODE_MASK]( ctx, first, last, flags ); } -void radeonTclPrimitive( GLcontext *ctx, +void radeonTclPrimitive( struct gl_context *ctx, GLenum prim, int hw_prim ) { @@ -326,7 +326,7 @@ radeonInitStaticFogData( void ) * Fog blend factors are in the range [0,1]. */ float -radeonComputeFogBlendFactor( GLcontext *ctx, GLfloat fogcoord ) +radeonComputeFogBlendFactor( struct gl_context *ctx, GLfloat fogcoord ) { GLfloat end = ctx->Fog.End; GLfloat d, temp; @@ -361,7 +361,7 @@ radeonComputeFogBlendFactor( GLcontext *ctx, GLfloat fogcoord ) * Predict total emit size for next rendering operation so there is no flush in middle of rendering * Prediction has to aim towards the best possible value that is worse than worst case scenario */ -static GLuint radeonEnsureEmitSize( GLcontext * ctx , GLuint inputs ) +static GLuint radeonEnsureEmitSize( struct gl_context * ctx , GLuint inputs ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -432,7 +432,7 @@ static GLuint radeonEnsureEmitSize( GLcontext * ctx , GLuint inputs ) /* TCL render. */ -static GLboolean radeon_run_tcl_render( GLcontext *ctx, +static GLboolean radeon_run_tcl_render( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -529,7 +529,7 @@ const struct tnl_pipeline_stage _radeon_tcl_stage = */ -static void transition_to_swtnl( GLcontext *ctx ) +static void transition_to_swtnl( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -558,7 +558,7 @@ static void transition_to_swtnl( GLcontext *ctx ) } -static void transition_to_hwtnl( GLcontext *ctx ) +static void transition_to_hwtnl( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -618,7 +618,7 @@ static char *getFallbackString(GLuint bit) -void radeonTclFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void radeonTclFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLuint oldfallback = rmesa->radeon.TclFallback; diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.h b/src/mesa/drivers/dri/radeon/radeon_tcl.h index dccbea5fdb..cf19766b9f 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tcl.h +++ b/src/mesa/drivers/dri/radeon/radeon_tcl.h @@ -38,16 +38,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "radeon_context.h" -extern void radeonTclPrimitive( GLcontext *ctx, GLenum prim, int hw_prim ); -extern void radeonEmitEltPrimitive( GLcontext *ctx, GLuint first, GLuint last, +extern void radeonTclPrimitive( struct gl_context *ctx, GLenum prim, int hw_prim ); +extern void radeonEmitEltPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ); -extern void radeonEmitPrimitive( GLcontext *ctx, GLuint first, GLuint last, +extern void radeonEmitPrimitive( struct gl_context *ctx, GLuint first, GLuint last, GLuint flags ); -extern void radeonTclFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void radeonTclFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); extern void radeonInitStaticFogData( void ); -extern float radeonComputeFogBlendFactor( GLcontext *ctx, GLfloat fogcoord ); +extern float radeonComputeFogBlendFactor( struct gl_context *ctx, GLfloat fogcoord ); #define RADEON_TCL_FALLBACK_RASTER 0x1 /* rasterization */ #define RADEON_TCL_FALLBACK_UNFILLED 0x2 /* unfilled tris */ diff --git a/src/mesa/drivers/dri/radeon/radeon_tex.c b/src/mesa/drivers/dri/radeon/radeon_tex.c index c66e5d17b1..d5285e24cd 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tex.c +++ b/src/mesa/drivers/dri/radeon/radeon_tex.c @@ -253,7 +253,7 @@ static void radeonSetTexBorderColor( radeonTexObjPtr t, const GLfloat color[4] ) #define SCALED_FLOAT_TO_BYTE( x, scale ) \ (((GLuint)((255.0F / scale) * (x))) / 2) -static void radeonTexEnv( GLcontext *ctx, GLenum target, +static void radeonTexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -316,7 +316,7 @@ static void radeonTexEnv( GLcontext *ctx, GLenum target, * next UpdateTextureState */ -static void radeonTexParameter( GLcontext *ctx, GLenum target, +static void radeonTexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params ) { @@ -354,7 +354,7 @@ static void radeonTexParameter( GLcontext *ctx, GLenum target, } } -static void radeonDeleteTexture( GLcontext *ctx, +static void radeonDeleteTexture( struct gl_context *ctx, struct gl_texture_object *texObj ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -392,7 +392,7 @@ static void radeonDeleteTexture( GLcontext *ctx, * Basically impossible to do this on the fly - just collect some * basic info & do the checks from ValidateState(). */ -static void radeonTexGen( GLcontext *ctx, +static void radeonTexGen( struct gl_context *ctx, GLenum coord, GLenum pname, const GLfloat *params ) @@ -409,7 +409,7 @@ static void radeonTexGen( GLcontext *ctx, * texture object from the core mesa gl_texture_object. Not done at this time. */ static struct gl_texture_object * -radeonNewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +radeonNewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); radeonTexObj* t = CALLOC_STRUCT(radeon_tex_obj); diff --git a/src/mesa/drivers/dri/radeon/radeon_tex.h b/src/mesa/drivers/dri/radeon/radeon_tex.h index 0113ffd3da..05729f1e0b 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tex.h +++ b/src/mesa/drivers/dri/radeon/radeon_tex.h @@ -45,7 +45,7 @@ extern void radeonSetTexBuffer(__DRIcontext *pDRICtx, GLint target, __DRIdrawabl extern void radeonSetTexBuffer2(__DRIcontext *pDRICtx, GLint target, GLint glx_texture_format, __DRIdrawable *dPriv); -extern void radeonUpdateTextureState( GLcontext *ctx ); +extern void radeonUpdateTextureState( struct gl_context *ctx ); extern int radeonUploadTexImages( r100ContextPtr rmesa, radeonTexObjPtr t, GLuint face ); diff --git a/src/mesa/drivers/dri/radeon/radeon_tex_copy.c b/src/mesa/drivers/dri/radeon/radeon_tex_copy.c index 4cb0bb60c8..f14dfa25d4 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tex_copy.c +++ b/src/mesa/drivers/dri/radeon/radeon_tex_copy.c @@ -37,7 +37,7 @@ #include "radeon_mipmap_tree.h" static GLboolean -do_copy_texsubimage(GLcontext *ctx, +do_copy_texsubimage(struct gl_context *ctx, GLenum target, GLint level, struct radeon_tex_obj *tobj, radeon_texture_image *timg, @@ -141,7 +141,7 @@ do_copy_texsubimage(GLcontext *ctx, } void -radeonCopyTexImage2D(GLcontext *ctx, GLenum target, GLint level, +radeonCopyTexImage2D(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) @@ -196,7 +196,7 @@ fail: } void -radeonCopyTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, +radeonCopyTexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) diff --git a/src/mesa/drivers/dri/radeon/radeon_tex_getimage.c b/src/mesa/drivers/dri/radeon/radeon_tex_getimage.c index f878b48e5f..4a73089ce1 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tex_getimage.c +++ b/src/mesa/drivers/dri/radeon/radeon_tex_getimage.c @@ -40,7 +40,7 @@ * then unmap it. */ static void -radeon_get_tex_image(GLcontext * ctx, GLenum target, GLint level, +radeon_get_tex_image(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage, int compressed) @@ -83,7 +83,7 @@ radeon_get_tex_image(GLcontext * ctx, GLenum target, GLint level, } void -radeonGetTexImage(GLcontext * ctx, GLenum target, GLint level, +radeonGetTexImage(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -93,7 +93,7 @@ radeonGetTexImage(GLcontext * ctx, GLenum target, GLint level, } void -radeonGetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level, +radeonGetCompressedTexImage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) diff --git a/src/mesa/drivers/dri/radeon/radeon_texstate.c b/src/mesa/drivers/dri/radeon/radeon_texstate.c index f852116dee..dd8ecdd500 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texstate.c +++ b/src/mesa/drivers/dri/radeon/radeon_texstate.c @@ -260,7 +260,7 @@ do { \ * Texture unit state management */ -static GLboolean radeonUpdateTextureEnv( GLcontext *ctx, int unit ) +static GLboolean radeonUpdateTextureEnv( struct gl_context *ctx, int unit ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -885,7 +885,7 @@ static void set_texgen_matrix( r100ContextPtr rmesa, /* Returns GL_FALSE if fallback required. */ -static GLboolean radeon_validate_texgen( GLcontext *ctx, GLuint unit ) +static GLboolean radeon_validate_texgen( struct gl_context *ctx, GLuint unit ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -1085,7 +1085,7 @@ static GLboolean setup_hardware_state(r100ContextPtr rmesa, radeonTexObj *t, int return GL_TRUE; } -static GLboolean radeon_validate_texture(GLcontext *ctx, struct gl_texture_object *texObj, int unit) +static GLboolean radeon_validate_texture(struct gl_context *ctx, struct gl_texture_object *texObj, int unit) { r100ContextPtr rmesa = R100_CONTEXT(ctx); radeonTexObj *t = radeon_tex_obj(texObj); @@ -1128,7 +1128,7 @@ static GLboolean radeon_validate_texture(GLcontext *ctx, struct gl_texture_objec return !t->border_fallback; } -static GLboolean radeonUpdateTextureUnit( GLcontext *ctx, int unit ) +static GLboolean radeonUpdateTextureUnit( struct gl_context *ctx, int unit ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); @@ -1155,7 +1155,7 @@ static GLboolean radeonUpdateTextureUnit( GLcontext *ctx, int unit ) return GL_TRUE; } -void radeonUpdateTextureState( GLcontext *ctx ) +void radeonUpdateTextureState( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); GLboolean ok; diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index d1ebd83550..18ccb512d7 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -76,7 +76,7 @@ void copy_rows(void* dst, GLuint dststride, const void* src, GLuint srcstride, /** * Allocate an empty texture image object. */ -struct gl_texture_image *radeonNewTextureImage(GLcontext *ctx) +struct gl_texture_image *radeonNewTextureImage(struct gl_context *ctx) { return CALLOC(sizeof(radeon_texture_image)); } @@ -84,7 +84,7 @@ struct gl_texture_image *radeonNewTextureImage(GLcontext *ctx) /** * Free memory associated with this texture image. */ -void radeonFreeTexImageData(GLcontext *ctx, struct gl_texture_image *timage) +void radeonFreeTexImageData(struct gl_context *ctx, struct gl_texture_image *timage) { radeon_texture_image* image = get_radeon_texture_image(timage); @@ -154,7 +154,7 @@ void radeon_teximage_unmap(radeon_texture_image *image) } } -static void map_override(GLcontext *ctx, radeonTexObj *t) +static void map_override(struct gl_context *ctx, radeonTexObj *t) { radeon_texture_image *img = get_radeon_texture_image(t->base.Image[0][0]); @@ -163,7 +163,7 @@ static void map_override(GLcontext *ctx, radeonTexObj *t) img->base.Data = t->bo->ptr; } -static void unmap_override(GLcontext *ctx, radeonTexObj *t) +static void unmap_override(struct gl_context *ctx, radeonTexObj *t) { radeon_texture_image *img = get_radeon_texture_image(t->base.Image[0][0]); @@ -175,7 +175,7 @@ static void unmap_override(GLcontext *ctx, radeonTexObj *t) /** * Map a validated texture for reading during software rendering. */ -void radeonMapTexture(GLcontext *ctx, struct gl_texture_object *texObj) +void radeonMapTexture(struct gl_context *ctx, struct gl_texture_object *texObj) { radeonTexObj* t = radeon_tex_obj(texObj); int face, level; @@ -213,7 +213,7 @@ void radeonMapTexture(GLcontext *ctx, struct gl_texture_object *texObj) } } -void radeonUnmapTexture(GLcontext *ctx, struct gl_texture_object *texObj) +void radeonUnmapTexture(struct gl_context *ctx, struct gl_texture_object *texObj) { radeonTexObj* t = radeon_tex_obj(texObj); int face, level; @@ -241,7 +241,7 @@ void radeonUnmapTexture(GLcontext *ctx, struct gl_texture_object *texObj) * This relies on internal details of _mesa_generate_mipmap, in particular * the fact that the memory for recreated texture images is always freed. */ -static void radeon_generate_mipmap(GLcontext *ctx, GLenum target, +static void radeon_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { radeonTexObj* t = radeon_tex_obj(texObj); @@ -273,7 +273,7 @@ static void radeon_generate_mipmap(GLcontext *ctx, GLenum target, } -void radeonGenerateMipmap(GLcontext* ctx, GLenum target, struct gl_texture_object *texObj) +void radeonGenerateMipmap(struct gl_context* ctx, GLenum target, struct gl_texture_object *texObj) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); struct radeon_bo *bo; @@ -338,7 +338,7 @@ static gl_format radeonChoose8888TexFormat(radeonContextPtr rmesa, return _dri_texformat_argb8888; } -gl_format radeonChooseTextureFormat_mesa(GLcontext * ctx, +gl_format radeonChooseTextureFormat_mesa(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type) @@ -347,7 +347,7 @@ gl_format radeonChooseTextureFormat_mesa(GLcontext * ctx, type, 0); } -gl_format radeonChooseTextureFormat(GLcontext * ctx, +gl_format radeonChooseTextureFormat(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type, GLboolean fbo) @@ -641,7 +641,7 @@ static void teximage_assign_miptree(radeonContextPtr rmesa, "%s Failed to allocate miptree.\n", __func__); } -static GLuint * allocate_image_offsets(GLcontext *ctx, +static GLuint * allocate_image_offsets(struct gl_context *ctx, unsigned alignedWidth, unsigned height, unsigned depth) @@ -665,7 +665,7 @@ static GLuint * allocate_image_offsets(GLcontext *ctx, /** * Update a subregion of the given texture image. */ -static void radeon_store_teximage(GLcontext* ctx, int dims, +static void radeon_store_teximage(struct gl_context* ctx, int dims, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei imageSize, @@ -758,7 +758,7 @@ static void radeon_store_teximage(GLcontext* ctx, int dims, * All glTexImage calls go through this function. */ static void radeon_teximage( - GLcontext *ctx, int dims, + struct gl_context *ctx, int dims, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, @@ -833,7 +833,7 @@ static void radeon_teximage( _mesa_unmap_teximage_pbo(ctx, packing); } -void radeonTexImage1D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid * pixels, @@ -845,7 +845,7 @@ void radeonTexImage1D(GLcontext * ctx, GLenum target, GLint level, 0, format, type, pixels, packing, texObj, texImage, 0); } -void radeonTexImage2D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid * pixels, @@ -858,7 +858,7 @@ void radeonTexImage2D(GLcontext * ctx, GLenum target, GLint level, 0, format, type, pixels, packing, texObj, texImage, 0); } -void radeonCompressedTexImage2D(GLcontext * ctx, GLenum target, +void radeonCompressedTexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid * data, @@ -869,7 +869,7 @@ void radeonCompressedTexImage2D(GLcontext * ctx, GLenum target, imageSize, 0, 0, data, &ctx->Unpack, texObj, texImage, 1); } -void radeonTexImage3D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, @@ -885,7 +885,7 @@ void radeonTexImage3D(GLcontext * ctx, GLenum target, GLint level, /** * All glTexSubImage calls go through this function. */ -static void radeon_texsubimage(GLcontext* ctx, int dims, GLenum target, int level, +static void radeon_texsubimage(struct gl_context* ctx, int dims, GLenum target, int level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei imageSize, @@ -939,7 +939,7 @@ static void radeon_texsubimage(GLcontext* ctx, int dims, GLenum target, int leve _mesa_unmap_teximage_pbo(ctx, packing); } -void radeonTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexSubImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, @@ -952,7 +952,7 @@ void radeonTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, format, type, pixels, packing, texObj, texImage, 0); } -void radeonTexSubImage2D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -966,7 +966,7 @@ void radeonTexSubImage2D(GLcontext * ctx, GLenum target, GLint level, 0); } -void radeonCompressedTexSubImage2D(GLcontext * ctx, GLenum target, +void radeonCompressedTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, @@ -979,7 +979,7 @@ void radeonCompressedTexSubImage2D(GLcontext * ctx, GLenum target, } -void radeonTexSubImage3D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexSubImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.h b/src/mesa/drivers/dri/radeon/radeon_texture.h index 4ce639ea34..9138a7d554 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.h +++ b/src/mesa/drivers/dri/radeon/radeon_texture.h @@ -35,47 +35,47 @@ void copy_rows(void* dst, GLuint dststride, const void* src, GLuint srcstride, GLuint numrows, GLuint rowsize); -struct gl_texture_image *radeonNewTextureImage(GLcontext *ctx); -void radeonFreeTexImageData(GLcontext *ctx, struct gl_texture_image *timage); +struct gl_texture_image *radeonNewTextureImage(struct gl_context *ctx); +void radeonFreeTexImageData(struct gl_context *ctx, struct gl_texture_image *timage); void radeon_teximage_map(radeon_texture_image *image, GLboolean write_enable); void radeon_teximage_unmap(radeon_texture_image *image); -void radeonMapTexture(GLcontext *ctx, struct gl_texture_object *texObj); -void radeonUnmapTexture(GLcontext *ctx, struct gl_texture_object *texObj); -void radeonGenerateMipmap(GLcontext* ctx, GLenum target, struct gl_texture_object *texObj); -int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *texObj); +void radeonMapTexture(struct gl_context *ctx, struct gl_texture_object *texObj); +void radeonUnmapTexture(struct gl_context *ctx, struct gl_texture_object *texObj); +void radeonGenerateMipmap(struct gl_context* ctx, GLenum target, struct gl_texture_object *texObj); +int radeon_validate_texture_miptree(struct gl_context * ctx, struct gl_texture_object *texObj); -gl_format radeonChooseTextureFormat_mesa(GLcontext * ctx, +gl_format radeonChooseTextureFormat_mesa(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type); -gl_format radeonChooseTextureFormat(GLcontext * ctx, +gl_format radeonChooseTextureFormat(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type, GLboolean fbo); -void radeonTexImage1D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid * pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonTexImage2D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid * pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonCompressedTexImage2D(GLcontext * ctx, GLenum target, +void radeonCompressedTexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid * data, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonTexImage3D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, @@ -83,7 +83,7 @@ void radeonTexImage3D(GLcontext * ctx, GLenum target, GLint level, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexSubImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, @@ -91,7 +91,7 @@ void radeonTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonTexSubImage2D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -99,7 +99,7 @@ void radeonTexSubImage2D(GLcontext * ctx, GLenum target, GLint level, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonCompressedTexSubImage2D(GLcontext * ctx, GLenum target, +void radeonCompressedTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, @@ -107,7 +107,7 @@ void radeonCompressedTexSubImage2D(GLcontext * ctx, GLenum target, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonTexSubImage3D(GLcontext * ctx, GLenum target, GLint level, +void radeonTexSubImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, @@ -116,21 +116,21 @@ void radeonTexSubImage3D(GLcontext * ctx, GLenum target, GLint level, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonGetTexImage(GLcontext * ctx, GLenum target, GLint level, +void radeonGetTexImage(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonGetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level, +void radeonGetCompressedTexImage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void radeonCopyTexImage2D(GLcontext *ctx, GLenum target, GLint level, +void radeonCopyTexImage2D(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -void radeonCopyTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, +void radeonCopyTexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); diff --git a/src/mesa/drivers/dri/savage/savage_xmesa.c b/src/mesa/drivers/dri/savage/savage_xmesa.c index cbdc9c87ee..b3aaa0e504 100644 --- a/src/mesa/drivers/dri/savage/savage_xmesa.c +++ b/src/mesa/drivers/dri/savage/savage_xmesa.c @@ -26,8 +26,6 @@ #include <stdio.h> #include "main/context.h" -#include "main/context.h" -#include "main/matrix.h" #include "main/framebuffer.h" #include "main/renderbuffer.h" #include "main/simple_list.h" @@ -289,11 +287,11 @@ savageDestroyScreen(__DRIscreen *sPriv) static GLboolean savageCreateContext( gl_api api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate ) { - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; savageContextPtr imesa; __DRIscreen *sPriv = driContextPriv->driScreenPriv; struct dd_function_table functions; @@ -588,7 +586,7 @@ savageDestroyContext(__DRIcontext *driContextPriv) static GLboolean savageCreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap) { savageScreenPrivate *screen = (savageScreenPrivate *) driScrnPriv->private; @@ -683,7 +681,7 @@ savageCreateBuffer( __DRIscreen *driScrnPriv, static void savageDestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } #if 0 @@ -791,9 +789,9 @@ savageMakeCurrent(__DRIcontext *driContextPriv, savageContextPtr imesa = (savageContextPtr) driContextPriv->driverPrivate; struct gl_framebuffer *drawBuffer - = (GLframebuffer *) driDrawPriv->driverPrivate; + = (struct gl_framebuffer *) driDrawPriv->driverPrivate; struct gl_framebuffer *readBuffer - = (GLframebuffer *) driReadPriv->driverPrivate; + = (struct gl_framebuffer *) driReadPriv->driverPrivate; driRenderbuffer *frontRb = (driRenderbuffer *) drawBuffer->Attachment[BUFFER_FRONT_LEFT].Renderbuffer; driRenderbuffer *backRb = (driRenderbuffer *) @@ -894,7 +892,7 @@ savageFillInModes( __DRIscreen *psp, unsigned stencil_bits, GLboolean have_back_buffer ) { __DRIconfig **configs; - __GLcontextModes * m; + struct gl_config * m; unsigned depth_buffer_factor; unsigned back_buffer_factor; GLenum fb_format; @@ -970,7 +968,7 @@ savageFillInModes( __DRIscreen *psp, * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig ** savageInitScreen(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/savage/savagecontext.h b/src/mesa/drivers/dri/savage/savagecontext.h index ba1e6e1e1a..75bec62fa8 100644 --- a/src/mesa/drivers/dri/savage/savagecontext.h +++ b/src/mesa/drivers/dri/savage/savagecontext.h @@ -148,7 +148,7 @@ struct savage_elt_t { struct savage_context_t { GLint refcount; - GLcontext *glCtx; + struct gl_context *glCtx; int lastTexHeap; driTexHeap *textureHeaps[SAVAGE_NR_TEX_HEAPS]; @@ -226,7 +226,7 @@ struct savage_context_t { /* DRI stuff */ GLuint bufferSize; - GLframebuffer *glBuffer; + struct gl_framebuffer *glBuffer; /* Two flags to keep track of fallbacks. */ GLuint Fallback; diff --git a/src/mesa/drivers/dri/savage/savagedd.c b/src/mesa/drivers/dri/savage/savagedd.c index bbf49aec27..3f8d7aafb0 100644 --- a/src/mesa/drivers/dri/savage/savagedd.c +++ b/src/mesa/drivers/dri/savage/savagedd.c @@ -45,7 +45,7 @@ ***************************************/ -static const GLubyte *savageDDGetString( GLcontext *ctx, GLenum name ) +static const GLubyte *savageDDGetString( struct gl_context *ctx, GLenum name ) { static char *cardNames[S3_LAST] = { "Unknown", @@ -79,7 +79,7 @@ static const GLubyte *savageDDGetString( GLcontext *ctx, GLenum name ) } } #if 0 -static GLint savageGetParameteri(const GLcontext *ctx, GLint param) +static GLint savageGetParameteri(const struct gl_context *ctx, GLint param) { switch (param) { case DD_HAVE_HARDWARE_FOG: @@ -91,7 +91,7 @@ static GLint savageGetParameteri(const GLcontext *ctx, GLint param) #endif -void savageDDInitDriverFuncs( GLcontext *ctx ) +void savageDDInitDriverFuncs( struct gl_context *ctx ) { ctx->Driver.GetString = savageDDGetString; } diff --git a/src/mesa/drivers/dri/savage/savagedd.h b/src/mesa/drivers/dri/savage/savagedd.h index 698a8d5de9..c526141299 100644 --- a/src/mesa/drivers/dri/savage/savagedd.h +++ b/src/mesa/drivers/dri/savage/savagedd.h @@ -28,5 +28,5 @@ #include "main/context.h" -void savageDDInitDriverFuncs( GLcontext *ctx ); +void savageDDInitDriverFuncs( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/savage/savageioctl.c b/src/mesa/drivers/dri/savage/savageioctl.c index 9e181ce3be..46bbb653b8 100644 --- a/src/mesa/drivers/dri/savage/savageioctl.c +++ b/src/mesa/drivers/dri/savage/savageioctl.c @@ -119,7 +119,7 @@ void savageGetDMABuffer( savageContextPtr imesa ) #if 0 /* Still keeping this around because it demonstrates page flipping and * automatic z-clear. */ -static void savage_BCI_clear(GLcontext *ctx, drm_savage_clear_t *pclear) +static void savage_BCI_clear(struct gl_context *ctx, drm_savage_clear_t *pclear) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); int nbox = imesa->sarea->nbox; @@ -325,7 +325,7 @@ static GLuint savageIntersectClipRects(drm_clip_rect_t *dest, } -static void savageDDClear( GLcontext *ctx, GLbitfield mask ) +static void savageDDClear( struct gl_context *ctx, GLbitfield mask ) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); GLuint colorMask, depthMask, clearColor, clearDepth, flags; @@ -635,7 +635,7 @@ void savageFlushCmdBuf( savageContextPtr imesa, GLboolean discard ) } -static void savageDDFlush( GLcontext *ctx ) +static void savageDDFlush( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); if (SAVAGE_DEBUG & DEBUG_VERBOSE_MSG) @@ -644,7 +644,7 @@ static void savageDDFlush( GLcontext *ctx ) savageFlushCmdBuf(imesa, GL_FALSE); } -static void savageDDFinish( GLcontext *ctx ) +static void savageDDFinish( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); if (SAVAGE_DEBUG & DEBUG_VERBOSE_MSG) @@ -654,7 +654,7 @@ static void savageDDFinish( GLcontext *ctx ) WAIT_IDLE_EMPTY(imesa); } -void savageDDInitIoctlFuncs( GLcontext *ctx ) +void savageDDInitIoctlFuncs( struct gl_context *ctx ) { ctx->Driver.Clear = savageDDClear; ctx->Driver.Flush = savageDDFlush; diff --git a/src/mesa/drivers/dri/savage/savageioctl.h b/src/mesa/drivers/dri/savage/savageioctl.h index e7e80816c1..7d34825c29 100644 --- a/src/mesa/drivers/dri/savage/savageioctl.h +++ b/src/mesa/drivers/dri/savage/savageioctl.h @@ -37,7 +37,7 @@ void savageWaitEvent( savageContextPtr imesa, unsigned int event); void savageFlushCmdBufLocked( savageContextPtr imesa, GLboolean discard ); void savageFlushCmdBuf( savageContextPtr imesa, GLboolean discard ); -void savageDDInitIoctlFuncs( GLcontext *ctx ); +void savageDDInitIoctlFuncs( struct gl_context *ctx ); void savageSwapBuffers( __DRIdrawable *dPriv ); diff --git a/src/mesa/drivers/dri/savage/savagerender.c b/src/mesa/drivers/dri/savage/savagerender.c index 2d9e80e29c..8cc448ad4f 100644 --- a/src/mesa/drivers/dri/savage/savagerender.c +++ b/src/mesa/drivers/dri/savage/savagerender.c @@ -142,7 +142,7 @@ /* Render pipeline stage */ /**********************************************************************/ -static GLboolean savage_run_render( GLcontext *ctx, +static GLboolean savage_run_render( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -234,7 +234,7 @@ struct texnorm_stage_data { #define TEXNORM_STAGE_DATA(stage) ((struct texnorm_stage_data *)stage->privatePtr) -static GLboolean run_texnorm_stage( GLcontext *ctx, +static GLboolean run_texnorm_stage( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct texnorm_stage_data *store = TEXNORM_STAGE_DATA(stage); @@ -307,7 +307,7 @@ static GLboolean run_texnorm_stage( GLcontext *ctx, /* Called the first time stage->run() is invoked. */ -static GLboolean alloc_texnorm_data( GLcontext *ctx, +static GLboolean alloc_texnorm_data( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -325,7 +325,7 @@ static GLboolean alloc_texnorm_data( GLcontext *ctx, return GL_TRUE; } -static void validate_texnorm( GLcontext *ctx, +static void validate_texnorm( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct texnorm_stage_data *store = TEXNORM_STAGE_DATA(stage); diff --git a/src/mesa/drivers/dri/savage/savagespan.c b/src/mesa/drivers/dri/savage/savagespan.c index 0913dd1278..8542f47fd9 100644 --- a/src/mesa/drivers/dri/savage/savagespan.c +++ b/src/mesa/drivers/dri/savage/savagespan.c @@ -187,7 +187,7 @@ * the frame buffer. */ static void -savageCopyPixels( GLcontext *ctx, +savageCopyPixels( struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint destx, GLint desty, GLenum type ) @@ -198,7 +198,7 @@ savageCopyPixels( GLcontext *ctx, _swrast_CopyPixels(ctx, srcx, srcy, width, height, destx, desty, type); } static void -savageDrawPixels( GLcontext *ctx, +savageDrawPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -211,7 +211,7 @@ savageDrawPixels( GLcontext *ctx, _swrast_DrawPixels(ctx, x, y, width, height, format, type, packing, pixels); } static void -savageReadPixels( GLcontext *ctx, +savageReadPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, @@ -226,7 +226,7 @@ savageReadPixels( GLcontext *ctx, /* * Make sure the hardware is idle when span-rendering. */ -static void savageSpanRenderStart( GLcontext *ctx ) +static void savageSpanRenderStart( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); FLUSH_BATCH(imesa); @@ -234,7 +234,7 @@ static void savageSpanRenderStart( GLcontext *ctx ) } -void savageDDInitSpanFuncs( GLcontext *ctx ) +void savageDDInitSpanFuncs( struct gl_context *ctx ) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = savageSpanRenderStart; @@ -251,7 +251,7 @@ void savageDDInitSpanFuncs( GLcontext *ctx ) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -savageSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis, +savageSetSpanFunctions(driRenderbuffer *drb, const struct gl_config *vis, GLboolean float_depth) { if (drb->Base.Format == MESA_FORMAT_RGB565) { diff --git a/src/mesa/drivers/dri/savage/savagespan.h b/src/mesa/drivers/dri/savage/savagespan.h index 53a7f8b97c..41d6f75cbb 100644 --- a/src/mesa/drivers/dri/savage/savagespan.h +++ b/src/mesa/drivers/dri/savage/savagespan.h @@ -28,10 +28,10 @@ #include "drirenderbuffer.h" -extern void savageDDInitSpanFuncs( GLcontext *ctx ); +extern void savageDDInitSpanFuncs( struct gl_context *ctx ); extern void -savageSetSpanFunctions(driRenderbuffer *rb, const GLvisual *vis, +savageSetSpanFunctions(driRenderbuffer *rb, const struct gl_config *vis, GLboolean float_depth); diff --git a/src/mesa/drivers/dri/savage/savagestate.c b/src/mesa/drivers/dri/savage/savagestate.c index 84e1b52585..0906f85b1f 100644 --- a/src/mesa/drivers/dri/savage/savagestate.c +++ b/src/mesa/drivers/dri/savage/savagestate.c @@ -73,8 +73,8 @@ #define S3D_TR 15 -static void savageBlendFunc_s4(GLcontext *); -static void savageBlendFunc_s3d(GLcontext *); +static void savageBlendFunc_s4(struct gl_context *); +static void savageBlendFunc_s3d(struct gl_context *); static INLINE GLuint savagePackColor(GLuint format, GLubyte r, GLubyte g, @@ -92,16 +92,16 @@ static INLINE GLuint savagePackColor(GLuint format, } -static void savageDDAlphaFunc_s4(GLcontext *ctx, GLenum func, GLfloat ref) +static void savageDDAlphaFunc_s4(struct gl_context *ctx, GLenum func, GLfloat ref) { savageBlendFunc_s4(ctx); } -static void savageDDAlphaFunc_s3d(GLcontext *ctx, GLenum func, GLfloat ref) +static void savageDDAlphaFunc_s3d(struct gl_context *ctx, GLenum func, GLfloat ref) { savageBlendFunc_s3d(ctx); } -static void savageDDBlendEquationSeparate(GLcontext *ctx, +static void savageDDBlendEquationSeparate(struct gl_context *ctx, GLenum modeRGB, GLenum modeA) { assert( modeRGB == modeA ); @@ -119,7 +119,7 @@ static void savageDDBlendEquationSeparate(GLcontext *ctx, } -static void savageBlendFunc_s4(GLcontext *ctx) +static void savageBlendFunc_s4(struct gl_context *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); uint32_t drawLocalCtrl = imesa->regs.s4.drawLocalCtrl.ui; @@ -294,7 +294,7 @@ static void savageBlendFunc_s4(GLcontext *ctx) drawCtrl1 != imesa->regs.s4.drawCtrl1.ui) imesa->dirty |= SAVAGE_UPLOAD_GLOBAL; } -static void savageBlendFunc_s3d(GLcontext *ctx) +static void savageBlendFunc_s3d(struct gl_context *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); uint32_t drawCtrl = imesa->regs.s3d.drawCtrl.ui; @@ -465,14 +465,14 @@ static void savageBlendFunc_s3d(GLcontext *ctx) imesa->dirty |= SAVAGE_UPLOAD_LOCAL; } -static void savageDDBlendFuncSeparate_s4( GLcontext *ctx, GLenum sfactorRGB, +static void savageDDBlendFuncSeparate_s4( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { assert (dfactorRGB == dfactorA && sfactorRGB == sfactorA); savageBlendFunc_s4( ctx ); } -static void savageDDBlendFuncSeparate_s3d( GLcontext *ctx, GLenum sfactorRGB, +static void savageDDBlendFuncSeparate_s3d( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -482,7 +482,7 @@ static void savageDDBlendFuncSeparate_s3d( GLcontext *ctx, GLenum sfactorRGB, -static void savageDDDepthFunc_s4(GLcontext *ctx, GLenum func) +static void savageDDDepthFunc_s4(struct gl_context *ctx, GLenum func) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); ZCmpFunc zmode; @@ -546,7 +546,7 @@ static void savageDDDepthFunc_s4(GLcontext *ctx, GLenum func) zWatermarks != imesa->regs.s4.zWatermarks.ui) imesa->dirty |= SAVAGE_UPLOAD_GLOBAL; } -static void savageDDDepthFunc_s3d(GLcontext *ctx, GLenum func) +static void savageDDDepthFunc_s3d(struct gl_context *ctx, GLenum func) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); ZCmpFunc zmode; @@ -600,11 +600,11 @@ static void savageDDDepthFunc_s3d(GLcontext *ctx, GLenum func) imesa->dirty |= SAVAGE_UPLOAD_GLOBAL; } -static void savageDDDepthMask_s4(GLcontext *ctx, GLboolean flag) +static void savageDDDepthMask_s4(struct gl_context *ctx, GLboolean flag) { savageDDDepthFunc_s4(ctx,ctx->Depth.Func); } -static void savageDDDepthMask_s3d(GLcontext *ctx, GLboolean flag) +static void savageDDDepthMask_s3d(struct gl_context *ctx, GLboolean flag) { savageDDDepthFunc_s3d(ctx,ctx->Depth.Func); } @@ -617,7 +617,7 @@ static void savageDDDepthMask_s3d(GLcontext *ctx, GLboolean flag) */ -static void savageDDScissor( GLcontext *ctx, GLint x, GLint y, +static void savageDDScissor( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -635,7 +635,7 @@ static void savageDDScissor( GLcontext *ctx, GLint x, GLint y, -static void savageDDDrawBuffer(GLcontext *ctx, GLenum mode ) +static void savageDDDrawBuffer(struct gl_context *ctx, GLenum mode ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); uint32_t destCtrl = imesa->regs.s4.destCtrl.ui; @@ -667,13 +667,13 @@ static void savageDDDrawBuffer(GLcontext *ctx, GLenum mode ) imesa->dirty |= SAVAGE_UPLOAD_GLOBAL; } -static void savageDDReadBuffer(GLcontext *ctx, GLenum mode ) +static void savageDDReadBuffer(struct gl_context *ctx, GLenum mode ) { /* nothing, until we implement h/w glRead/CopyPixels or CopyTexImage */ } #if 0 -static void savageDDSetColor(GLcontext *ctx, +static void savageDDSetColor(struct gl_context *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a ) { @@ -686,7 +686,7 @@ static void savageDDSetColor(GLcontext *ctx, * Window position and viewport transformation */ -void savageCalcViewport( GLcontext *ctx ) +void savageCalcViewport( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -712,14 +712,14 @@ void savageCalcViewport( GLcontext *ctx ) imesa->SetupNewInputs = ~0; } -static void savageViewport( GLcontext *ctx, +static void savageViewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { savageCalcViewport( ctx ); } -static void savageDepthRange( GLcontext *ctx, +static void savageDepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { savageCalcViewport( ctx ); @@ -730,7 +730,7 @@ static void savageDepthRange( GLcontext *ctx, * Miscellaneous */ -static void savageDDClearColor(GLcontext *ctx, +static void savageDDClearColor(struct gl_context *ctx, const GLfloat color[4] ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -746,7 +746,7 @@ static void savageDDClearColor(GLcontext *ctx, /* Fallback to swrast for select and feedback. */ -static void savageRenderMode( GLcontext *ctx, GLenum mode ) +static void savageRenderMode( struct gl_context *ctx, GLenum mode ) { FALLBACK( ctx, SAVAGE_FALLBACK_RENDERMODE, (mode != GL_RENDER) ); } @@ -758,7 +758,7 @@ static void savageRenderMode( GLcontext *ctx, GLenum mode ) * Culling - the savage isn't quite as clean here as the rest of * its interfaces, but it's not bad. */ -static void savageDDCullFaceFrontFace(GLcontext *ctx, GLenum unused) +static void savageDDCullFaceFrontFace(struct gl_context *ctx, GLenum unused) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); GLuint cullMode=imesa->LcsCullMode; @@ -793,7 +793,7 @@ static void savageDDCullFaceFrontFace(GLcontext *ctx, GLenum unused) } #endif /* end #if HW_CULL */ -static void savageUpdateCull( GLcontext *ctx ) +static void savageUpdateCull( struct gl_context *ctx ) { #if HW_CULL savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -829,7 +829,7 @@ static void savageUpdateCull( GLcontext *ctx ) * to have any effect. If only some channels are masked we need a * software fallback on all chips. */ -static void savageDDColorMask_s4(GLcontext *ctx, +static void savageDDColorMask_s4(struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -855,7 +855,7 @@ static void savageDDColorMask_s4(GLcontext *ctx, imesa->dirty |= SAVAGE_UPLOAD_LOCAL; } } -static void savageDDColorMask_s3d(GLcontext *ctx, +static void savageDDColorMask_s3d(struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -865,7 +865,7 @@ static void savageDDColorMask_s3d(GLcontext *ctx, FALLBACK (ctx, SAVAGE_FALLBACK_COLORMASK, !(r && g && b)); } -static void savageUpdateSpecular_s4(GLcontext *ctx) { +static void savageUpdateSpecular_s4(struct gl_context *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); uint32_t drawLocalCtrl = imesa->regs.s4.drawLocalCtrl.ui; @@ -879,7 +879,7 @@ static void savageUpdateSpecular_s4(GLcontext *ctx) { imesa->dirty |= SAVAGE_UPLOAD_LOCAL; } -static void savageUpdateSpecular_s3d(GLcontext *ctx) { +static void savageUpdateSpecular_s3d(struct gl_context *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); uint32_t drawCtrl = imesa->regs.s3d.drawCtrl.ui; @@ -893,18 +893,18 @@ static void savageUpdateSpecular_s3d(GLcontext *ctx) { imesa->dirty |= SAVAGE_UPLOAD_LOCAL; } -static void savageDDLightModelfv_s4(GLcontext *ctx, GLenum pname, +static void savageDDLightModelfv_s4(struct gl_context *ctx, GLenum pname, const GLfloat *param) { savageUpdateSpecular_s4 (ctx); } -static void savageDDLightModelfv_s3d(GLcontext *ctx, GLenum pname, +static void savageDDLightModelfv_s3d(struct gl_context *ctx, GLenum pname, const GLfloat *param) { savageUpdateSpecular_s3d (ctx); } -static void savageDDShadeModel_s4(GLcontext *ctx, GLuint mod) +static void savageDDShadeModel_s4(struct gl_context *ctx, GLuint mod) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); uint32_t drawLocalCtrl = imesa->regs.s4.drawLocalCtrl.ui; @@ -921,7 +921,7 @@ static void savageDDShadeModel_s4(GLcontext *ctx, GLuint mod) if (drawLocalCtrl != imesa->regs.s4.drawLocalCtrl.ui) imesa->dirty |= SAVAGE_UPLOAD_LOCAL; } -static void savageDDShadeModel_s3d(GLcontext *ctx, GLuint mod) +static void savageDDShadeModel_s3d(struct gl_context *ctx, GLuint mod) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); uint32_t drawCtrl = imesa->regs.s3d.drawCtrl.ui; @@ -946,7 +946,7 @@ static void savageDDShadeModel_s3d(GLcontext *ctx, GLuint mod) * on savage3d and savage4. No need for two separate functions. */ -static void savageDDFogfv(GLcontext *ctx, GLenum pname, const GLfloat *param) +static void savageDDFogfv(struct gl_context *ctx, GLenum pname, const GLfloat *param) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); GLuint fogClr; @@ -977,7 +977,7 @@ static void savageDDFogfv(GLcontext *ctx, GLenum pname, const GLfloat *param) static void -savageDDStencilFuncSeparate(GLcontext *ctx, GLenum face, GLenum func, +savageDDStencilFuncSeparate(struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1010,7 +1010,7 @@ savageDDStencilFuncSeparate(GLcontext *ctx, GLenum face, GLenum func, } static void -savageDDStencilMaskSeparate(GLcontext *ctx, GLenum face, GLuint mask) +savageDDStencilMaskSeparate(struct gl_context *ctx, GLenum face, GLuint mask) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1039,7 +1039,7 @@ static unsigned get_stencil_op_value( GLenum op ) } static void -savageDDStencilOpSeparate(GLcontext *ctx, GLenum face, GLenum fail, +savageDDStencilOpSeparate(struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1057,7 +1057,7 @@ savageDDStencilOpSeparate(GLcontext *ctx, GLenum face, GLenum fail, /* ============================================================= */ -static void savageDDEnable_s4(GLcontext *ctx, GLenum cap, GLboolean state) +static void savageDDEnable_s4(struct gl_context *ctx, GLenum cap, GLboolean state) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1148,7 +1148,7 @@ static void savageDDEnable_s4(GLcontext *ctx, GLenum cap, GLboolean state) ; } } -static void savageDDEnable_s3d(GLcontext *ctx, GLenum cap, GLboolean state) +static void savageDDEnable_s3d(struct gl_context *ctx, GLenum cap, GLboolean state) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1227,7 +1227,7 @@ static void savageDDEnable_s3d(GLcontext *ctx, GLenum cap, GLboolean state) } } -void savageDDUpdateHwState( GLcontext *ctx ) +void savageDDUpdateHwState( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1671,7 +1671,7 @@ void savageDDInitState( savageContextPtr imesa ) { NEW_TEXTURE_MATRIX|\ NEW_USER_CLIP|NEW_CLIENT_STATE)) -static void savageDDInvalidateState( GLcontext *ctx, GLuint new_state ) +static void savageDDInvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -1681,7 +1681,7 @@ static void savageDDInvalidateState( GLcontext *ctx, GLuint new_state ) } -void savageDDInitStateFuncs(GLcontext *ctx) +void savageDDInitStateFuncs(struct gl_context *ctx) { ctx->Driver.UpdateState = savageDDInvalidateState; ctx->Driver.BlendEquationSeparate = savageDDBlendEquationSeparate; diff --git a/src/mesa/drivers/dri/savage/savagestate.h b/src/mesa/drivers/dri/savage/savagestate.h index 5fe718d7a6..dca4fd0c01 100644 --- a/src/mesa/drivers/dri/savage/savagestate.h +++ b/src/mesa/drivers/dri/savage/savagestate.h @@ -28,14 +28,14 @@ #include "savagecontext.h" -void savageCalcViewport( GLcontext *ctx ); +void savageCalcViewport( struct gl_context *ctx ); void savageEmitOldState( savageContextPtr imesa ); void savageEmitChangedState( savageContextPtr imesa ); -extern void savageDDUpdateHwState( GLcontext *ctx ); +extern void savageDDUpdateHwState( struct gl_context *ctx ); extern void savageDDInitState( savageContextPtr imesa ); -extern void savageDDInitStateFuncs( GLcontext *ctx ); -extern void savageDDRenderStart(GLcontext *ctx); -extern void savageDDRenderEnd(GLcontext *ctx); +extern void savageDDInitStateFuncs( struct gl_context *ctx ); +extern void savageDDRenderStart(struct gl_context *ctx); +extern void savageDDRenderEnd(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/dri/savage/savagetex.c b/src/mesa/drivers/dri/savage/savagetex.c index 89090da5c6..3aece732c9 100644 --- a/src/mesa/drivers/dri/savage/savagetex.c +++ b/src/mesa/drivers/dri/savage/savagetex.c @@ -649,7 +649,7 @@ _savage_texstore_a1118888(TEXSTORE_PARAMS) /* Called by the _mesa_store_teximage[123]d() functions. */ static gl_format -savageChooseTextureFormat( GLcontext *ctx, GLint internalFormat, +savageChooseTextureFormat( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1148,7 +1148,7 @@ savage4_set_filter_mode( savageContextPtr imesa, unsigned unit, } -static void savageUpdateTex0State_s4( GLcontext *ctx ) +static void savageUpdateTex0State_s4( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); struct gl_texture_object *tObj; @@ -1392,7 +1392,7 @@ static void savageUpdateTex0State_s4( GLcontext *ctx ) return; } -static void savageUpdateTex1State_s4( GLcontext *ctx ) +static void savageUpdateTex1State_s4( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); struct gl_texture_object *tObj; @@ -1575,7 +1575,7 @@ static void savageUpdateTex1State_s4( GLcontext *ctx ) if(t->base.heap->heapId == SAVAGE_AGP_HEAP) imesa->regs.s4.texAddr[1].ui |= 0x1; } -static void savageUpdateTexState_s3d( GLcontext *ctx ) +static void savageUpdateTexState_s3d( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); struct gl_texture_object *tObj; @@ -1746,7 +1746,7 @@ static void savageTimestampTextures( savageContextPtr imesa ) } -static void savageUpdateTextureState_s4( GLcontext *ctx ) +static void savageUpdateTextureState_s4( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1771,7 +1771,7 @@ static void savageUpdateTextureState_s4( GLcontext *ctx ) imesa->dirty |= (SAVAGE_UPLOAD_TEX0 | SAVAGE_UPLOAD_TEX1); } -static void savageUpdateTextureState_s3d( GLcontext *ctx ) +static void savageUpdateTextureState_s3d( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1789,7 +1789,7 @@ static void savageUpdateTextureState_s3d( GLcontext *ctx ) savageUpdateTexState_s3d( ctx ); imesa->dirty |= (SAVAGE_UPLOAD_TEX0); } -void savageUpdateTextureState( GLcontext *ctx) +void savageUpdateTextureState( struct gl_context *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); FALLBACK (ctx, SAVAGE_FALLBACK_TEXTURE, GL_FALSE); @@ -1806,7 +1806,7 @@ void savageUpdateTextureState( GLcontext *ctx) * DRIVER functions *****************************************/ -static void savageTexEnv( GLcontext *ctx, GLenum target, +static void savageTexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); @@ -1847,7 +1847,7 @@ static void savageTexImageChanged (savageTexObjPtr t) { } } -static void savageTexImage1D( GLcontext *ctx, GLenum target, GLint level, +static void savageTexImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -1872,7 +1872,7 @@ static void savageTexImage1D( GLcontext *ctx, GLenum target, GLint level, SAVAGE_CONTEXT(ctx)->new_state |= SAVAGE_NEW_TEXTURE; } -static void savageTexSubImage1D( GLcontext *ctx, +static void savageTexSubImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -1904,7 +1904,7 @@ static void savageTexSubImage1D( GLcontext *ctx, SAVAGE_CONTEXT(ctx)->new_state |= SAVAGE_NEW_TEXTURE; } -static void savageTexImage2D( GLcontext *ctx, GLenum target, GLint level, +static void savageTexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -1929,7 +1929,7 @@ static void savageTexImage2D( GLcontext *ctx, GLenum target, GLint level, SAVAGE_CONTEXT(ctx)->new_state |= SAVAGE_NEW_TEXTURE; } -static void savageTexSubImage2D( GLcontext *ctx, +static void savageTexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -1962,7 +1962,7 @@ static void savageTexSubImage2D( GLcontext *ctx, } static void -savageCompressedTexImage2D( GLcontext *ctx, GLenum target, GLint level, +savageCompressedTexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -1987,7 +1987,7 @@ savageCompressedTexImage2D( GLcontext *ctx, GLenum target, GLint level, } static void -savageCompressedTexSubImage2D( GLcontext *ctx, +savageCompressedTexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -2018,7 +2018,7 @@ savageCompressedTexSubImage2D( GLcontext *ctx, SAVAGE_CONTEXT(ctx)->new_state |= SAVAGE_NEW_TEXTURE; } -static void savageTexParameter( GLcontext *ctx, GLenum target, +static void savageTexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj, GLenum pname, const GLfloat *params ) { @@ -2050,7 +2050,7 @@ static void savageTexParameter( GLcontext *ctx, GLenum target, imesa->new_state |= SAVAGE_NEW_TEXTURE; } -static void savageBindTexture( GLcontext *ctx, GLenum target, +static void savageBindTexture( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj ) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); @@ -2061,7 +2061,7 @@ static void savageBindTexture( GLcontext *ctx, GLenum target, imesa->new_state |= SAVAGE_NEW_TEXTURE; } -static void savageDeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj ) +static void savageDeleteTexture( struct gl_context *ctx, struct gl_texture_object *tObj ) { driTextureObject *t = (driTextureObject *)tObj->DriverData; savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); @@ -2078,7 +2078,7 @@ static void savageDeleteTexture( GLcontext *ctx, struct gl_texture_object *tObj static struct gl_texture_object * -savageNewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +savageNewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; obj = _mesa_new_texture_object(ctx, name, target); diff --git a/src/mesa/drivers/dri/savage/savagetex.h b/src/mesa/drivers/dri/savage/savagetex.h index e5f8a80f85..6108c1aade 100644 --- a/src/mesa/drivers/dri/savage/savagetex.h +++ b/src/mesa/drivers/dri/savage/savagetex.h @@ -75,7 +75,7 @@ typedef struct { #define __HWParseTexEnvCombine(imesa, flag0, TexCtrl, TexBlendCtrl) -void savageUpdateTextureState( GLcontext *ctx ); +void savageUpdateTextureState( struct gl_context *ctx ); void savageDDInitTextureFuncs( struct dd_function_table *functions ); void savageDestroyTexObj( savageContextPtr imesa, savageTexObjPtr t ); diff --git a/src/mesa/drivers/dri/savage/savagetris.c b/src/mesa/drivers/dri/savage/savagetris.c index 0050485e31..79a951147f 100644 --- a/src/mesa/drivers/dri/savage/savagetris.c +++ b/src/mesa/drivers/dri/savage/savagetris.c @@ -53,8 +53,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "savagetex.h" #include "savageioctl.h" -static void savageRasterPrimitive( GLcontext *ctx, GLuint prim ); -static void savageRenderPrimitive( GLcontext *ctx, GLenum prim ); +static void savageRasterPrimitive( struct gl_context *ctx, GLuint prim ); +static void savageRenderPrimitive( struct gl_context *ctx, GLenum prim ); static GLenum reduced_prim[GL_POLYGON+1] = { @@ -562,7 +562,7 @@ savage_fallback_tri( savageContextPtr imesa, savageVertexPtr v1, savageVertexPtr v2 ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; SWvertex v[3]; FLUSH_BATCH(imesa); WAIT_IDLE_EMPTY(imesa); @@ -578,7 +578,7 @@ savage_fallback_line( savageContextPtr imesa, savageVertexPtr v0, savageVertexPtr v1 ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; SWvertex v[2]; FLUSH_BATCH(imesa); WAIT_IDLE_EMPTY(imesa); @@ -592,7 +592,7 @@ static void savage_fallback_point( savageContextPtr imesa, savageVertexPtr v0 ) { - GLcontext *ctx = imesa->glCtx; + struct gl_context *ctx = imesa->glCtx; SWvertex v[1]; FLUSH_BATCH(imesa); WAIT_IDLE_EMPTY(imesa); @@ -645,7 +645,7 @@ savage_fallback_point( savageContextPtr imesa, /* Render clipped primitives */ /**********************************************************************/ -static void savageRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void savageRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -661,13 +661,13 @@ static void savageRenderClippedPoly( GLcontext *ctx, const GLuint *elts, } } -static void savageRenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +static void savageRenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); } /* -static void savageFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void savageFastRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { r128ContextPtr rmesa = R128_CONTEXT( ctx ); @@ -711,7 +711,7 @@ static void savageFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, #define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED) -static void savageChooseRenderState(GLcontext *ctx) +static void savageChooseRenderState(struct gl_context *ctx) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); GLuint flags = ctx->_TriangleCaps; @@ -781,7 +781,7 @@ static void savageChooseRenderState(GLcontext *ctx) /* Validate state at pipeline start */ /**********************************************************************/ -static void savageRunPipeline( GLcontext *ctx ) +static void savageRunPipeline( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -829,7 +829,7 @@ static void savageRunPipeline( GLcontext *ctx ) * primitives. */ -static void savageRasterPrimitive( GLcontext *ctx, GLuint prim ) +static void savageRasterPrimitive( struct gl_context *ctx, GLuint prim ) { savageContextPtr imesa = SAVAGE_CONTEXT( ctx ); @@ -851,7 +851,7 @@ static void savageRasterPrimitive( GLcontext *ctx, GLuint prim ) #endif } -static void savageRenderPrimitive( GLcontext *ctx, GLenum prim ) +static void savageRenderPrimitive( struct gl_context *ctx, GLenum prim ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); GLuint rprim = reduced_prim[prim]; @@ -870,7 +870,7 @@ static void savageRenderPrimitive( GLcontext *ctx, GLenum prim ) * them. Fallback to swrast we can't. Returns GL_TRUE if projective * texture coordinates must be faked, GL_FALSE otherwise. */ -static GLboolean savageCheckPTexHack( GLcontext *ctx ) +static GLboolean savageCheckPTexHack( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -933,7 +933,7 @@ do { \ #define SAVAGE_EMIT_ST1 0x0300 -static INLINE GLuint savageChooseVertexFormat_s3d( GLcontext *ctx ) +static INLINE GLuint savageChooseVertexFormat_s3d( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -996,7 +996,7 @@ static INLINE GLuint savageChooseVertexFormat_s3d( GLcontext *ctx ) } -static INLINE GLuint savageChooseVertexFormat_s4( GLcontext *ctx ) +static INLINE GLuint savageChooseVertexFormat_s4( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -1121,7 +1121,7 @@ static INLINE GLuint savageChooseVertexFormat_s4( GLcontext *ctx ) } -static void savageRenderStart( GLcontext *ctx ) +static void savageRenderStart( struct gl_context *ctx ) { savageContextPtr imesa = SAVAGE_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -1199,7 +1199,7 @@ static void savageRenderStart( GLcontext *ctx ) } } -static void savageRenderFinish( GLcontext *ctx ) +static void savageRenderFinish( struct gl_context *ctx ) { /* Flush the last primitive now, before any state is changed. */ savageFlushVertices(SAVAGE_CONTEXT(ctx)); @@ -1227,7 +1227,7 @@ static const char * const fallbackStrings[] = { "Projective texture", }; -void savageFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void savageFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { TNLcontext *tnl = TNL_CONTEXT(ctx); savageContextPtr imesa = SAVAGE_CONTEXT(ctx); @@ -1279,7 +1279,7 @@ void savageFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) /* Initialization. */ /**********************************************************************/ -void savageInitTriFuncs( GLcontext *ctx ) +void savageInitTriFuncs( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); static int firsttime = 1; diff --git a/src/mesa/drivers/dri/savage/savagetris.h b/src/mesa/drivers/dri/savage/savagetris.h index a2a9375ed5..5dcae78f76 100644 --- a/src/mesa/drivers/dri/savage/savagetris.h +++ b/src/mesa/drivers/dri/savage/savagetris.h @@ -38,10 +38,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/mtypes.h" -extern void savageInitTriFuncs( GLcontext *ctx ); +extern void savageInitTriFuncs( struct gl_context *ctx ); -extern void savageFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void savageFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( ctx, bit, mode ) savageFallback( ctx, bit, mode ) diff --git a/src/mesa/drivers/dri/sis/sis6326_clear.c b/src/mesa/drivers/dri/sis/sis6326_clear.c index d46ecc9cd2..fba6c7f2d7 100644 --- a/src/mesa/drivers/dri/sis/sis6326_clear.c +++ b/src/mesa/drivers/dri/sis/sis6326_clear.c @@ -34,11 +34,11 @@ #include "swrast/swrast.h" #include "main/macros.h" -static void sis_clear_front_buffer(GLcontext *ctx, GLenum mask, GLint x, +static void sis_clear_front_buffer(struct gl_context *ctx, GLenum mask, GLint x, GLint y, GLint width, GLint height); -static void sis_clear_back_buffer(GLcontext *ctx, GLenum mask, GLint x, +static void sis_clear_back_buffer(struct gl_context *ctx, GLenum mask, GLint x, GLint y, GLint width, GLint height); -static void sis_clear_z_buffer(GLcontext * ctx, GLbitfield mask, GLint x, +static void sis_clear_z_buffer(struct gl_context * ctx, GLbitfield mask, GLint x, GLint y, GLint width, GLint height ); static void @@ -69,7 +69,7 @@ sis6326UpdateZPattern(sisContextPtr smesa, GLclampd z) } void -sis6326DDClear(GLcontext *ctx, GLbitfield mask) +sis6326DDClear(struct gl_context *ctx, GLbitfield mask) { sisContextPtr smesa = SIS_CONTEXT(ctx); GLint x1, y1, width1, height1; @@ -114,7 +114,7 @@ sis6326DDClear(GLcontext *ctx, GLbitfield mask) void -sis6326DDClearColor(GLcontext *ctx, const GLfloat color[4]) +sis6326DDClearColor(struct gl_context *ctx, const GLfloat color[4]) { sisContextPtr smesa = SIS_CONTEXT(ctx); GLubyte c[4]; @@ -128,7 +128,7 @@ sis6326DDClearColor(GLcontext *ctx, const GLfloat color[4]) } void -sis6326DDClearDepth(GLcontext *ctx, GLclampd d) +sis6326DDClearDepth(struct gl_context *ctx, GLclampd d) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -136,7 +136,7 @@ sis6326DDClearDepth(GLcontext *ctx, GLclampd d) } static void -sis_clear_back_buffer(GLcontext *ctx, GLenum mask, GLint x, GLint y, +sis_clear_back_buffer(struct gl_context *ctx, GLenum mask, GLint x, GLint y, GLint width, GLint height) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -160,7 +160,7 @@ sis_clear_back_buffer(GLcontext *ctx, GLenum mask, GLint x, GLint y, } static void -sis_clear_front_buffer(GLcontext *ctx, GLenum mask, GLint x, GLint y, +sis_clear_front_buffer(struct gl_context *ctx, GLenum mask, GLint x, GLint y, GLint width, GLint height) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -211,7 +211,7 @@ sis_clear_front_buffer(GLcontext *ctx, GLenum mask, GLint x, GLint y, } static void -sis_clear_z_buffer(GLcontext * ctx, GLbitfield mask, GLint x, GLint y, +sis_clear_z_buffer(struct gl_context * ctx, GLbitfield mask, GLint x, GLint y, GLint width, GLint height) { sisContextPtr smesa = SIS_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/sis/sis6326_state.c b/src/mesa/drivers/dri/sis/sis6326_state.c index 52008c7ea3..9708f63912 100644 --- a/src/mesa/drivers/dri/sis/sis6326_state.c +++ b/src/mesa/drivers/dri/sis/sis6326_state.c @@ -46,7 +46,7 @@ */ static void -sis6326DDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) +sis6326DDAlphaFunc( struct gl_context *ctx, GLenum func, GLfloat ref ) { sisContextPtr smesa = SIS_CONTEXT(ctx); GLubyte refbyte; @@ -91,7 +91,7 @@ sis6326DDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) } static void -sis6326DDBlendFuncSeparate( GLcontext *ctx, +sis6326DDBlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -172,7 +172,7 @@ sis6326DDBlendFuncSeparate( GLcontext *ctx, */ static void -sis6326DDDepthFunc( GLcontext *ctx, GLenum func ) +sis6326DDDepthFunc( struct gl_context *ctx, GLenum func ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *prev = &smesa->prev; @@ -214,7 +214,7 @@ sis6326DDDepthFunc( GLcontext *ctx, GLenum func ) } static void -sis6326DDDepthMask( GLcontext *ctx, GLboolean flag ) +sis6326DDDepthMask( struct gl_context *ctx, GLboolean flag ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *current = &smesa->current; @@ -230,7 +230,7 @@ sis6326DDDepthMask( GLcontext *ctx, GLboolean flag ) */ static void -sis6326DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *params ) +sis6326DDFogfv( struct gl_context *ctx, GLenum pname, const GLfloat *params ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *current = &smesa->current; @@ -258,7 +258,7 @@ sis6326DDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *params ) */ void -sis6326UpdateClipping(GLcontext *ctx) +sis6326UpdateClipping(struct gl_context *ctx) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -300,7 +300,7 @@ sis6326UpdateClipping(GLcontext *ctx) } static void -sis6326DDScissor( GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) +sis6326DDScissor( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { if (ctx->Scissor.Enabled) sis6326UpdateClipping( ctx ); @@ -311,20 +311,20 @@ sis6326DDScissor( GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) */ static void -sis6326UpdateCull( GLcontext *ctx ) +sis6326UpdateCull( struct gl_context *ctx ) { /* XXX culling */ } static void -sis6326DDCullFace( GLcontext *ctx, GLenum mode ) +sis6326DDCullFace( struct gl_context *ctx, GLenum mode ) { sis6326UpdateCull( ctx ); } static void -sis6326DDFrontFace( GLcontext *ctx, GLenum mode ) +sis6326DDFrontFace( struct gl_context *ctx, GLenum mode ) { sis6326UpdateCull( ctx ); } @@ -333,7 +333,7 @@ sis6326DDFrontFace( GLcontext *ctx, GLenum mode ) * Masks */ -static void sis6326DDColorMask( GLcontext *ctx, +static void sis6326DDColorMask( struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -350,7 +350,7 @@ static void sis6326DDColorMask( GLcontext *ctx, * Rendering attributes */ -static void sis6326UpdateSpecular(GLcontext *ctx) +static void sis6326UpdateSpecular(struct gl_context *ctx) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *current = &smesa->current; @@ -361,14 +361,14 @@ static void sis6326UpdateSpecular(GLcontext *ctx) current->hwCapEnable &= ~S_ENABLE_Specular; } -static void sis6326DDLightModelfv(GLcontext *ctx, GLenum pname, +static void sis6326DDLightModelfv(struct gl_context *ctx, GLenum pname, const GLfloat *param) { if (pname == GL_LIGHT_MODEL_COLOR_CONTROL) { sis6326UpdateSpecular(ctx); } } -static void sis6326DDShadeModel( GLcontext *ctx, GLenum mode ) +static void sis6326DDShadeModel( struct gl_context *ctx, GLenum mode ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -384,7 +384,7 @@ static void sis6326DDShadeModel( GLcontext *ctx, GLenum mode ) * Viewport */ -static void sis6326CalcViewport( GLcontext *ctx ) +static void sis6326CalcViewport( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -400,14 +400,14 @@ static void sis6326CalcViewport( GLcontext *ctx ) m[MAT_TZ] = v[MAT_TZ] * smesa->depth_scale; } -static void sis6326DDViewport( GLcontext *ctx, +static void sis6326DDViewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { sis6326CalcViewport( ctx ); } -static void sis6326DDDepthRange( GLcontext *ctx, +static void sis6326DDDepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { sis6326CalcViewport( ctx ); @@ -418,7 +418,7 @@ static void sis6326DDDepthRange( GLcontext *ctx, */ static void -sis6326DDLogicOpCode( GLcontext *ctx, GLenum opcode ) +sis6326DDLogicOpCode( struct gl_context *ctx, GLenum opcode ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -487,7 +487,7 @@ sis6326DDLogicOpCode( GLcontext *ctx, GLenum opcode ) } } -void sis6326DDDrawBuffer( GLcontext *ctx, GLenum mode ) +void sis6326DDDrawBuffer( struct gl_context *ctx, GLenum mode ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -544,7 +544,7 @@ void sis6326DDDrawBuffer( GLcontext *ctx, GLenum mode ) */ static void -sis6326DDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) +sis6326DDEnable( struct gl_context *ctx, GLenum cap, GLboolean state ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -617,7 +617,7 @@ sis6326DDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) /* Called before beginning of rendering. */ void -sis6326UpdateHWState( GLcontext *ctx ) +sis6326UpdateHWState( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *prev = &smesa->prev; @@ -639,7 +639,7 @@ sis6326UpdateHWState( GLcontext *ctx ) } static void -sis6326DDInvalidateState( GLcontext *ctx, GLuint new_state ) +sis6326DDInvalidateState( struct gl_context *ctx, GLuint new_state ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -656,7 +656,7 @@ void sis6326DDInitState( sisContextPtr smesa ) { __GLSiSHardware *prev = &smesa->prev; __GLSiSHardware *current = &smesa->current; - GLcontext *ctx = smesa->glCtx; + struct gl_context *ctx = smesa->glCtx; /* add Texture Perspective Enable */ current->hwCapEnable = S_ENABLE_TextureCache | @@ -708,7 +708,7 @@ void sis6326DDInitState( sisContextPtr smesa ) /* Initialize the driver's state functions. */ -void sis6326DDInitStateFuncs( GLcontext *ctx ) +void sis6326DDInitStateFuncs( struct gl_context *ctx ) { ctx->Driver.UpdateState = sis6326DDInvalidateState; diff --git a/src/mesa/drivers/dri/sis/sis_clear.c b/src/mesa/drivers/dri/sis/sis_clear.c index d358ef62dc..a5d870469d 100644 --- a/src/mesa/drivers/dri/sis/sis_clear.c +++ b/src/mesa/drivers/dri/sis/sis_clear.c @@ -38,12 +38,12 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "swrast/swrast.h" #include "main/macros.h" -static GLbitfield sis_3D_Clear( GLcontext * ctx, GLbitfield mask, +static GLbitfield sis_3D_Clear( struct gl_context * ctx, GLbitfield mask, GLint x, GLint y, GLint width, GLint height ); -static void sis_clear_color_buffer( GLcontext *ctx, GLenum mask, GLint x, +static void sis_clear_color_buffer( struct gl_context *ctx, GLenum mask, GLint x, GLint y, GLint width, GLint height ); -static void sis_clear_z_stencil_buffer( GLcontext * ctx, +static void sis_clear_z_stencil_buffer( struct gl_context * ctx, GLbitfield mask, GLint x, GLint y, GLint width, GLint height ); @@ -94,7 +94,7 @@ sisUpdateZStencilPattern( sisContextPtr smesa, GLclampd z, GLint stencil ) } void -sisDDClear( GLcontext * ctx, GLbitfield mask ) +sisDDClear( struct gl_context * ctx, GLbitfield mask ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -148,7 +148,7 @@ sisDDClear( GLcontext * ctx, GLbitfield mask ) void -sisDDClearColor( GLcontext * ctx, const GLfloat color[4] ) +sisDDClearColor( struct gl_context * ctx, const GLfloat color[4] ) { sisContextPtr smesa = SIS_CONTEXT(ctx); GLubyte c[4]; @@ -162,7 +162,7 @@ sisDDClearColor( GLcontext * ctx, const GLfloat color[4] ) } void -sisDDClearDepth( GLcontext * ctx, GLclampd d ) +sisDDClearDepth( struct gl_context * ctx, GLclampd d ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -170,7 +170,7 @@ sisDDClearDepth( GLcontext * ctx, GLclampd d ) } void -sisDDClearStencil( GLcontext * ctx, GLint s ) +sisDDClearStencil( struct gl_context * ctx, GLint s ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -178,7 +178,7 @@ sisDDClearStencil( GLcontext * ctx, GLint s ) } static GLbitfield -sis_3D_Clear( GLcontext * ctx, GLbitfield mask, +sis_3D_Clear( struct gl_context * ctx, GLbitfield mask, GLint x, GLint y, GLint width, GLint height ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -323,7 +323,7 @@ sis_3D_Clear( GLcontext * ctx, GLbitfield mask, } static void -sis_clear_color_buffer( GLcontext *ctx, GLenum mask, GLint x, GLint y, +sis_clear_color_buffer( struct gl_context *ctx, GLenum mask, GLint x, GLint y, GLint width, GLint height ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -389,7 +389,7 @@ sis_clear_color_buffer( GLcontext *ctx, GLenum mask, GLint x, GLint y, } static void -sis_clear_z_stencil_buffer( GLcontext * ctx, GLbitfield mask, +sis_clear_z_stencil_buffer( struct gl_context * ctx, GLbitfield mask, GLint x, GLint y, GLint width, GLint height ) { sisContextPtr smesa = SIS_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/sis/sis_context.c b/src/mesa/drivers/dri/sis/sis_context.c index 85f26a08b7..c5a9fdfb2a 100644 --- a/src/mesa/drivers/dri/sis/sis_context.c +++ b/src/mesa/drivers/dri/sis/sis_context.c @@ -147,7 +147,7 @@ WaitingFor3dIdle(sisContextPtr smesa, int wLen) } } -void sisReAllocateBuffers(GLcontext *ctx, GLframebuffer *drawbuffer, +void sisReAllocateBuffers(struct gl_context *ctx, struct gl_framebuffer *drawbuffer, GLuint width, GLuint height) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -159,11 +159,11 @@ void sisReAllocateBuffers(GLcontext *ctx, GLframebuffer *drawbuffer, GLboolean sisCreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate ) { - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; __DRIscreen *sPriv = driContextPriv->driScreenPriv; sisContextPtr smesa; sisScreenPtr sisScreen; @@ -381,8 +381,8 @@ sisMakeCurrent( __DRIcontext *driContextPriv, newSisCtx->driDrawable = driDrawPriv; - drawBuffer = (GLframebuffer *)driDrawPriv->driverPrivate; - readBuffer = (GLframebuffer *)driReadPriv->driverPrivate; + drawBuffer = (struct gl_framebuffer *)driDrawPriv->driverPrivate; + readBuffer = (struct gl_framebuffer *)driReadPriv->driverPrivate; _mesa_make_current( newSisCtx->glCtx, drawBuffer, readBuffer ); diff --git a/src/mesa/drivers/dri/sis/sis_context.h b/src/mesa/drivers/dri/sis/sis_context.h index 132cee33ee..a82a659431 100644 --- a/src/mesa/drivers/dri/sis/sis_context.h +++ b/src/mesa/drivers/dri/sis/sis_context.h @@ -256,7 +256,7 @@ struct sis_renderbuffer { struct sis_context { /* This must be first in this structure */ - GLcontext *glCtx; + struct gl_context *glCtx; /* Vertex state */ GLuint vertex_size; @@ -439,12 +439,12 @@ enum _sis_verbose { }; extern GLboolean sisCreateContext( gl_api api, - const __GLcontextModes *glVisual, + const struct gl_config *glVisual, __DRIcontext *driContextPriv, void *sharedContextPrivate ); extern void sisDestroyContext( __DRIcontext * ); -void sisReAllocateBuffers(GLcontext *ctx, GLframebuffer *drawbuffer, +void sisReAllocateBuffers(struct gl_context *ctx, struct gl_framebuffer *drawbuffer, GLuint width, GLuint height); extern GLboolean sisMakeCurrent( __DRIcontext *driContextPriv, diff --git a/src/mesa/drivers/dri/sis/sis_dd.c b/src/mesa/drivers/dri/sis/sis_dd.c index fe4ade8592..90e894b842 100644 --- a/src/mesa/drivers/dri/sis/sis_dd.c +++ b/src/mesa/drivers/dri/sis/sis_dd.c @@ -50,7 +50,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* Return the width and height of the given buffer. */ static void -sisGetBufferSize( GLframebuffer *buffer, +sisGetBufferSize( struct gl_framebuffer *buffer, GLuint *width, GLuint *height ) { GET_CURRENT_CONTEXT(ctx); @@ -65,7 +65,7 @@ sisGetBufferSize( GLframebuffer *buffer, /* Return various strings for glGetString(). */ static const GLubyte * -sisGetString( GLcontext *ctx, GLenum name ) +sisGetString( struct gl_context *ctx, GLenum name ) { sisContextPtr smesa = SIS_CONTEXT(ctx); static char buffer[128]; @@ -90,7 +90,7 @@ sisGetString( GLcontext *ctx, GLenum name ) /* Send all commands to the hardware. */ static void -sisFlush( GLcontext *ctx ) +sisFlush( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -101,7 +101,7 @@ sisFlush( GLcontext *ctx ) * completed processing. */ static void -sisFinish( GLcontext *ctx ) +sisFinish( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -118,7 +118,7 @@ sisDeleteRenderbuffer(struct gl_renderbuffer *rb) } static GLboolean -sisRenderbufferStorage(GLcontext *ctx, struct gl_renderbuffer *rb, +sisRenderbufferStorage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { rb->Width = width; diff --git a/src/mesa/drivers/dri/sis/sis_fog.c b/src/mesa/drivers/dri/sis/sis_fog.c index 6c774e010e..a9b84654a3 100644 --- a/src/mesa/drivers/dri/sis/sis_fog.c +++ b/src/mesa/drivers/dri/sis/sis_fog.c @@ -40,7 +40,7 @@ static GLint convertFtToFogFt( GLfloat dwInValue ); static GLint doFPtoFixedNoRound( GLfloat dwInValue, int nFraction ); void -sisDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *params ) +sisDDFogfv( struct gl_context *ctx, GLenum pname, const GLfloat *params ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *prev = &smesa->prev; diff --git a/src/mesa/drivers/dri/sis/sis_screen.c b/src/mesa/drivers/dri/sis/sis_screen.c index 80fb455ec7..75f6fcf211 100644 --- a/src/mesa/drivers/dri/sis/sis_screen.c +++ b/src/mesa/drivers/dri/sis/sis_screen.c @@ -193,7 +193,7 @@ sisDestroyScreen( __DRIscreen *sPriv ) static GLboolean sisCreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap ) { /*sisScreenPtr screen = (sisScreenPtr) driScrnPriv->private;*/ @@ -220,7 +220,7 @@ sisCreateBuffer( __DRIscreen *driScrnPriv, static void sisDestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } static void sisCopyBuffer( __DRIdrawable *dPriv ) @@ -262,7 +262,7 @@ sisSwapBuffers(__DRIdrawable *dPriv) { if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) { sisContextPtr smesa = (sisContextPtr) dPriv->driContextPriv->driverPrivate; - GLcontext *ctx = smesa->glCtx; + struct gl_context *ctx = smesa->glCtx; if (ctx->Visual.doubleBufferMode) { _mesa_notifySwapBuffers( ctx ); /* flush pending rendering comands */ @@ -280,7 +280,7 @@ sisSwapBuffers(__DRIdrawable *dPriv) * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig ** sisInitScreen(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/sis/sis_span.c b/src/mesa/drivers/dri/sis/sis_span.c index 008b00160e..01c1fc428d 100644 --- a/src/mesa/drivers/dri/sis/sis_span.c +++ b/src/mesa/drivers/dri/sis/sis_span.c @@ -143,7 +143,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. -void sisSpanRenderStart( GLcontext *ctx ) +void sisSpanRenderStart( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -152,7 +152,7 @@ void sisSpanRenderStart( GLcontext *ctx ) WaitEngIdle( smesa ); } -void sisSpanRenderFinish( GLcontext *ctx ) +void sisSpanRenderFinish( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -161,7 +161,7 @@ void sisSpanRenderFinish( GLcontext *ctx ) } void -sisDDInitSpanFuncs( GLcontext *ctx ) +sisDDInitSpanFuncs( struct gl_context *ctx ) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = sisSpanRenderStart; @@ -174,7 +174,7 @@ sisDDInitSpanFuncs( GLcontext *ctx ) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -sisSetSpanFunctions(struct sis_renderbuffer *srb, const GLvisual *vis) +sisSetSpanFunctions(struct sis_renderbuffer *srb, const struct gl_config *vis) { if (srb->Base.Format == MESA_FORMAT_RGB565) { sisInitPointers_RGB565( &srb->Base ); diff --git a/src/mesa/drivers/dri/sis/sis_span.h b/src/mesa/drivers/dri/sis/sis_span.h index a1f817c44c..cbe4bbdc55 100644 --- a/src/mesa/drivers/dri/sis/sis_span.h +++ b/src/mesa/drivers/dri/sis/sis_span.h @@ -34,12 +34,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "drirenderbuffer.h" -extern void sisSpanRenderStart( GLcontext *ctx ); -extern void sisSpanRenderFinish( GLcontext *ctx ); +extern void sisSpanRenderStart( struct gl_context *ctx ); +extern void sisSpanRenderFinish( struct gl_context *ctx ); -extern void sisDDInitSpanFuncs( GLcontext *ctx ); +extern void sisDDInitSpanFuncs( struct gl_context *ctx ); extern void -sisSetSpanFunctions(struct sis_renderbuffer *srb, const GLvisual *vis); +sisSetSpanFunctions(struct sis_renderbuffer *srb, const struct gl_config *vis); #endif diff --git a/src/mesa/drivers/dri/sis/sis_state.c b/src/mesa/drivers/dri/sis/sis_state.c index 6173231a82..e53c326441 100644 --- a/src/mesa/drivers/dri/sis/sis_state.c +++ b/src/mesa/drivers/dri/sis/sis_state.c @@ -49,7 +49,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. */ static void -sisDDAlphaFunc( GLcontext * ctx, GLenum func, GLfloat ref ) +sisDDAlphaFunc( struct gl_context * ctx, GLenum func, GLfloat ref ) { sisContextPtr smesa = SIS_CONTEXT(ctx); GLubyte refbyte; @@ -94,7 +94,7 @@ sisDDAlphaFunc( GLcontext * ctx, GLenum func, GLfloat ref ) } static void -sisDDBlendFuncSeparate( GLcontext *ctx, +sisDDBlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -193,7 +193,7 @@ sisDDBlendFuncSeparate( GLcontext *ctx, */ static void -sisDDDepthFunc( GLcontext * ctx, GLenum func ) +sisDDDepthFunc( struct gl_context * ctx, GLenum func ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *prev = &smesa->prev; @@ -235,7 +235,7 @@ sisDDDepthFunc( GLcontext * ctx, GLenum func ) } void -sisDDDepthMask( GLcontext * ctx, GLboolean flag ) +sisDDDepthMask( struct gl_context * ctx, GLboolean flag ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *prev = &smesa->prev; @@ -277,7 +277,7 @@ sisDDDepthMask( GLcontext * ctx, GLboolean flag ) */ void -sisUpdateClipping( GLcontext *ctx ) +sisUpdateClipping( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -324,7 +324,7 @@ sisUpdateClipping( GLcontext *ctx ) } static void -sisDDScissor( GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) +sisDDScissor( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { if (ctx->Scissor.Enabled) sisUpdateClipping( ctx ); @@ -335,7 +335,7 @@ sisDDScissor( GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) */ static void -sisUpdateCull( GLcontext *ctx ) +sisUpdateCull( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); GLint cullflag, frontface; @@ -356,13 +356,13 @@ sisUpdateCull( GLcontext *ctx ) static void -sisDDCullFace( GLcontext *ctx, GLenum mode ) +sisDDCullFace( struct gl_context *ctx, GLenum mode ) { sisUpdateCull( ctx ); } static void -sisDDFrontFace( GLcontext *ctx, GLenum mode ) +sisDDFrontFace( struct gl_context *ctx, GLenum mode ) { sisUpdateCull( ctx ); } @@ -371,7 +371,7 @@ sisDDFrontFace( GLcontext *ctx, GLenum mode ) * Masks */ -static void sisDDColorMask( GLcontext *ctx, +static void sisDDColorMask( struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -402,7 +402,7 @@ static void sisDDColorMask( GLcontext *ctx, * Rendering attributes */ -static void sisUpdateSpecular(GLcontext *ctx) +static void sisUpdateSpecular(struct gl_context *ctx) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *current = &smesa->current; @@ -413,7 +413,7 @@ static void sisUpdateSpecular(GLcontext *ctx) current->hwCapEnable &= ~MASK_SpecularEnable; } -static void sisDDLightModelfv(GLcontext *ctx, GLenum pname, +static void sisDDLightModelfv(struct gl_context *ctx, GLenum pname, const GLfloat *param) { if (pname == GL_LIGHT_MODEL_COLOR_CONTROL) { @@ -421,7 +421,7 @@ static void sisDDLightModelfv(GLcontext *ctx, GLenum pname, } } -static void sisDDShadeModel( GLcontext *ctx, GLenum mode ) +static void sisDDShadeModel( struct gl_context *ctx, GLenum mode ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -437,7 +437,7 @@ static void sisDDShadeModel( GLcontext *ctx, GLenum mode ) * Viewport */ -static void sisCalcViewport( GLcontext *ctx ) +static void sisCalcViewport( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -453,14 +453,14 @@ static void sisCalcViewport( GLcontext *ctx ) m[MAT_TZ] = v[MAT_TZ] * smesa->depth_scale; } -static void sisDDViewport( GLcontext *ctx, +static void sisDDViewport( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height ) { sisCalcViewport( ctx ); } -static void sisDDDepthRange( GLcontext *ctx, +static void sisDDDepthRange( struct gl_context *ctx, GLclampd nearval, GLclampd farval ) { sisCalcViewport( ctx ); @@ -471,7 +471,7 @@ static void sisDDDepthRange( GLcontext *ctx, */ static void -sisDDLogicOpCode( GLcontext *ctx, GLenum opcode ) +sisDDLogicOpCode( struct gl_context *ctx, GLenum opcode ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -537,7 +537,7 @@ sisDDLogicOpCode( GLcontext *ctx, GLenum opcode ) } } -void sisDDDrawBuffer( GLcontext *ctx, GLenum mode ) +void sisDDDrawBuffer( struct gl_context *ctx, GLenum mode ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *prev = &smesa->prev; @@ -589,7 +589,7 @@ void sisDDDrawBuffer( GLcontext *ctx, GLenum mode ) */ static void -sisDDEnable( GLcontext * ctx, GLenum cap, GLboolean state ) +sisDDEnable( struct gl_context * ctx, GLenum cap, GLboolean state ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -672,7 +672,7 @@ sisDDEnable( GLcontext * ctx, GLenum cap, GLboolean state ) /* Called before beginning of rendering. */ void -sisUpdateHWState( GLcontext *ctx ) +sisUpdateHWState( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); __GLSiSHardware *prev = &smesa->prev; @@ -698,7 +698,7 @@ sisUpdateHWState( GLcontext *ctx ) } static void -sisDDInvalidateState( GLcontext *ctx, GLuint new_state ) +sisDDInvalidateState( struct gl_context *ctx, GLuint new_state ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -715,7 +715,7 @@ void sisDDInitState( sisContextPtr smesa ) { __GLSiSHardware *current = &smesa->current; __GLSiSHardware *prev = &(smesa->prev); - GLcontext *ctx = smesa->glCtx; + struct gl_context *ctx = smesa->glCtx; /* add Texture Perspective Enable */ prev->hwCapEnable = MASK_FogPerspectiveEnable | MASK_TextureCacheEnable | @@ -826,7 +826,7 @@ void sisDDInitState( sisContextPtr smesa ) /* Initialize the driver's state functions. */ -void sisDDInitStateFuncs( GLcontext *ctx ) +void sisDDInitStateFuncs( struct gl_context *ctx ) { ctx->Driver.UpdateState = sisDDInvalidateState; diff --git a/src/mesa/drivers/dri/sis/sis_state.h b/src/mesa/drivers/dri/sis/sis_state.h index 2d0ea9c5fb..dcade4a979 100644 --- a/src/mesa/drivers/dri/sis/sis_state.h +++ b/src/mesa/drivers/dri/sis/sis_state.h @@ -34,35 +34,35 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "sis_context.h" /* sis6326_clear.c */ -extern void sis6326DDClear( GLcontext *ctx, GLbitfield mask ); -extern void sis6326DDClearColor( GLcontext * ctx, const GLfloat color[4] ); -extern void sis6326DDClearDepth( GLcontext * ctx, GLclampd d ); +extern void sis6326DDClear( struct gl_context *ctx, GLbitfield mask ); +extern void sis6326DDClearColor( struct gl_context * ctx, const GLfloat color[4] ); +extern void sis6326DDClearDepth( struct gl_context * ctx, GLclampd d ); extern void sis6326UpdateZPattern(sisContextPtr smesa, GLclampd z); /* sis_clear.c */ -extern void sisDDClear( GLcontext *ctx, GLbitfield mask ); -extern void sisDDClearColor( GLcontext * ctx, const GLfloat color[4] ); -extern void sisDDClearDepth( GLcontext * ctx, GLclampd d ); -extern void sisDDClearStencil( GLcontext * ctx, GLint s ); +extern void sisDDClear( struct gl_context *ctx, GLbitfield mask ); +extern void sisDDClearColor( struct gl_context * ctx, const GLfloat color[4] ); +extern void sisDDClearDepth( struct gl_context * ctx, GLclampd d ); +extern void sisDDClearStencil( struct gl_context * ctx, GLint s ); extern void sisUpdateZStencilPattern( sisContextPtr smesa, GLclampd z, int stencil ); /* sis_fog.c */ -extern void sisDDFogfv( GLcontext * ctx, GLenum pname, const GLfloat * params ); +extern void sisDDFogfv( struct gl_context * ctx, GLenum pname, const GLfloat * params ); /* sis6326_state.c */ extern void sis6326DDInitState( sisContextPtr smesa ); -extern void sis6326DDInitStateFuncs( GLcontext *ctx ); -extern void sis6326UpdateClipping( GLcontext * gc ); -extern void sis6326DDDrawBuffer( GLcontext *ctx, GLenum mode ); -extern void sis6326UpdateHWState( GLcontext *ctx ); +extern void sis6326DDInitStateFuncs( struct gl_context *ctx ); +extern void sis6326UpdateClipping( struct gl_context * gc ); +extern void sis6326DDDrawBuffer( struct gl_context *ctx, GLenum mode ); +extern void sis6326UpdateHWState( struct gl_context *ctx ); /* sis_state.c */ extern void sisDDInitState( sisContextPtr smesa ); -extern void sisDDInitStateFuncs( GLcontext *ctx ); -extern void sisDDDepthMask( GLcontext * ctx, GLboolean flag ); -extern void sisUpdateClipping( GLcontext * gc ); -extern void sisDDDrawBuffer( GLcontext *ctx, GLenum mode ); -extern void sisUpdateHWState( GLcontext *ctx ); +extern void sisDDInitStateFuncs( struct gl_context *ctx ); +extern void sisDDDepthMask( struct gl_context * ctx, GLboolean flag ); +extern void sisUpdateClipping( struct gl_context * gc ); +extern void sisDDDrawBuffer( struct gl_context *ctx, GLenum mode ); +extern void sisUpdateHWState( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/sis/sis_stencil.c b/src/mesa/drivers/dri/sis/sis_stencil.c index 55c0440eba..92eb08f31f 100644 --- a/src/mesa/drivers/dri/sis/sis_stencil.c +++ b/src/mesa/drivers/dri/sis/sis_stencil.c @@ -36,7 +36,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "sis_stencil.h" static void -sisDDStencilFuncSeparate( GLcontext * ctx, GLenum face, +sisDDStencilFuncSeparate( struct gl_context * ctx, GLenum face, GLenum func, GLint ref, GLuint mask ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -85,7 +85,7 @@ sisDDStencilFuncSeparate( GLcontext * ctx, GLenum face, } static void -sisDDStencilMaskSeparate( GLcontext * ctx, GLenum face, GLuint mask ) +sisDDStencilMaskSeparate( struct gl_context * ctx, GLenum face, GLuint mask ) { if (!ctx->Visual.stencilBits) return; @@ -95,7 +95,7 @@ sisDDStencilMaskSeparate( GLcontext * ctx, GLenum face, GLuint mask ) } static void -sisDDStencilOpSeparate( GLcontext * ctx, GLenum face, GLenum fail, +sisDDStencilOpSeparate( struct gl_context * ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -197,7 +197,7 @@ sisDDStencilOpSeparate( GLcontext * ctx, GLenum face, GLenum fail, } void -sisDDInitStencilFuncs( GLcontext *ctx ) +sisDDInitStencilFuncs( struct gl_context *ctx ) { ctx->Driver.StencilFuncSeparate = sisDDStencilFuncSeparate; ctx->Driver.StencilMaskSeparate = sisDDStencilMaskSeparate; diff --git a/src/mesa/drivers/dri/sis/sis_stencil.h b/src/mesa/drivers/dri/sis/sis_stencil.h index 6b556c4378..9d061e87fd 100644 --- a/src/mesa/drivers/dri/sis/sis_stencil.h +++ b/src/mesa/drivers/dri/sis/sis_stencil.h @@ -31,6 +31,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __SIS_STENCIL_H__ #define __SIS_STENCIL_H__ -extern void sisDDInitStencilFuncs( GLcontext *ctx ); +extern void sisDDInitStencilFuncs( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/sis/sis_tex.c b/src/mesa/drivers/dri/sis/sis_tex.c index 31709c3af6..bb4896d9bd 100644 --- a/src/mesa/drivers/dri/sis/sis_tex.c +++ b/src/mesa/drivers/dri/sis/sis_tex.c @@ -152,7 +152,7 @@ sisFreeTexImage( sisContextPtr smesa, sisTexObjPtr t, int level ) } static void -sisTexEnv( GLcontext *ctx, GLenum target, GLenum pname, const GLfloat *param ) +sisTexEnv( struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -160,7 +160,7 @@ sisTexEnv( GLcontext *ctx, GLenum target, GLenum pname, const GLfloat *param ) } static void -sisTexParameter( GLcontext *ctx, GLenum target, +sisTexParameter( struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params ) { @@ -170,7 +170,7 @@ sisTexParameter( GLcontext *ctx, GLenum target, } static void -sisBindTexture( GLcontext *ctx, GLenum target, +sisBindTexture( struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -194,7 +194,7 @@ sisBindTexture( GLcontext *ctx, GLenum target, } static void -sisDeleteTexture( GLcontext * ctx, struct gl_texture_object *texObj ) +sisDeleteTexture( struct gl_context * ctx, struct gl_texture_object *texObj ) { sisContextPtr smesa = SIS_CONTEXT(ctx); sisTexObjPtr t; @@ -220,14 +220,14 @@ sisDeleteTexture( GLcontext * ctx, struct gl_texture_object *texObj ) _mesa_delete_texture_object(ctx, texObj); } -static GLboolean sisIsTextureResident( GLcontext * ctx, +static GLboolean sisIsTextureResident( struct gl_context * ctx, struct gl_texture_object *texObj ) { return (texObj->DriverData != NULL); } static gl_format -sisChooseTextureFormat( GLcontext *ctx, GLint internalFormat, +sisChooseTextureFormat( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -352,7 +352,7 @@ sisChooseTextureFormat( GLcontext *ctx, GLint internalFormat, } } -static void sisTexImage1D( GLcontext *ctx, GLenum target, GLint level, +static void sisTexImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -389,7 +389,7 @@ static void sisTexImage1D( GLcontext *ctx, GLenum target, GLint level, } -static void sisTexSubImage1D( GLcontext *ctx, +static void sisTexSubImage1D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -439,7 +439,7 @@ static void sisTexSubImage1D( GLcontext *ctx, smesa->TexStates[ctx->Texture.CurrentUnit] |= NEW_TEXTURING; } -static void sisTexImage2D( GLcontext *ctx, GLenum target, GLint level, +static void sisTexImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -475,7 +475,7 @@ static void sisTexImage2D( GLcontext *ctx, GLenum target, GLint level, smesa->TexStates[ctx->Texture.CurrentUnit] |= NEW_TEXTURING; } -static void sisTexSubImage2D( GLcontext *ctx, +static void sisTexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -544,7 +544,7 @@ static void sisTexSubImage2D( GLcontext *ctx, * texture object from the core mesa gl_texture_object. Not done at this time. */ static struct gl_texture_object * -sisNewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +sisNewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; obj = _mesa_new_texture_object(ctx, name, target); diff --git a/src/mesa/drivers/dri/sis/sis_tex.h b/src/mesa/drivers/dri/sis/sis_tex.h index c499e80e86..f467b7dca9 100644 --- a/src/mesa/drivers/dri/sis/sis_tex.h +++ b/src/mesa/drivers/dri/sis/sis_tex.h @@ -32,6 +32,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define __SIS_TEX_H__ extern void sisInitTextureFuncs( struct dd_function_table *table ); -extern void sisUpdateTextureState( GLcontext *ctx ); +extern void sisUpdateTextureState( struct gl_context *ctx ); #endif /* __SIS_TEX_H__ */ diff --git a/src/mesa/drivers/dri/sis/sis_texstate.c b/src/mesa/drivers/dri/sis/sis_texstate.c index 7b0eebd066..daec239321 100644 --- a/src/mesa/drivers/dri/sis/sis_texstate.c +++ b/src/mesa/drivers/dri/sis/sis_texstate.c @@ -46,7 +46,7 @@ static GLint TransferTexturePitch (GLint dwPitch); /* Handle texenv stuff, called from validate_texture (renderstart) */ static void -sis_set_texture_env0( GLcontext *ctx, struct gl_texture_object *texObj, +sis_set_texture_env0( struct gl_context *ctx, struct gl_texture_object *texObj, int unit ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -182,7 +182,7 @@ sis_set_texture_env0( GLcontext *ctx, struct gl_texture_object *texObj, /* Handle texenv stuff, called from validate_texture (renderstart) */ static void -sis_set_texture_env1( GLcontext *ctx, struct gl_texture_object *texObj, +sis_set_texture_env1( struct gl_context *ctx, struct gl_texture_object *texObj, int unit) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -318,7 +318,7 @@ sis_set_texture_env1( GLcontext *ctx, struct gl_texture_object *texObj, /* Returns 0 if a software fallback is necessary */ static GLboolean -sis_set_texobj_parm( GLcontext *ctx, struct gl_texture_object *texObj, +sis_set_texobj_parm( struct gl_context *ctx, struct gl_texture_object *texObj, int hw_unit ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -583,7 +583,7 @@ sis_set_texobj_parm( GLcontext *ctx, struct gl_texture_object *texObj, /* Disable a texture unit, called from validate_texture */ static void -sis_reset_texture_env (GLcontext *ctx, int hw_unit) +sis_reset_texture_env (struct gl_context *ctx, int hw_unit) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -620,7 +620,7 @@ sis_reset_texture_env (GLcontext *ctx, int hw_unit) } } -static void updateTextureUnit( GLcontext *ctx, int unit ) +static void updateTextureUnit( struct gl_context *ctx, int unit ) { sisContextPtr smesa = SIS_CONTEXT( ctx ); const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -656,7 +656,7 @@ static void updateTextureUnit( GLcontext *ctx, int unit ) } -void sisUpdateTextureState( GLcontext *ctx ) +void sisUpdateTextureState( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT( ctx ); int i; diff --git a/src/mesa/drivers/dri/sis/sis_tris.c b/src/mesa/drivers/dri/sis/sis_tris.c index d109a8c41e..8db593fb9c 100644 --- a/src/mesa/drivers/dri/sis/sis_tris.c +++ b/src/mesa/drivers/dri/sis/sis_tris.c @@ -92,8 +92,8 @@ static const GLuint hw_prim_agp_shade[OP_3D_TRIANGLE_DRAW+1] = { MASK_PsShadingFlatC }; -static void sisRasterPrimitive( GLcontext *ctx, GLuint hwprim ); -static void sisRenderPrimitive( GLcontext *ctx, GLenum prim ); +static void sisRasterPrimitive( struct gl_context *ctx, GLuint hwprim ); +static void sisRenderPrimitive( struct gl_context *ctx, GLenum prim ); /*********************************************************************** * Emit primitives as inline vertices * @@ -556,7 +556,7 @@ sis_fallback_tri( sisContextPtr smesa, sisVertex *v1, sisVertex *v2 ) { - GLcontext *ctx = smesa->glCtx; + struct gl_context *ctx = smesa->glCtx; SWvertex v[3]; _swsetup_Translate( ctx, v0, &v[0] ); _swsetup_Translate( ctx, v1, &v[1] ); @@ -573,7 +573,7 @@ sis_fallback_line( sisContextPtr smesa, sisVertex *v0, sisVertex *v1 ) { - GLcontext *ctx = smesa->glCtx; + struct gl_context *ctx = smesa->glCtx; SWvertex v[2]; _swsetup_Translate( ctx, v0, &v[0] ); _swsetup_Translate( ctx, v1, &v[1] ); @@ -588,7 +588,7 @@ static void sis_fallback_point( sisContextPtr smesa, sisVertex *v0 ) { - GLcontext *ctx = smesa->glCtx; + struct gl_context *ctx = smesa->glCtx; SWvertex v[1]; _swsetup_Translate( ctx, v0, &v[0] ); sisSpanRenderStart( ctx ); @@ -643,7 +643,7 @@ sis_fallback_point( sisContextPtr smesa, #define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED) #define _SIS_NEW_RENDER_STATE (ANY_RASTER_FLAGS | ANY_FALLBACK_FLAGS) -static void sisChooseRenderState(GLcontext *ctx) +static void sisChooseRenderState(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); sisContextPtr smesa = SIS_CONTEXT( ctx ); @@ -701,7 +701,7 @@ static void sisChooseRenderState(GLcontext *ctx) /**********************************************************************/ /* Multipass rendering for front buffering */ /**********************************************************************/ -static GLboolean multipass_cliprect( GLcontext *ctx, GLuint pass ) +static GLboolean multipass_cliprect( struct gl_context *ctx, GLuint pass ) { sisContextPtr smesa = SIS_CONTEXT( ctx ); @@ -743,7 +743,7 @@ static GLboolean multipass_cliprect( GLcontext *ctx, GLuint pass ) /* Validate state at pipeline start */ /**********************************************************************/ -static void sisRunPipeline( GLcontext *ctx ) +static void sisRunPipeline( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT( ctx ); @@ -776,7 +776,7 @@ static void sisRunPipeline( GLcontext *ctx ) * and lines, points and bitmaps. */ -static void sisRasterPrimitive( GLcontext *ctx, GLuint hwprim ) +static void sisRasterPrimitive( struct gl_context *ctx, GLuint hwprim ) { sisContextPtr smesa = SIS_CONTEXT(ctx); if (smesa->hw_primitive != hwprim) { @@ -810,7 +810,7 @@ static void sisRasterPrimitive( GLcontext *ctx, GLuint hwprim ) } } -static void sisRenderPrimitive( GLcontext *ctx, GLenum prim ) +static void sisRenderPrimitive( struct gl_context *ctx, GLenum prim ) { sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -836,7 +836,7 @@ do { \ smesa->vertex_attr_count++; \ } while (0) -static void sisRenderStart( GLcontext *ctx ) +static void sisRenderStart( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -927,7 +927,7 @@ static void sisRenderStart( GLcontext *ctx ) } } -static void sisRenderFinish( GLcontext *ctx ) +static void sisRenderFinish( struct gl_context *ctx ) { } @@ -1039,7 +1039,7 @@ static const char *getFallbackString(GLuint bit) return fallbackStrings[i]; } -void sisFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void sisFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { TNLcontext *tnl = TNL_CONTEXT(ctx); sisContextPtr smesa = SIS_CONTEXT(ctx); @@ -1090,7 +1090,7 @@ void sisFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) /* Initialization. */ /**********************************************************************/ -void sisInitTriFuncs( GLcontext *ctx ) +void sisInitTriFuncs( struct gl_context *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/sis/sis_tris.h b/src/mesa/drivers/dri/sis/sis_tris.h index b34fe8c7c9..d454090607 100644 --- a/src/mesa/drivers/dri/sis/sis_tris.h +++ b/src/mesa/drivers/dri/sis/sis_tris.h @@ -34,10 +34,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "sis_lock.h" #include "main/mtypes.h" -extern void sisInitTriFuncs( GLcontext *ctx ); +extern void sisInitTriFuncs( struct gl_context *ctx ); extern void sisFlushPrims( sisContextPtr smesa ); extern void sisFlushPrimsLocked( sisContextPtr smesa ); -extern void sisFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void sisFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( smesa, bit, mode ) sisFallback( smesa->glCtx, bit, mode ) diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index ff53ffd0de..52ba3acf65 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -225,7 +225,7 @@ dri_destroy_screen(__DRIscreen * sPriv) */ static GLuint -choose_pixel_format(const GLvisual *v) +choose_pixel_format(const struct gl_config *v) { int depth = v->rgbBits; @@ -273,7 +273,7 @@ bytes_per_line(unsigned pitch_bits, unsigned mul) } static GLboolean -swrast_alloc_front_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +swrast_alloc_front_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb); @@ -290,7 +290,7 @@ swrast_alloc_front_storage(GLcontext *ctx, struct gl_renderbuffer *rb, } static GLboolean -swrast_alloc_back_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +swrast_alloc_back_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { struct swrast_renderbuffer *xrb = swrast_renderbuffer(rb); @@ -307,7 +307,7 @@ swrast_alloc_back_storage(GLcontext *ctx, struct gl_renderbuffer *rb, } static struct swrast_renderbuffer * -swrast_new_renderbuffer(const GLvisual *visual, GLboolean front) +swrast_new_renderbuffer(const struct gl_config *visual, GLboolean front) { struct swrast_renderbuffer *xrb = calloc(1, sizeof *xrb); GLuint pixel_format; @@ -370,10 +370,10 @@ swrast_new_renderbuffer(const GLvisual *visual, GLboolean front) static GLboolean dri_create_buffer(__DRIscreen * sPriv, __DRIdrawable * dPriv, - const __GLcontextModes * visual, GLboolean isPixmap) + const struct gl_config * visual, GLboolean isPixmap) { struct dri_drawable *drawable = NULL; - GLframebuffer *fb; + struct gl_framebuffer *fb; struct swrast_renderbuffer *frontrb, *backrb; TRACE; @@ -432,7 +432,7 @@ dri_destroy_buffer(__DRIdrawable * dPriv) if (dPriv) { struct dri_drawable *drawable = dri_drawable(dPriv); - GLframebuffer *fb; + struct gl_framebuffer *fb; free(drawable->row); @@ -451,7 +451,7 @@ dri_swap_buffers(__DRIdrawable * dPriv) GET_CURRENT_CONTEXT(ctx); struct dri_drawable *drawable = dri_drawable(dPriv); - GLframebuffer *fb; + struct gl_framebuffer *fb; struct swrast_renderbuffer *frontrb, *backrb; TRACE; @@ -487,7 +487,7 @@ dri_swap_buffers(__DRIdrawable * dPriv) */ static void -get_window_size( GLframebuffer *fb, GLsizei *w, GLsizei *h ) +get_window_size( struct gl_framebuffer *fb, GLsizei *w, GLsizei *h ) { __DRIdrawable *dPriv = swrast_drawable(fb)->dPriv; __DRIscreen *sPriv = dPriv->driScreenPriv; @@ -499,7 +499,7 @@ get_window_size( GLframebuffer *fb, GLsizei *w, GLsizei *h ) } static void -swrast_check_and_update_window_size( GLcontext *ctx, GLframebuffer *fb ) +swrast_check_and_update_window_size( struct gl_context *ctx, struct gl_framebuffer *fb ) { GLsizei width, height; @@ -510,7 +510,7 @@ swrast_check_and_update_window_size( GLcontext *ctx, GLframebuffer *fb ) } static const GLubyte * -get_string(GLcontext *ctx, GLenum pname) +get_string(struct gl_context *ctx, GLenum pname) { (void) ctx; switch (pname) { @@ -524,7 +524,7 @@ get_string(GLcontext *ctx, GLenum pname) } static void -update_state( GLcontext *ctx, GLuint new_state ) +update_state( struct gl_context *ctx, GLuint new_state ) { /* not much to do here - pass it on */ _swrast_InvalidateState( ctx, new_state ); @@ -534,16 +534,16 @@ update_state( GLcontext *ctx, GLuint new_state ) } static void -viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) +viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { - GLframebuffer *draw = ctx->WinSysDrawBuffer; - GLframebuffer *read = ctx->WinSysReadBuffer; + struct gl_framebuffer *draw = ctx->WinSysDrawBuffer; + struct gl_framebuffer *read = ctx->WinSysReadBuffer; swrast_check_and_update_window_size(ctx, draw); swrast_check_and_update_window_size(ctx, read); } -static gl_format swrastChooseTextureFormat(GLcontext * ctx, +static gl_format swrastChooseTextureFormat(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type) @@ -570,13 +570,13 @@ swrast_init_driver_functions(struct dd_function_table *driver) static GLboolean dri_create_context(gl_api api, - const __GLcontextModes * visual, + const struct gl_config * visual, __DRIcontext * cPriv, void *sharedContextPrivate) { struct dri_context *ctx = NULL; struct dri_context *share = (struct dri_context *)sharedContextPrivate; - GLcontext *mesaCtx = NULL; - GLcontext *sharedCtx = NULL; + struct gl_context *mesaCtx = NULL; + struct gl_context *sharedCtx = NULL; struct dd_function_table functions; TRACE; @@ -646,7 +646,7 @@ dri_destroy_context(__DRIcontext * cPriv) if (cPriv) { struct dri_context *ctx = dri_context(cPriv); - GLcontext *mesaCtx; + struct gl_context *mesaCtx; mesaCtx = &ctx->Base; @@ -664,9 +664,9 @@ dri_make_current(__DRIcontext * cPriv, __DRIdrawable * driDrawPriv, __DRIdrawable * driReadPriv) { - GLcontext *mesaCtx; - GLframebuffer *mesaDraw; - GLframebuffer *mesaRead; + struct gl_context *mesaCtx; + struct gl_framebuffer *mesaDraw; + struct gl_framebuffer *mesaRead; TRACE; if (cPriv) { diff --git a/src/mesa/drivers/dri/swrast/swrast_priv.h b/src/mesa/drivers/dri/swrast/swrast_priv.h index 6679061a98..bdb52ef26f 100644 --- a/src/mesa/drivers/dri/swrast/swrast_priv.h +++ b/src/mesa/drivers/dri/swrast/swrast_priv.h @@ -58,7 +58,7 @@ struct dri_context { /* mesa, base class, must be first */ - GLcontext Base; + struct gl_context Base; /* dri */ __DRIcontext *cPriv; @@ -71,7 +71,7 @@ dri_context(__DRIcontext * driContextPriv) } static INLINE struct dri_context * -swrast_context(GLcontext *ctx) +swrast_context(struct gl_context *ctx) { return (struct dri_context *) ctx; } @@ -79,7 +79,7 @@ swrast_context(GLcontext *ctx) struct dri_drawable { /* mesa, base class, must be first */ - GLframebuffer Base; + struct gl_framebuffer Base; /* dri */ __DRIdrawable *dPriv; @@ -95,7 +95,7 @@ dri_drawable(__DRIdrawable * driDrawPriv) } static INLINE struct dri_drawable * -swrast_drawable(GLframebuffer *fb) +swrast_drawable(struct gl_framebuffer *fb) { return (struct dri_drawable *) fb; } diff --git a/src/mesa/drivers/dri/swrast/swrast_spantemp.h b/src/mesa/drivers/dri/swrast/swrast_spantemp.h index 1e9405eebf..69f8d9f240 100644 --- a/src/mesa/drivers/dri/swrast/swrast_spantemp.h +++ b/src/mesa/drivers/dri/swrast/swrast_spantemp.h @@ -37,7 +37,7 @@ #define _SWRAST_SPANTEMP_ONCE static INLINE void -PUT_PIXEL( GLcontext *glCtx, GLint x, GLint y, GLvoid *p ) +PUT_PIXEL( struct gl_context *glCtx, GLint x, GLint y, GLvoid *p ) { __DRIcontext *ctx = swrast_context(glCtx)->cPriv; __DRIdrawable *draw = swrast_drawable(glCtx->DrawBuffer)->dPriv; @@ -51,7 +51,7 @@ PUT_PIXEL( GLcontext *glCtx, GLint x, GLint y, GLvoid *p ) static INLINE void -GET_PIXEL( GLcontext *glCtx, GLint x, GLint y, GLubyte *p ) +GET_PIXEL( struct gl_context *glCtx, GLint x, GLint y, GLubyte *p ) { __DRIcontext *ctx = swrast_context(glCtx)->cPriv; __DRIdrawable *read = swrast_drawable(glCtx->ReadBuffer)->dPriv; @@ -63,7 +63,7 @@ GET_PIXEL( GLcontext *glCtx, GLint x, GLint y, GLubyte *p ) } static INLINE void -PUT_ROW( GLcontext *glCtx, GLint x, GLint y, GLuint n, char *row ) +PUT_ROW( struct gl_context *glCtx, GLint x, GLint y, GLuint n, char *row ) { __DRIcontext *ctx = swrast_context(glCtx)->cPriv; __DRIdrawable *draw = swrast_drawable(glCtx->DrawBuffer)->dPriv; @@ -76,7 +76,7 @@ PUT_ROW( GLcontext *glCtx, GLint x, GLint y, GLuint n, char *row ) } static INLINE void -GET_ROW( GLcontext *glCtx, GLint x, GLint y, GLuint n, char *row ) +GET_ROW( struct gl_context *glCtx, GLint x, GLint y, GLuint n, char *row ) { __DRIcontext *ctx = swrast_context(glCtx)->cPriv; __DRIdrawable *read = swrast_drawable(glCtx->ReadBuffer)->dPriv; @@ -118,7 +118,7 @@ GET_ROW( GLcontext *glCtx, GLint x, GLint y, GLuint n, char *row ) static void -NAME(get_row)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(get_row)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values ) { #ifdef SPAN_VARS @@ -138,7 +138,7 @@ NAME(get_row)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(get_values)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(get_values)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values ) { #ifdef SPAN_VARS @@ -156,7 +156,7 @@ NAME(get_values)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_row)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_row)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte mask[] ) { @@ -189,7 +189,7 @@ NAME(put_row)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_row_rgb)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_row_rgb)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte mask[] ) { @@ -230,7 +230,7 @@ NAME(put_row_rgb)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_mono_row)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_mono_row)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte mask[] ) { @@ -263,7 +263,7 @@ NAME(put_mono_row)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_values)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_values)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte mask[] ) { @@ -286,7 +286,7 @@ NAME(put_values)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_mono_values)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_mono_values)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte mask[] ) { diff --git a/src/mesa/drivers/dri/tdfx/tdfx_context.c b/src/mesa/drivers/dri/tdfx/tdfx_context.c index 6f1e8bfc49..63dfa5ae74 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_context.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_context.c @@ -124,7 +124,7 @@ static const struct dri_extension napalm_extensions[] = /* * Enable/Disable the extensions for this context. */ -static void tdfxDDInitExtensions( GLcontext *ctx ) +static void tdfxDDInitExtensions( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -163,12 +163,12 @@ static const struct dri_debug_control debug_control[] = }; GLboolean tdfxCreateContext( gl_api api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate ) { tdfxContextPtr fxMesa; - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; __DRIscreen *sPriv = driContextPriv->driScreenPriv; tdfxScreenPrivate *fxScreen = (tdfxScreenPrivate *) sPriv->private; TDFXSAREAPriv *saPriv = (TDFXSAREAPriv *) ((char *) sPriv->pSAREA + @@ -635,7 +635,7 @@ tdfxMakeCurrent( __DRIcontext *driContextPriv, if ( driContextPriv ) { tdfxContextPtr newFx = (tdfxContextPtr) driContextPriv->driverPrivate; - GLcontext *newCtx = newFx->glCtx; + struct gl_context *newCtx = newFx->glCtx; GET_CURRENT_CONTEXT(curCtx); if ((newFx->driDrawable != driDrawPriv) @@ -651,8 +651,8 @@ tdfxMakeCurrent( __DRIcontext *driContextPriv, * dispatch is set correctly. */ _mesa_make_current( newCtx, - (GLframebuffer *) driDrawPriv->driverPrivate, - (GLframebuffer *) driReadPriv->driverPrivate ); + (struct gl_framebuffer *) driDrawPriv->driverPrivate, + (struct gl_framebuffer *) driReadPriv->driverPrivate ); return GL_TRUE; } /* [dBorca] tunnel2 requires this */ @@ -689,8 +689,8 @@ tdfxMakeCurrent( __DRIcontext *driContextPriv, } _mesa_make_current( newCtx, - (GLframebuffer *) driDrawPriv->driverPrivate, - (GLframebuffer *) driReadPriv->driverPrivate ); + (struct gl_framebuffer *) driDrawPriv->driverPrivate, + (struct gl_framebuffer *) driReadPriv->driverPrivate ); } else { _mesa_make_current( NULL, NULL, NULL ); } diff --git a/src/mesa/drivers/dri/tdfx/tdfx_context.h b/src/mesa/drivers/dri/tdfx/tdfx_context.h index 29b0876f9f..fb38419dcd 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_context.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_context.h @@ -810,7 +810,7 @@ typedef void (*tdfx_point_func)( tdfxContextPtr, tdfxVertex * ); struct tdfx_context { /* Set once and never changed: */ - GLcontext *glCtx; /* The core Mesa context */ + struct gl_context *glCtx; /* The core Mesa context */ GLuint new_gl_state; GLuint new_state; @@ -938,7 +938,7 @@ struct tdfx_context { extern GLboolean tdfxCreateContext( gl_api api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate ); @@ -957,10 +957,10 @@ extern GLboolean tdfxInitGlide( tdfxContextPtr tmesa ); extern void -FX_grColorMaskv(GLcontext *ctx, const GLboolean rgba[4]); +FX_grColorMaskv(struct gl_context *ctx, const GLboolean rgba[4]); extern void -FX_grColorMaskv_NoLock(GLcontext *ctx, const GLboolean rgba[4]); +FX_grColorMaskv_NoLock(struct gl_context *ctx, const GLboolean rgba[4]); /* Color packing utilities diff --git a/src/mesa/drivers/dri/tdfx/tdfx_dd.c b/src/mesa/drivers/dri/tdfx/tdfx_dd.c index 2cbbeb8114..d60931ad7f 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_dd.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_dd.c @@ -54,7 +54,7 @@ const GLboolean true4[4] = { GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE }; * checks for this rather than doing a glGet(GL_MAX_TEXTURE_SIZE). * Why? */ -static const GLubyte *tdfxDDGetString( GLcontext *ctx, GLenum name ) +static const GLubyte *tdfxDDGetString( struct gl_context *ctx, GLenum name ) { tdfxContextPtr fxMesa = (tdfxContextPtr) ctx->DriverCtx; @@ -103,7 +103,7 @@ static const GLubyte *tdfxDDGetString( GLcontext *ctx, GLenum name ) static void -tdfxBeginQuery(GLcontext *ctx, struct gl_query_object *q) +tdfxBeginQuery(struct gl_context *ctx, struct gl_query_object *q) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -119,7 +119,7 @@ tdfxBeginQuery(GLcontext *ctx, struct gl_query_object *q) static void -tdfxEndQuery(GLcontext *ctx, struct gl_query_object *q) +tdfxEndQuery(struct gl_context *ctx, struct gl_query_object *q) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); FxI32 total_pixels; @@ -157,7 +157,7 @@ tdfxEndQuery(GLcontext *ctx, struct gl_query_object *q) (vis->blueBits == b) && \ (vis->alphaBits == a)) -void tdfxDDInitDriverFuncs( const __GLcontextModes *visual, +void tdfxDDInitDriverFuncs( const struct gl_config *visual, struct dd_function_table *functions ) { if ( MESA_VERBOSE & VERBOSE_DRIVER ) { @@ -187,7 +187,7 @@ void tdfxDDInitDriverFuncs( const __GLcontextModes *visual, */ void -FX_grColorMaskv(GLcontext *ctx, const GLboolean rgba[4]) +FX_grColorMaskv(struct gl_context *ctx, const GLboolean rgba[4]) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); LOCK_HARDWARE(fxMesa); @@ -207,7 +207,7 @@ FX_grColorMaskv(GLcontext *ctx, const GLboolean rgba[4]) } void -FX_grColorMaskv_NoLock(GLcontext *ctx, const GLboolean rgba[4]) +FX_grColorMaskv_NoLock(struct gl_context *ctx, const GLboolean rgba[4]) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); if (ctx->Visual.redBits == 8) { diff --git a/src/mesa/drivers/dri/tdfx/tdfx_dd.h b/src/mesa/drivers/dri/tdfx/tdfx_dd.h index f419c8426a..d68e1ece1b 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_dd.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_dd.h @@ -38,7 +38,7 @@ #include "main/context.h" -extern void tdfxDDInitDriverFuncs( const __GLcontextModes *visual, +extern void tdfxDDInitDriverFuncs( const struct gl_config *visual, struct dd_function_table *functions ); #endif diff --git a/src/mesa/drivers/dri/tdfx/tdfx_pixels.c b/src/mesa/drivers/dri/tdfx/tdfx_pixels.c index 5a7184056d..bbbd0d5740 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_pixels.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_pixels.c @@ -153,7 +153,7 @@ inClipRects_Region(tdfxContextPtr fxMesa, int x, int y, int width, int height) #if 0 GLboolean -tdfx_bitmap_R5G6B5(GLcontext * ctx, GLint px, GLint py, +tdfx_bitmap_R5G6B5(struct gl_context * ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte * bitmap) @@ -317,7 +317,7 @@ tdfx_bitmap_R5G6B5(GLcontext * ctx, GLint px, GLint py, #if 0 GLboolean -tdfx_bitmap_R8G8B8A8(GLcontext * ctx, GLint px, GLint py, +tdfx_bitmap_R8G8B8A8(struct gl_context * ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte * bitmap) @@ -475,7 +475,7 @@ tdfx_bitmap_R8G8B8A8(GLcontext * ctx, GLint px, GLint py, #endif void -tdfx_readpixels_R5G6B5(GLcontext * ctx, GLint x, GLint y, +tdfx_readpixels_R5G6B5(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, @@ -532,7 +532,7 @@ tdfx_readpixels_R5G6B5(GLcontext * ctx, GLint x, GLint y, } void -tdfx_readpixels_R8G8B8A8(GLcontext * ctx, GLint x, GLint y, +tdfx_readpixels_R8G8B8A8(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, @@ -591,7 +591,7 @@ tdfx_readpixels_R8G8B8A8(GLcontext * ctx, GLint x, GLint y, } void -tdfx_drawpixels_R8G8B8A8(GLcontext * ctx, GLint x, GLint y, +tdfx_drawpixels_R8G8B8A8(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, diff --git a/src/mesa/drivers/dri/tdfx/tdfx_pixels.h b/src/mesa/drivers/dri/tdfx/tdfx_pixels.h index f5e5427653..f4cc20fd62 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_pixels.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_pixels.h @@ -41,33 +41,33 @@ #include "main/context.h" extern void -tdfx_bitmap_R5G6B5( GLcontext *ctx, GLint px, GLint py, +tdfx_bitmap_R5G6B5( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ); extern void -tdfx_bitmap_R8G8B8A8( GLcontext *ctx, GLint px, GLint py, +tdfx_bitmap_R8G8B8A8( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ); extern void -tdfx_readpixels_R5G6B5( GLcontext *ctx, GLint x, GLint y, +tdfx_readpixels_R5G6B5( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, GLvoid *dstImage ); extern void -tdfx_readpixels_R8G8B8A8( GLcontext *ctx, GLint x, GLint y, +tdfx_readpixels_R8G8B8A8( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, GLvoid *dstImage ); extern void -tdfx_drawpixels_R8G8B8A8( GLcontext *ctx, GLint x, GLint y, +tdfx_drawpixels_R8G8B8A8( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, diff --git a/src/mesa/drivers/dri/tdfx/tdfx_render.c b/src/mesa/drivers/dri/tdfx/tdfx_render.c index 979bcd4514..f083756787 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_render.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_render.c @@ -45,7 +45,7 @@ /* Clear the color and/or depth buffers. */ -static void tdfxClear( GLcontext *ctx, GLbitfield mask ) +static void tdfxClear( struct gl_context *ctx, GLbitfield mask ) { tdfxContextPtr fxMesa = (tdfxContextPtr) ctx->DriverCtx; GLbitfield softwareMask = mask & (BUFFER_BIT_ACCUM); @@ -314,7 +314,7 @@ static void tdfxClear( GLcontext *ctx, GLbitfield mask ) -static void tdfxFinish( GLcontext *ctx ) +static void tdfxFinish( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -325,7 +325,7 @@ static void tdfxFinish( GLcontext *ctx ) UNLOCK_HARDWARE( fxMesa ); } -static void tdfxFlush( GLcontext *ctx ) +static void tdfxFlush( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -528,7 +528,7 @@ static void uploadTextureSource( tdfxContextPtr fxMesa ) static void uploadTextureImages( tdfxContextPtr fxMesa ) { - GLcontext *ctx = fxMesa->glCtx; + struct gl_context *ctx = fxMesa->glCtx; int unit; for (unit = 0; unit < TDFX_NUM_TMU; unit++) { if (ctx->Texture.Unit[unit]._ReallyEnabled & (TEXTURE_1D_BIT|TEXTURE_2D_BIT)) { diff --git a/src/mesa/drivers/dri/tdfx/tdfx_screen.c b/src/mesa/drivers/dri/tdfx/tdfx_screen.c index 26de09503a..084560ff87 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_screen.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_screen.c @@ -155,7 +155,7 @@ tdfxInitDriver( __DRIscreen *sPriv ) static GLboolean tdfxCreateBuffer( __DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap ) { tdfxScreenPrivate *screen = (tdfxScreenPrivate *) driScrnPriv->private; @@ -227,7 +227,7 @@ tdfxCreateBuffer( __DRIscreen *driScrnPriv, static void tdfxDestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } @@ -237,13 +237,13 @@ tdfxSwapBuffers( __DRIdrawable *driDrawPriv ) { GET_CURRENT_CONTEXT(ctx); tdfxContextPtr fxMesa = 0; - GLframebuffer *mesaBuffer; + struct gl_framebuffer *mesaBuffer; if ( TDFX_DEBUG & DEBUG_VERBOSE_DRI ) { fprintf( stderr, "%s( %p )\n", __FUNCTION__, (void *)driDrawPriv ); } - mesaBuffer = (GLframebuffer *) driDrawPriv->driverPrivate; + mesaBuffer = (struct gl_framebuffer *) driDrawPriv->driverPrivate; if ( !mesaBuffer->Visual.doubleBufferMode ) return; /* can't swap a single-buffered window */ @@ -394,7 +394,7 @@ tdfxFillInModes(__DRIscreen *psp, * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig ** tdfxInitScreen(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/tdfx/tdfx_span.c b/src/mesa/drivers/dri/tdfx/tdfx_span.c index 3879d506ee..12524e2316 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_span.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_span.c @@ -582,7 +582,7 @@ GetFbParams(tdfxContextPtr fxMesa, static void -tdfxDDWriteDepthSpan(GLcontext * ctx, struct gl_renderbuffer *rb, +tdfxDDWriteDepthSpan(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, const GLubyte mask[]) { @@ -819,7 +819,7 @@ tdfxDDWriteDepthSpan(GLcontext * ctx, struct gl_renderbuffer *rb, } static void -tdfxDDWriteMonoDepthSpan(GLcontext * ctx, struct gl_renderbuffer *rb, +tdfxDDWriteMonoDepthSpan(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, const GLubyte mask[]) { @@ -833,7 +833,7 @@ tdfxDDWriteMonoDepthSpan(GLcontext * ctx, struct gl_renderbuffer *rb, static void -tdfxDDReadDepthSpan(GLcontext * ctx, struct gl_renderbuffer *rb, +tdfxDDReadDepthSpan(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) { GLuint *depth = (GLuint *) values; @@ -937,7 +937,7 @@ tdfxDDReadDepthSpan(GLcontext * ctx, struct gl_renderbuffer *rb, static void -tdfxDDWriteDepthPixels(GLcontext * ctx, struct gl_renderbuffer *rb, +tdfxDDWriteDepthPixels(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const void *values, const GLubyte mask[]) { @@ -1020,7 +1020,7 @@ tdfxDDWriteDepthPixels(GLcontext * ctx, struct gl_renderbuffer *rb, static void -tdfxDDReadDepthPixels(GLcontext * ctx, struct gl_renderbuffer *rb, GLuint n, +tdfxDDReadDepthPixels(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], void *values) { GLuint *depth = (GLuint *) values; @@ -1107,7 +1107,7 @@ tdfxDDReadDepthPixels(GLcontext * ctx, struct gl_renderbuffer *rb, GLuint n, #define BUILD_ZS(z, s) (((s) << 24) | (z)) static void -write_stencil_span(GLcontext * ctx, struct gl_renderbuffer *rb, +write_stencil_span(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *values, const GLubyte mask[]) { @@ -1166,7 +1166,7 @@ write_stencil_span(GLcontext * ctx, struct gl_renderbuffer *rb, static void -write_mono_stencil_span(GLcontext * ctx, struct gl_renderbuffer *rb, +write_mono_stencil_span(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const void *value, const GLubyte mask[]) { @@ -1180,7 +1180,7 @@ write_mono_stencil_span(GLcontext * ctx, struct gl_renderbuffer *rb, static void -read_stencil_span(GLcontext * ctx, struct gl_renderbuffer *rb, +read_stencil_span(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) { @@ -1232,7 +1232,7 @@ read_stencil_span(GLcontext * ctx, struct gl_renderbuffer *rb, static void -write_stencil_pixels(GLcontext * ctx, struct gl_renderbuffer *rb, +write_stencil_pixels(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const void *values, const GLubyte mask[]) { @@ -1271,7 +1271,7 @@ write_stencil_pixels(GLcontext * ctx, struct gl_renderbuffer *rb, static void -read_stencil_pixels(GLcontext * ctx, struct gl_renderbuffer *rb, +read_stencil_pixels(struct gl_context * ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], void *values) { @@ -1318,13 +1318,13 @@ read_stencil_pixels(GLcontext * ctx, struct gl_renderbuffer *rb, /**********************************************************************/ -static void tdfxSpanRenderStart( GLcontext *ctx ) +static void tdfxSpanRenderStart( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); LOCK_HARDWARE(fxMesa); } -static void tdfxSpanRenderFinish( GLcontext *ctx ) +static void tdfxSpanRenderFinish( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); _swrast_flush( ctx ); @@ -1335,7 +1335,7 @@ static void tdfxSpanRenderFinish( GLcontext *ctx ) /* Initialize swrast device driver */ /**********************************************************************/ -void tdfxDDInitSpanFuncs( GLcontext *ctx ) +void tdfxDDInitSpanFuncs( struct gl_context *ctx ) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference( ctx ); swdd->SpanRenderStart = tdfxSpanRenderStart; @@ -1348,7 +1348,7 @@ void tdfxDDInitSpanFuncs( GLcontext *ctx ) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -tdfxSetSpanFunctions(driRenderbuffer *drb, const GLvisual *vis) +tdfxSetSpanFunctions(driRenderbuffer *drb, const struct gl_config *vis) { if (drb->Base.InternalFormat == GL_RGBA) { if (vis->redBits == 5 && vis->greenBits == 6 && vis->blueBits == 5) { diff --git a/src/mesa/drivers/dri/tdfx/tdfx_span.h b/src/mesa/drivers/dri/tdfx/tdfx_span.h index 6973f8d140..ae3d074a58 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_span.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_span.h @@ -40,9 +40,9 @@ #include "main/context.h" #include "drirenderbuffer.h" -extern void tdfxDDInitSpanFuncs( GLcontext *ctx ); +extern void tdfxDDInitSpanFuncs( struct gl_context *ctx ); extern void -tdfxSetSpanFunctions(driRenderbuffer *rb, const GLvisual *vis); +tdfxSetSpanFunctions(driRenderbuffer *rb, const struct gl_config *vis); #endif diff --git a/src/mesa/drivers/dri/tdfx/tdfx_state.c b/src/mesa/drivers/dri/tdfx/tdfx_state.c index dcbc7647f2..3f6822d457 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_state.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_state.c @@ -60,7 +60,7 @@ * Alpha blending */ -static void tdfxUpdateAlphaMode( GLcontext *ctx ) +static void tdfxUpdateAlphaMode( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); GrCmpFnc_t func; @@ -283,7 +283,7 @@ static void tdfxUpdateAlphaMode( GLcontext *ctx ) } } -static void tdfxDDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) +static void tdfxDDAlphaFunc( struct gl_context *ctx, GLenum func, GLfloat ref ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -291,7 +291,7 @@ static void tdfxDDAlphaFunc( GLcontext *ctx, GLenum func, GLfloat ref ) fxMesa->new_state |= TDFX_NEW_ALPHA; } -static void tdfxDDBlendEquationSeparate( GLcontext *ctx, +static void tdfxDDBlendEquationSeparate( struct gl_context *ctx, GLenum modeRGB, GLenum modeA ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -301,7 +301,7 @@ static void tdfxDDBlendEquationSeparate( GLcontext *ctx, fxMesa->new_state |= TDFX_NEW_ALPHA; } -static void tdfxDDBlendFuncSeparate( GLcontext *ctx, +static void tdfxDDBlendFuncSeparate( struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ) { @@ -321,7 +321,7 @@ static void tdfxDDBlendFuncSeparate( GLcontext *ctx, * Stipple */ -void tdfxUpdateStipple( GLcontext *ctx ) +void tdfxUpdateStipple( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); GrStippleMode_t mode = GR_STIPPLE_DISABLE; @@ -347,7 +347,7 @@ void tdfxUpdateStipple( GLcontext *ctx ) * Depth testing */ -static void tdfxUpdateZMode( GLcontext *ctx ) +static void tdfxUpdateZMode( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); GrCmpFnc_t func; @@ -386,7 +386,7 @@ static void tdfxUpdateZMode( GLcontext *ctx ) } } -static void tdfxDDDepthFunc( GLcontext *ctx, GLenum func ) +static void tdfxDDDepthFunc( struct gl_context *ctx, GLenum func ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -394,7 +394,7 @@ static void tdfxDDDepthFunc( GLcontext *ctx, GLenum func ) fxMesa->new_state |= TDFX_NEW_DEPTH; } -static void tdfxDDDepthMask( GLcontext *ctx, GLboolean flag ) +static void tdfxDDDepthMask( struct gl_context *ctx, GLboolean flag ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -402,7 +402,7 @@ static void tdfxDDDepthMask( GLcontext *ctx, GLboolean flag ) fxMesa->new_state |= TDFX_NEW_DEPTH; } -static void tdfxDDClearDepth( GLcontext *ctx, GLclampd d ) +static void tdfxDDClearDepth( struct gl_context *ctx, GLclampd d ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -445,7 +445,7 @@ static GrStencil_t convertGLStencilOp( GLenum op ) } -static void tdfxUpdateStencil( GLcontext *ctx ) +static void tdfxUpdateStencil( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -470,7 +470,7 @@ static void tdfxUpdateStencil( GLcontext *ctx ) static void -tdfxDDStencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, +tdfxDDStencilFuncSeparate( struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -480,7 +480,7 @@ tdfxDDStencilFuncSeparate( GLcontext *ctx, GLenum face, GLenum func, } static void -tdfxDDStencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) +tdfxDDStencilMaskSeparate( struct gl_context *ctx, GLenum face, GLuint mask ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -489,7 +489,7 @@ tdfxDDStencilMaskSeparate( GLcontext *ctx, GLenum face, GLuint mask ) } static void -tdfxDDStencilOpSeparate( GLcontext *ctx, GLenum face, GLenum sfail, +tdfxDDStencilOpSeparate( struct gl_context *ctx, GLenum face, GLenum sfail, GLenum zfail, GLenum zpass ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -503,7 +503,7 @@ tdfxDDStencilOpSeparate( GLcontext *ctx, GLenum face, GLenum sfail, * Fog - orthographic fog still not working */ -static void tdfxUpdateFogAttrib( GLcontext *ctx ) +static void tdfxUpdateFogAttrib( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); GrFogMode_t mode; @@ -562,7 +562,7 @@ static void tdfxUpdateFogAttrib( GLcontext *ctx ) } } -static void tdfxDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) +static void tdfxDDFogfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -614,7 +614,7 @@ static int intersect_rect( drm_clip_rect_t *out, * Examine XF86 cliprect list and scissor state to recompute our * cliprect list. */ -void tdfxUpdateClipping( GLcontext *ctx ) +void tdfxUpdateClipping( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); __DRIdrawable *dPriv = fxMesa->driDrawable; @@ -695,7 +695,7 @@ void tdfxUpdateClipping( GLcontext *ctx ) * Culling */ -void tdfxUpdateCull( GLcontext *ctx ) +void tdfxUpdateCull( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); GrCullMode_t mode = GR_CULL_DISABLE; @@ -737,7 +737,7 @@ void tdfxUpdateCull( GLcontext *ctx ) } } -static void tdfxDDCullFace( GLcontext *ctx, GLenum mode ) +static void tdfxDDCullFace( struct gl_context *ctx, GLenum mode ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -745,7 +745,7 @@ static void tdfxDDCullFace( GLcontext *ctx, GLenum mode ) fxMesa->new_state |= TDFX_NEW_CULL; } -static void tdfxDDFrontFace( GLcontext *ctx, GLenum mode ) +static void tdfxDDFrontFace( struct gl_context *ctx, GLenum mode ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -758,7 +758,7 @@ static void tdfxDDFrontFace( GLcontext *ctx, GLenum mode ) * Line drawing. */ -static void tdfxUpdateLine( GLcontext *ctx ) +static void tdfxUpdateLine( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -771,7 +771,7 @@ static void tdfxUpdateLine( GLcontext *ctx ) } -static void tdfxDDLineWidth( GLcontext *ctx, GLfloat width ) +static void tdfxDDLineWidth( struct gl_context *ctx, GLfloat width ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); FLUSH_BATCH( fxMesa ); @@ -783,7 +783,7 @@ static void tdfxDDLineWidth( GLcontext *ctx, GLfloat width ) * Color Attributes */ -static void tdfxDDColorMask( GLcontext *ctx, +static void tdfxDDColorMask( struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a ) { @@ -810,7 +810,7 @@ static void tdfxDDColorMask( GLcontext *ctx, } -static void tdfxDDClearColor( GLcontext *ctx, +static void tdfxDDClearColor( struct gl_context *ctx, const GLfloat color[4] ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -829,7 +829,7 @@ static void tdfxDDClearColor( GLcontext *ctx, * Light Model */ -static void tdfxDDLightModelfv( GLcontext *ctx, GLenum pname, +static void tdfxDDLightModelfv( struct gl_context *ctx, GLenum pname, const GLfloat *param ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -841,7 +841,7 @@ static void tdfxDDLightModelfv( GLcontext *ctx, GLenum pname, } } -static void tdfxDDShadeModel( GLcontext *ctx, GLenum mode ) +static void tdfxDDShadeModel( struct gl_context *ctx, GLenum mode ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -856,7 +856,7 @@ static void tdfxDDShadeModel( GLcontext *ctx, GLenum mode ) */ static void -tdfxDDScissor(GLcontext * ctx, GLint x, GLint y, GLsizei w, GLsizei h) +tdfxDDScissor(struct gl_context * ctx, GLint x, GLint y, GLsizei w, GLsizei h) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); FLUSH_BATCH( fxMesa ); @@ -867,7 +867,7 @@ tdfxDDScissor(GLcontext * ctx, GLint x, GLint y, GLsizei w, GLsizei h) * Render */ -static void tdfxUpdateRenderAttrib( GLcontext *ctx ) +static void tdfxUpdateRenderAttrib( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); FLUSH_BATCH( fxMesa ); @@ -878,7 +878,7 @@ static void tdfxUpdateRenderAttrib( GLcontext *ctx ) * Viewport */ -void tdfxUpdateViewport( GLcontext *ctx ) +void tdfxUpdateViewport( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); const GLfloat *v = ctx->Viewport._WindowMap.m; @@ -895,7 +895,7 @@ void tdfxUpdateViewport( GLcontext *ctx ) } -static void tdfxDDViewport( GLcontext *ctx, GLint x, GLint y, +static void tdfxDDViewport( struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -904,7 +904,7 @@ static void tdfxDDViewport( GLcontext *ctx, GLint x, GLint y, } -static void tdfxDDDepthRange( GLcontext *ctx, GLclampd nearVal, GLclampd farVal ) +static void tdfxDDDepthRange( struct gl_context *ctx, GLclampd nearVal, GLclampd farVal ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); FLUSH_BATCH( fxMesa ); @@ -916,7 +916,7 @@ static void tdfxDDDepthRange( GLcontext *ctx, GLclampd nearVal, GLclampd farVal * State enable/disable */ -static void tdfxDDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) +static void tdfxDDEnable( struct gl_context *ctx, GLenum cap, GLboolean state ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -1017,7 +1017,7 @@ static void tdfxDDEnable( GLcontext *ctx, GLenum cap, GLboolean state ) /* Set the buffer used for drawing */ /* XXX support for separate read/draw buffers hasn't been tested */ -static void tdfxDDDrawBuffer( GLcontext *ctx, GLenum mode ) +static void tdfxDDDrawBuffer( struct gl_context *ctx, GLenum mode ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1054,7 +1054,7 @@ static void tdfxDDDrawBuffer( GLcontext *ctx, GLenum mode ) } -static void tdfxDDReadBuffer( GLcontext *ctx, GLenum mode ) +static void tdfxDDReadBuffer( struct gl_context *ctx, GLenum mode ) { /* XXX ??? */ } @@ -1064,7 +1064,7 @@ static void tdfxDDReadBuffer( GLcontext *ctx, GLenum mode ) * Polygon stipple */ -static void tdfxDDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) +static void tdfxDDPolygonStipple( struct gl_context *ctx, const GLubyte *mask ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); const GLubyte *m = mask; @@ -1119,7 +1119,7 @@ static void tdfxDDPolygonStipple( GLcontext *ctx, const GLubyte *mask ) -static void tdfxDDRenderMode( GLcontext *ctx, GLenum mode ) +static void tdfxDDRenderMode( struct gl_context *ctx, GLenum mode ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); FALLBACK( fxMesa, TDFX_FALLBACK_RENDER_MODE, (mode != GL_RENDER) ); @@ -1150,7 +1150,7 @@ static void tdfxDDPrintState( const char *msg, GLuint flags ) -void tdfxDDUpdateHwState( GLcontext *ctx ) +void tdfxDDUpdateHwState( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); int new_state = fxMesa->new_state; @@ -1226,7 +1226,7 @@ void tdfxDDUpdateHwState( GLcontext *ctx ) } -static void tdfxDDInvalidateState( GLcontext *ctx, GLuint new_state ) +static void tdfxDDInvalidateState( struct gl_context *ctx, GLuint new_state ) { _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); @@ -1242,7 +1242,7 @@ static void tdfxDDInvalidateState( GLcontext *ctx, GLuint new_state ) */ void tdfxInitState( tdfxContextPtr fxMesa ) { - GLcontext *ctx = fxMesa->glCtx; + struct gl_context *ctx = fxMesa->glCtx; GLint i; fxMesa->ColorCombine.Function = GR_COMBINE_FUNCTION_LOCAL; @@ -1390,7 +1390,7 @@ void tdfxInitState( tdfxContextPtr fxMesa ) -void tdfxDDInitStateFuncs( GLcontext *ctx ) +void tdfxDDInitStateFuncs( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/tdfx/tdfx_state.h b/src/mesa/drivers/dri/tdfx/tdfx_state.h index 4880b990fc..2e96fcbeb5 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_state.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_state.h @@ -40,21 +40,21 @@ #include "main/context.h" #include "tdfx_context.h" -extern void tdfxDDInitStateFuncs( GLcontext *ctx ); +extern void tdfxDDInitStateFuncs( struct gl_context *ctx ); -extern void tdfxDDUpdateHwState( GLcontext *ctx ); +extern void tdfxDDUpdateHwState( struct gl_context *ctx ); extern void tdfxInitState( tdfxContextPtr fxMesa ); -extern void tdfxUpdateClipping( GLcontext *ctx ); +extern void tdfxUpdateClipping( struct gl_context *ctx ); -extern void tdfxFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); +extern void tdfxFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ); #define FALLBACK( rmesa, bit, mode ) tdfxFallback( rmesa->glCtx, bit, mode ) -extern void tdfxUpdateCull( GLcontext *ctx ); -extern void tdfxUpdateStipple( GLcontext *ctx ); -extern void tdfxUpdateViewport( GLcontext *ctx ); +extern void tdfxUpdateCull( struct gl_context *ctx ); +extern void tdfxUpdateStipple( struct gl_context *ctx ); +extern void tdfxUpdateViewport( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/tdfx/tdfx_tex.c b/src/mesa/drivers/dri/tdfx/tdfx_tex.c index 1c51452c10..0326b847cb 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_tex.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_tex.c @@ -52,7 +52,7 @@ /* no borders! can't halve 1x1! (stride > width * comp) not allowed */ static void -_mesa_halve2x2_teximage2d ( GLcontext *ctx, +_mesa_halve2x2_teximage2d ( struct gl_context *ctx, struct gl_texture_image *texImage, GLuint bytesPerPixel, GLint srcWidth, GLint srcHeight, @@ -176,7 +176,7 @@ logbase2(int n) static void -tdfxGenerateMipmap(GLcontext *ctx, GLenum target, +tdfxGenerateMipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { GLint mipWidth, mipHeight; @@ -242,7 +242,7 @@ tdfxGenerateMipmap(GLcontext *ctx, GLenum target, * 32 32 GR_LOD_LOG2_32 (=5) GR_ASPECT_LOG2_1x1 (=0) */ static void -tdfxTexGetInfo(const GLcontext *ctx, int w, int h, +tdfxTexGetInfo(const struct gl_context *ctx, int w, int h, GrLOD_t *lodlevel, GrAspectRatio_t *aspectratio, float *sscale, float *tscale, int *wscale, int *hscale) @@ -307,7 +307,7 @@ tdfxTexGetInfo(const GLcontext *ctx, int w, int h, * We need to call this when a texture object's minification filter * or texture image sizes change. */ -static void RevalidateTexture(GLcontext *ctx, struct gl_texture_object *tObj) +static void RevalidateTexture(struct gl_context *ctx, struct gl_texture_object *tObj) { tdfxTexInfo *ti = TDFX_TEXTURE_DATA(tObj); GLint minl, maxl; @@ -390,7 +390,7 @@ fxAllocTexObjData(tdfxContextPtr fxMesa) * Called via glBindTexture. */ static void -tdfxBindTexture(GLcontext * ctx, GLenum target, +tdfxBindTexture(struct gl_context * ctx, GLenum target, struct gl_texture_object *tObj) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -419,7 +419,7 @@ tdfxBindTexture(GLcontext * ctx, GLenum target, * Called via glTexEnv. */ static void -tdfxTexEnv(GLcontext * ctx, GLenum target, GLenum pname, +tdfxTexEnv(struct gl_context * ctx, GLenum target, GLenum pname, const GLfloat * param) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -445,7 +445,7 @@ tdfxTexEnv(GLcontext * ctx, GLenum target, GLenum pname, * Called via glTexParameter. */ static void -tdfxTexParameter(GLcontext * ctx, GLenum target, +tdfxTexParameter(struct gl_context * ctx, GLenum target, struct gl_texture_object *tObj, GLenum pname, const GLfloat * params) { @@ -610,7 +610,7 @@ tdfxTexParameter(GLcontext * ctx, GLenum target, * Here, we delete the Glide data associated with the texture. */ static void -tdfxDeleteTexture(GLcontext * ctx, struct gl_texture_object *tObj) +tdfxDeleteTexture(struct gl_context * ctx, struct gl_texture_object *tObj) { if (ctx && ctx->DriverCtx) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -626,7 +626,7 @@ tdfxDeleteTexture(GLcontext * ctx, struct gl_texture_object *tObj) * Return true if texture is resident, false otherwise. */ static GLboolean -tdfxIsTextureResident(GLcontext *ctx, struct gl_texture_object *tObj) +tdfxIsTextureResident(struct gl_context *ctx, struct gl_texture_object *tObj) { tdfxTexInfo *ti = TDFX_TEXTURE_DATA(tObj); return (GLboolean) (ti && ti->isInTM); @@ -707,7 +707,7 @@ convertPalette(FxU32 data[256], const struct gl_color_table *table) static void -tdfxUpdateTexturePalette(GLcontext * ctx, struct gl_texture_object *tObj) +tdfxUpdateTexturePalette(struct gl_context * ctx, struct gl_texture_object *tObj) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -760,7 +760,7 @@ fxTexusError(const char *string, FxBool fatal) static gl_format -tdfxChooseTextureFormat( GLcontext *ctx, GLint internalFormat, +tdfxChooseTextureFormat( struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1216,7 +1216,7 @@ fxFetchFunction(GLint mesaFormat) static GLboolean -adjust2DRatio (GLcontext *ctx, +adjust2DRatio (struct gl_context *ctx, GLint xoffset, GLint yoffset, GLint width, GLint height, GLenum format, GLenum type, const GLvoid *pixels, @@ -1302,7 +1302,7 @@ adjust2DRatio (GLcontext *ctx, static void -tdfxTexImage2D(GLcontext *ctx, GLenum target, GLint level, +tdfxTexImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, @@ -1454,7 +1454,7 @@ tdfxTexImage2D(GLcontext *ctx, GLenum target, GLint level, static void -tdfxTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, +tdfxTexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1521,7 +1521,7 @@ tdfxTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, static void -tdfxTexImage1D(GLcontext *ctx, GLenum target, GLint level, +tdfxTexImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, @@ -1537,7 +1537,7 @@ tdfxTexImage1D(GLcontext *ctx, GLenum target, GLint level, } static void -tdfxTexSubImage1D(GLcontext *ctx, GLenum target, GLint level, +tdfxTexSubImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, @@ -1561,7 +1561,7 @@ tdfxTexSubImage1D(GLcontext *ctx, GLenum target, GLint level, /**********************************************************************/ static void -tdfxCompressedTexImage2D (GLcontext *ctx, GLenum target, +tdfxCompressedTexImage2D (struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -1671,7 +1671,7 @@ tdfxCompressedTexImage2D (GLcontext *ctx, GLenum target, static void -tdfxCompressedTexSubImage2D( GLcontext *ctx, GLenum target, +tdfxCompressedTexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLint height, GLenum format, @@ -1752,7 +1752,7 @@ PrintTexture(int w, int h, int c, const GLubyte * data) GLboolean -tdfxTestProxyTexImage(GLcontext *ctx, GLenum target, +tdfxTestProxyTexImage(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, @@ -1840,7 +1840,7 @@ tdfxTestProxyTexImage(GLcontext *ctx, GLenum target, * texture object from the core mesa gl_texture_object. Not done at this time. */ static struct gl_texture_object * -tdfxNewTextureObject( GLcontext *ctx, GLuint name, GLenum target ) +tdfxNewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; obj = _mesa_new_texture_object(ctx, name, target); diff --git a/src/mesa/drivers/dri/tdfx/tdfx_tex.h b/src/mesa/drivers/dri/tdfx/tdfx_tex.h index a445935a01..26885fae3e 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_tex.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_tex.h @@ -47,47 +47,47 @@ extern void -tdfxTexValidate(GLcontext * ctx, struct gl_texture_object *tObj); +tdfxTexValidate(struct gl_context * ctx, struct gl_texture_object *tObj); #if 000 /* DEAD? */ extern void -fxDDTexUseGlobalPalette(GLcontext * ctx, GLboolean state); +fxDDTexUseGlobalPalette(struct gl_context * ctx, GLboolean state); #endif extern GLboolean -tdfxTestProxyTexImage(GLcontext *ctx, GLenum target, +tdfxTestProxyTexImage(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border); extern GLvoid * -tdfxDDGetTexImage(GLcontext * ctx, GLenum target, GLint level, +tdfxDDGetTexImage(struct gl_context * ctx, GLenum target, GLint level, const struct gl_texture_object *texObj, GLenum * formatOut, GLenum * typeOut, GLboolean * freeImageOut); extern void -tdfxDDGetCompressedTexImage( GLcontext *ctx, GLenum target, +tdfxDDGetCompressedTexImage( struct gl_context *ctx, GLenum target, GLint lod, void *image, const struct gl_texture_object *texObj, struct gl_texture_image *texImage ); extern GLint -tdfxSpecificCompressedTexFormat(GLcontext *ctx, +tdfxSpecificCompressedTexFormat(struct gl_context *ctx, GLint internalFormat, GLint numDimensions); extern GLint -tdfxBaseCompressedTexFormat(GLcontext *ctx, +tdfxBaseCompressedTexFormat(struct gl_context *ctx, GLint internalFormat); extern GLboolean -tdfxDDIsCompressedFormat(GLcontext *ctx, GLint internalFormat); +tdfxDDIsCompressedFormat(struct gl_context *ctx, GLint internalFormat); extern GLsizei -tdfxDDCompressedImageSize(GLcontext *ctx, +tdfxDDCompressedImageSize(struct gl_context *ctx, GLenum intFormat, GLuint numDimensions, GLuint width, diff --git a/src/mesa/drivers/dri/tdfx/tdfx_texman.c b/src/mesa/drivers/dri/tdfx/tdfx_texman.c index 726cc58a10..1160ae2d0b 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_texman.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_texman.c @@ -744,7 +744,7 @@ tdfxTMDownloadTexture(tdfxContextPtr fxMesa, struct gl_texture_object *tObj) void -tdfxTMReloadMipMapLevel(GLcontext *ctx, struct gl_texture_object *tObj, +tdfxTMReloadMipMapLevel(struct gl_context *ctx, struct gl_texture_object *tObj, GLint level) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -917,6 +917,7 @@ tdfxTMMoveOutTM_NoLock( tdfxContextPtr fxMesa, struct gl_texture_object *tObj ) case TDFX_TMU_SPLIT: case TDFX_TMU_BOTH: assert(!shared->umaTexMemory); + (void) shared; RemoveRange_NoLock(fxMesa, TDFX_TMU0, ti->tm[TDFX_TMU0]); RemoveRange_NoLock(fxMesa, TDFX_TMU1, ti->tm[TDFX_TMU1]); break; @@ -963,7 +964,7 @@ tdfxTMFreeTexture(tdfxContextPtr fxMesa, struct gl_texture_object *tObj) */ void tdfxTMRestoreTextures_NoLock( tdfxContextPtr fxMesa ) { - GLcontext *ctx = fxMesa->glCtx; + struct gl_context *ctx = fxMesa->glCtx; struct _mesa_HashTable *textures = fxMesa->glCtx->Shared->TexObjects; GLuint id; diff --git a/src/mesa/drivers/dri/tdfx/tdfx_texman.h b/src/mesa/drivers/dri/tdfx/tdfx_texman.h index a9af4cb7c5..87bdc3fea9 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_texman.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_texman.h @@ -48,7 +48,7 @@ extern void tdfxTMClose( tdfxContextPtr fxMesa ); extern void tdfxTMDownloadTexture(tdfxContextPtr fxMesa, struct gl_texture_object *tObj); -extern void tdfxTMReloadMipMapLevel( GLcontext *ctx, +extern void tdfxTMReloadMipMapLevel( struct gl_context *ctx, struct gl_texture_object *tObj, GLint level ); diff --git a/src/mesa/drivers/dri/tdfx/tdfx_texstate.c b/src/mesa/drivers/dri/tdfx/tdfx_texstate.c index b04f48c7a7..227f36be65 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_texstate.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_texstate.c @@ -160,7 +160,7 @@ * If we fail, we'll have to use software rendering. */ static GLboolean -SetupTexEnvNapalm(GLcontext *ctx, GLboolean useIteratedRGBA, +SetupTexEnvNapalm(struct gl_context *ctx, GLboolean useIteratedRGBA, const struct gl_texture_unit *texUnit, GLenum baseFormat, struct tdfx_texcombine_ext *env) { @@ -838,7 +838,7 @@ SetupTexEnvNapalm(GLcontext *ctx, GLboolean useIteratedRGBA, * If failure, we'll use software rendering. */ static GLboolean -SetupSingleTexEnvVoodoo3(GLcontext *ctx, int unit, +SetupSingleTexEnvVoodoo3(struct gl_context *ctx, int unit, GLenum envMode, GLenum baseFormat) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1047,7 +1047,7 @@ SetupSingleTexEnvVoodoo3(GLcontext *ctx, int unit, * If failure, we'll use software rendering. */ static GLboolean -SetupDoubleTexEnvVoodoo3(GLcontext *ctx, int tmu0, +SetupDoubleTexEnvVoodoo3(struct gl_context *ctx, int tmu0, GLenum envMode0, GLenum baseFormat0, GLenum envMode1, GLenum baseFormat1) { @@ -1362,7 +1362,7 @@ setupSingleTMU(tdfxContextPtr fxMesa, struct gl_texture_object *tObj) { struct tdfxSharedState *shared = (struct tdfxSharedState *) fxMesa->glCtx->Shared->DriverData; tdfxTexInfo *ti = TDFX_TEXTURE_DATA(tObj); - const GLcontext *ctx = fxMesa->glCtx; + const struct gl_context *ctx = fxMesa->glCtx; /* Make sure we're not loaded incorrectly */ if (ti->isInTM && !shared->umaTexMemory) { @@ -1571,7 +1571,7 @@ selectSingleTMUSrc(tdfxContextPtr fxMesa, GLint tmu, FxBool LODblend) #if 0 static void print_state(tdfxContextPtr fxMesa) { - GLcontext *ctx = fxMesa->glCtx; + struct gl_context *ctx = fxMesa->glCtx; struct gl_texture_object *tObj0 = ctx->Texture.Unit[0]._Current; struct gl_texture_object *tObj1 = ctx->Texture.Unit[1]._Current; GLenum base0 = tObj0->Image[0][tObj0->BaseLevel] ? tObj0->Image[0][tObj0->BaseLevel]->Format : 99; @@ -1599,7 +1599,7 @@ static void print_state(tdfxContextPtr fxMesa) * Input: ctx - the context * unit - the OpenGL texture unit to use. */ -static void setupTextureSingleTMU(GLcontext * ctx, GLuint unit) +static void setupTextureSingleTMU(struct gl_context * ctx, GLuint unit) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); tdfxTexInfo *ti; @@ -1715,7 +1715,7 @@ setupDoubleTMU(tdfxContextPtr fxMesa, const struct gl_shared_state *mesaShared = fxMesa->glCtx->Shared; const struct tdfxSharedState *shared = (struct tdfxSharedState *) mesaShared->DriverData; - const GLcontext *ctx = fxMesa->glCtx; + const struct gl_context *ctx = fxMesa->glCtx; tdfxTexInfo *ti0 = TDFX_TEXTURE_DATA(tObj0); tdfxTexInfo *ti1 = TDFX_TEXTURE_DATA(tObj1); GLuint tstate = 0; @@ -1914,7 +1914,7 @@ setupDoubleTMU(tdfxContextPtr fxMesa, #undef T1_IN_TMU1 } -static void setupTextureDoubleTMU(GLcontext * ctx) +static void setupTextureDoubleTMU(struct gl_context * ctx) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); struct gl_texture_object *tObj0 = ctx->Texture.Unit[1]._Current; @@ -2019,7 +2019,7 @@ static void setupTextureDoubleTMU(GLcontext * ctx) void -tdfxUpdateTextureState( GLcontext *ctx ) +tdfxUpdateTextureState( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -2108,7 +2108,7 @@ tdfxUpdateTextureState( GLcontext *ctx ) * This is very common in Quake3. */ void -tdfxUpdateTextureBinding( GLcontext *ctx ) +tdfxUpdateTextureBinding( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); struct gl_texture_object *tObj0 = ctx->Texture.Unit[0]._Current; diff --git a/src/mesa/drivers/dri/tdfx/tdfx_texstate.h b/src/mesa/drivers/dri/tdfx/tdfx_texstate.h index 0c5c4101ca..92ac3a37eb 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_texstate.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_texstate.h @@ -37,7 +37,7 @@ #ifndef __TDFX_TEXSTATE_H__ #define __TDFX_TEXSTATE_H__ -extern void tdfxUpdateTextureState( GLcontext *ctx ); -extern void tdfxUpdateTextureBinding( GLcontext *ctx ); +extern void tdfxUpdateTextureState( struct gl_context *ctx ); +extern void tdfxUpdateTextureBinding( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/tdfx/tdfx_tris.c b/src/mesa/drivers/dri/tdfx/tdfx_tris.c index d65833c20b..1f8cf6cde1 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_tris.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_tris.c @@ -49,8 +49,8 @@ #include "tdfx_render.h" -static void tdfxRasterPrimitive( GLcontext *ctx, GLenum prim ); -static void tdfxRenderPrimitive( GLcontext *ctx, GLenum prim ); +static void tdfxRasterPrimitive( struct gl_context *ctx, GLenum prim ); +static void tdfxRenderPrimitive( struct gl_context *ctx, GLenum prim ); static GLenum reduced_prim[GL_POLYGON+1] = { GL_POINTS, @@ -136,7 +136,7 @@ do { \ * primitives. */ static void -tdfx_translate_vertex( GLcontext *ctx, const tdfxVertex *src, SWvertex *dst) +tdfx_translate_vertex( struct gl_context *ctx, const tdfxVertex *src, SWvertex *dst) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -193,7 +193,7 @@ tdfx_fallback_tri( tdfxContextPtr fxMesa, tdfxVertex *v1, tdfxVertex *v2 ) { - GLcontext *ctx = fxMesa->glCtx; + struct gl_context *ctx = fxMesa->glCtx; SWvertex v[3]; tdfx_translate_vertex( ctx, v0, &v[0] ); tdfx_translate_vertex( ctx, v1, &v[1] ); @@ -207,7 +207,7 @@ tdfx_fallback_line( tdfxContextPtr fxMesa, tdfxVertex *v0, tdfxVertex *v1 ) { - GLcontext *ctx = fxMesa->glCtx; + struct gl_context *ctx = fxMesa->glCtx; SWvertex v[2]; tdfx_translate_vertex( ctx, v0, &v[0] ); tdfx_translate_vertex( ctx, v1, &v[1] ); @@ -219,7 +219,7 @@ static void tdfx_fallback_point( tdfxContextPtr fxMesa, tdfxVertex *v0 ) { - GLcontext *ctx = fxMesa->glCtx; + struct gl_context *ctx = fxMesa->glCtx; SWvertex v[1]; tdfx_translate_vertex( ctx, v0, &v[0] ); _swrast_Point( ctx, &v[0] ); @@ -229,7 +229,7 @@ tdfx_fallback_point( tdfxContextPtr fxMesa, * Functions to draw basic primitives * ***********************************************************************/ -static void tdfx_print_vertex( GLcontext *ctx, const tdfxVertex *v ) +static void tdfx_print_vertex( struct gl_context *ctx, const tdfxVertex *v ) { tdfxContextPtr tmesa = TDFX_CONTEXT( ctx ); @@ -557,7 +557,7 @@ static void init_rast_tab( void ) */ #define INIT(x) tdfxRenderPrimitive( ctx, x ) -static void tdfx_render_vb_points( GLcontext *ctx, +static void tdfx_render_vb_points( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -584,7 +584,7 @@ static void tdfx_render_vb_points( GLcontext *ctx, } } -static void tdfx_render_vb_line_strip( GLcontext *ctx, +static void tdfx_render_vb_line_strip( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -612,7 +612,7 @@ static void tdfx_render_vb_line_strip( GLcontext *ctx, } } -static void tdfx_render_vb_line_loop( GLcontext *ctx, +static void tdfx_render_vb_line_loop( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -649,7 +649,7 @@ static void tdfx_render_vb_line_loop( GLcontext *ctx, } } -static void tdfx_render_vb_lines( GLcontext *ctx, +static void tdfx_render_vb_lines( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -677,7 +677,7 @@ static void tdfx_render_vb_lines( GLcontext *ctx, } } -static void tdfx_render_vb_triangles( GLcontext *ctx, +static void tdfx_render_vb_triangles( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -708,7 +708,7 @@ static void tdfx_render_vb_triangles( GLcontext *ctx, } -static void tdfx_render_vb_tri_strip( GLcontext *ctx, +static void tdfx_render_vb_tri_strip( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -730,7 +730,7 @@ static void tdfx_render_vb_tri_strip( GLcontext *ctx, } -static void tdfx_render_vb_tri_fan( GLcontext *ctx, +static void tdfx_render_vb_tri_fan( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -745,7 +745,7 @@ static void tdfx_render_vb_tri_fan( GLcontext *ctx, fxVB + start, sizeof(tdfxVertex) ); } -static void tdfx_render_vb_quads( GLcontext *ctx, +static void tdfx_render_vb_quads( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -771,7 +771,7 @@ static void tdfx_render_vb_quads( GLcontext *ctx, } } -static void tdfx_render_vb_quad_strip( GLcontext *ctx, +static void tdfx_render_vb_quad_strip( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -788,7 +788,7 @@ static void tdfx_render_vb_quad_strip( GLcontext *ctx, count-start, fxVB + start, sizeof(tdfxVertex)); } -static void tdfx_render_vb_poly( GLcontext *ctx, +static void tdfx_render_vb_poly( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -803,7 +803,7 @@ static void tdfx_render_vb_poly( GLcontext *ctx, fxVB + start, sizeof(tdfxVertex)); } -static void tdfx_render_vb_noop( GLcontext *ctx, +static void tdfx_render_vb_noop( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -811,7 +811,7 @@ static void tdfx_render_vb_noop( GLcontext *ctx, (void) (ctx && start && count && flags); } -static void (*tdfx_render_tab_verts[GL_POLYGON+2])(GLcontext *, +static void (*tdfx_render_tab_verts[GL_POLYGON+2])(struct gl_context *, GLuint, GLuint, GLuint) = @@ -897,7 +897,7 @@ static void (*tdfx_render_tab_verts[GL_POLYGON+2])(GLcontext *, -static void tdfxRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void tdfxRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -920,13 +920,13 @@ static void tdfxRenderClippedPoly( GLcontext *ctx, const GLuint *elts, tnl->Driver.Render.PrimitiveNotify( ctx, prim ); } -static void tdfxRenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +static void tdfxRenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); } -static void tdfxFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, +static void tdfxFastRenderClippedPoly( struct gl_context *ctx, const GLuint *elts, GLuint n ) { int i; @@ -974,7 +974,7 @@ static void tdfxFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, _NEW_POLYGONSTIPPLE) -static void tdfxChooseRenderState(GLcontext *ctx) +static void tdfxChooseRenderState(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1061,7 +1061,7 @@ static void tdfxChooseRenderState(GLcontext *ctx) * TODO: Use single back-buffer cliprect where possible. * NOTE: <pass> starts at 1, not zero! */ -static GLboolean multipass_cliprect( GLcontext *ctx, GLuint pass ) +static GLboolean multipass_cliprect( struct gl_context *ctx, GLuint pass ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); if (pass >= fxMesa->numClipRects) @@ -1081,7 +1081,7 @@ static GLboolean multipass_cliprect( GLcontext *ctx, GLuint pass ) /* Runtime render state and callbacks */ /**********************************************************************/ -static void tdfxRunPipeline( GLcontext *ctx ) +static void tdfxRunPipeline( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1103,7 +1103,7 @@ static void tdfxRunPipeline( GLcontext *ctx ) } -static void tdfxRenderStart( GLcontext *ctx ) +static void tdfxRenderStart( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1138,7 +1138,7 @@ static void tdfxRenderStart( GLcontext *ctx ) /* Always called between RenderStart and RenderFinish --> We already * hold the lock. */ -static void tdfxRasterPrimitive( GLcontext *ctx, GLenum prim ) +static void tdfxRasterPrimitive( struct gl_context *ctx, GLenum prim ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -1170,7 +1170,7 @@ static void tdfxRasterPrimitive( GLcontext *ctx, GLenum prim ) * which renders strips as strips, the equivalent calculations are * performed in tdfx_render.c. */ -static void tdfxRenderPrimitive( GLcontext *ctx, GLenum prim ) +static void tdfxRenderPrimitive( struct gl_context *ctx, GLenum prim ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); GLuint rprim = reduced_prim[prim]; @@ -1185,7 +1185,7 @@ static void tdfxRenderPrimitive( GLcontext *ctx, GLenum prim ) } } -static void tdfxRenderFinish( GLcontext *ctx ) +static void tdfxRenderFinish( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1227,7 +1227,7 @@ static char *getFallbackString(GLuint bit) } -void tdfxFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) +void tdfxFallback( struct gl_context *ctx, GLuint bit, GLboolean mode ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); @@ -1266,7 +1266,7 @@ void tdfxFallback( GLcontext *ctx, GLuint bit, GLboolean mode ) } -void tdfxDDInitTriFuncs( GLcontext *ctx ) +void tdfxDDInitTriFuncs( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/tdfx/tdfx_tris.h b/src/mesa/drivers/dri/tdfx/tdfx_tris.h index ec48a48692..421b8e1c0d 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_tris.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_tris.h @@ -35,7 +35,7 @@ #include "main/mtypes.h" -extern void tdfxDDInitTriFuncs( GLcontext *ctx ); +extern void tdfxDDInitTriFuncs( struct gl_context *ctx ); #endif diff --git a/src/mesa/drivers/dri/tdfx/tdfx_vb.c b/src/mesa/drivers/dri/tdfx/tdfx_vb.c index 546d89aa84..dafb6eccd9 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_vb.c +++ b/src/mesa/drivers/dri/tdfx/tdfx_vb.c @@ -33,7 +33,7 @@ #include "tdfx_vb.h" #include "tdfx_render.h" -static void copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void copy_pv( struct gl_context *ctx, GLuint edst, GLuint esrc ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); tdfxVertex *dst = fxMesa->verts + edst; @@ -42,10 +42,10 @@ static void copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ) } static struct { - void (*emit)( GLcontext *, GLuint, GLuint, void * ); + void (*emit)( struct gl_context *, GLuint, GLuint, void * ); tnl_interp_func interp; tnl_copy_pv_func copy_pv; - GLboolean (*check_tex_sizes)( GLcontext *ctx ); + GLboolean (*check_tex_sizes)( struct gl_context *ctx ); GLuint vertex_format; } setup_tab[TDFX_MAX_SETUP]; @@ -55,7 +55,7 @@ static struct { #define GET_COLOR(ptr, idx) ((ptr)->data[idx]) -static void interp_extras( GLcontext *ctx, +static void interp_extras( struct gl_context *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary ) @@ -79,7 +79,7 @@ static void interp_extras( GLcontext *ctx, force_boundary); } -static void copy_pv_extras( GLcontext *ctx, GLuint dst, GLuint src ) +static void copy_pv_extras( struct gl_context *ctx, GLuint dst, GLuint src ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -204,7 +204,7 @@ void tdfxPrintSetupFlags(char *msg, GLuint flags ) -void tdfxCheckTexSizes( GLcontext *ctx ) +void tdfxCheckTexSizes( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -234,7 +234,7 @@ void tdfxCheckTexSizes( GLcontext *ctx ) } -void tdfxBuildVertices( GLcontext *ctx, GLuint start, GLuint end, +void tdfxBuildVertices( struct gl_context *ctx, GLuint start, GLuint end, GLuint newinputs ) { tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -275,7 +275,7 @@ void tdfxBuildVertices( GLcontext *ctx, GLuint start, GLuint end, } -void tdfxChooseVertexState( GLcontext *ctx ) +void tdfxChooseVertexState( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tdfxContextPtr fxMesa = TDFX_CONTEXT( ctx ); @@ -321,7 +321,7 @@ void tdfxChooseVertexState( GLcontext *ctx ) -void tdfxInitVB( GLcontext *ctx ) +void tdfxInitVB( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); GLuint size = TNL_CONTEXT(ctx)->vb.Size; @@ -337,7 +337,7 @@ void tdfxInitVB( GLcontext *ctx ) } -void tdfxFreeVB( GLcontext *ctx ) +void tdfxFreeVB( struct gl_context *ctx ) { tdfxContextPtr fxMesa = TDFX_CONTEXT(ctx); if (fxMesa->verts) { diff --git a/src/mesa/drivers/dri/tdfx/tdfx_vb.h b/src/mesa/drivers/dri/tdfx/tdfx_vb.h index 1e190e85f6..238a076d87 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_vb.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_vb.h @@ -48,21 +48,21 @@ _NEW_FOG) -extern void tdfxValidateBuildProjVerts(GLcontext *ctx, +extern void tdfxValidateBuildProjVerts(struct gl_context *ctx, GLuint start, GLuint count, GLuint newinputs ); extern void tdfxPrintSetupFlags(char *msg, GLuint flags ); -extern void tdfxInitVB( GLcontext *ctx ); +extern void tdfxInitVB( struct gl_context *ctx ); -extern void tdfxFreeVB( GLcontext *ctx ); +extern void tdfxFreeVB( struct gl_context *ctx ); -extern void tdfxCheckTexSizes( GLcontext *ctx ); +extern void tdfxCheckTexSizes( struct gl_context *ctx ); -extern void tdfxChooseVertexState( GLcontext *ctx ); +extern void tdfxChooseVertexState( struct gl_context *ctx ); -extern void tdfxBuildVertices( GLcontext *ctx, GLuint start, GLuint end, +extern void tdfxBuildVertices( struct gl_context *ctx, GLuint start, GLuint end, GLuint newinputs ); #endif diff --git a/src/mesa/drivers/dri/tdfx/tdfx_vbtmp.h b/src/mesa/drivers/dri/tdfx/tdfx_vbtmp.h index 19baf7d0d2..c593ce05ea 100644 --- a/src/mesa/drivers/dri/tdfx/tdfx_vbtmp.h +++ b/src/mesa/drivers/dri/tdfx/tdfx_vbtmp.h @@ -33,7 +33,7 @@ #define VIEWPORT_Z(dst,z) dst = s[10] * z + s[14] -static void TAG(emit)( GLcontext *ctx, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest ) { @@ -157,7 +157,7 @@ static void TAG(emit)( GLcontext *ctx, } -static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) +static GLboolean TAG(check_tex_sizes)( struct gl_context *ctx ) { /* fprintf(stderr, "%s\n", __FUNCTION__); */ @@ -183,7 +183,7 @@ static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) } -static void TAG(interp)( GLcontext *ctx, +static void TAG(interp)( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ) diff --git a/src/mesa/drivers/dri/unichrome/via_context.c b/src/mesa/drivers/dri/unichrome/via_context.c index 4298c94855..963609bde4 100644 --- a/src/mesa/drivers/dri/unichrome/via_context.c +++ b/src/mesa/drivers/dri/unichrome/via_context.c @@ -77,7 +77,7 @@ GLuint VIA_DEBUG = 0; * * \sa glGetString */ -static const GLubyte *viaGetString(GLcontext *ctx, GLenum name) +static const GLubyte *viaGetString(struct gl_context *ctx, GLenum name) { static char buffer[128]; unsigned offset; @@ -133,7 +133,7 @@ viaDeleteRenderbuffer(struct gl_renderbuffer *rb) } static GLboolean -viaRenderbufferStorage(GLcontext *ctx, struct gl_renderbuffer *rb, +viaRenderbufferStorage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { rb->Width = width; @@ -352,7 +352,7 @@ calculate_buffer_parameters(struct via_context *vmesa, } -void viaReAllocateBuffers(GLcontext *ctx, GLframebuffer *drawbuffer, +void viaReAllocateBuffers(struct gl_context *ctx, struct gl_framebuffer *drawbuffer, GLuint width, GLuint height) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -457,11 +457,11 @@ FreeBuffer(struct via_context *vmesa) GLboolean viaCreateContext(gl_api api, - const __GLcontextModes *visual, + const struct gl_config *visual, __DRIcontext *driContextPriv, void *sharedContextPrivate) { - GLcontext *ctx, *shareCtx; + struct gl_context *ctx, *shareCtx; struct via_context *vmesa; __DRIscreen *sPriv = driContextPriv->driScreenPriv; viaScreenPrivate *viaScreen = (viaScreenPrivate *)sPriv->private; @@ -830,11 +830,11 @@ viaMakeCurrent(__DRIcontext *driContextPriv, if (driContextPriv) { struct via_context *vmesa = (struct via_context *)driContextPriv->driverPrivate; - GLcontext *ctx = vmesa->glCtx; + struct gl_context *ctx = vmesa->glCtx; struct gl_framebuffer *drawBuffer, *readBuffer; - drawBuffer = (GLframebuffer *)driDrawPriv->driverPrivate; - readBuffer = (GLframebuffer *)driReadPriv->driverPrivate; + drawBuffer = (struct gl_framebuffer *)driDrawPriv->driverPrivate; + readBuffer = (struct gl_framebuffer *)driReadPriv->driverPrivate; if ((vmesa->driDrawable != driDrawPriv) || (vmesa->driReadable != driReadPriv)) { @@ -935,7 +935,7 @@ viaSwapBuffers(__DRIdrawable *drawablePrivate) dPriv->driContextPriv->driverPrivate) { struct via_context *vmesa = (struct via_context *)dPriv->driContextPriv->driverPrivate; - GLcontext *ctx = vmesa->glCtx; + struct gl_context *ctx = vmesa->glCtx; _mesa_notifySwapBuffers(ctx); diff --git a/src/mesa/drivers/dri/unichrome/via_context.h b/src/mesa/drivers/dri/unichrome/via_context.h index 4e1ab3a6ca..660e771407 100644 --- a/src/mesa/drivers/dri/unichrome/via_context.h +++ b/src/mesa/drivers/dri/unichrome/via_context.h @@ -153,8 +153,8 @@ struct via_texture_object { struct via_context { GLint refcount; - GLcontext *glCtx; - GLcontext *shareCtx; + struct gl_context *glCtx; + struct gl_context *shareCtx; /* XXX These don't belong here. They should be per-drawable state. */ struct via_renderbuffer front; @@ -394,7 +394,7 @@ extern void viaEmitHwStateLocked(struct via_context *vmesa); extern void viaEmitScissorValues(struct via_context *vmesa, int box_nr, int emit); extern void viaXMesaSetBackClipRects(struct via_context *vmesa); extern void viaXMesaSetFrontClipRects(struct via_context *vmesa); -extern void viaReAllocateBuffers(GLcontext *ctx, GLframebuffer *drawbuffer, GLuint width, GLuint height); +extern void viaReAllocateBuffers(struct gl_context *ctx, struct gl_framebuffer *drawbuffer, GLuint width, GLuint height); extern void viaXMesaWindowMoved(struct via_context *vmesa); extern GLboolean viaTexCombineState(struct via_context *vmesa, diff --git a/src/mesa/drivers/dri/unichrome/via_ioctl.c b/src/mesa/drivers/dri/unichrome/via_ioctl.c index 25aad1b204..116adda18e 100644 --- a/src/mesa/drivers/dri/unichrome/via_ioctl.c +++ b/src/mesa/drivers/dri/unichrome/via_ioctl.c @@ -201,7 +201,7 @@ static void viaFillBuffer(struct via_context *vmesa, -static void viaClear(GLcontext *ctx, GLbitfield mask) +static void viaClear(struct gl_context *ctx, GLbitfield mask) { struct via_context *vmesa = VIA_CONTEXT(ctx); __DRIdrawable *dPriv = vmesa->driDrawable; @@ -951,25 +951,25 @@ void viaFlushDma(struct via_context *vmesa) } } -static void viaFlush(GLcontext *ctx) +static void viaFlush(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); VIA_FLUSH_DMA(vmesa); } -static void viaFinish(GLcontext *ctx) +static void viaFinish(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); VIA_FLUSH_DMA(vmesa); viaWaitIdle(vmesa, GL_FALSE); } -static void viaClearStencil(GLcontext *ctx, int s) +static void viaClearStencil(struct gl_context *ctx, int s) { return; } -void viaInitIoctlFuncs(GLcontext *ctx) +void viaInitIoctlFuncs(struct gl_context *ctx) { ctx->Driver.Flush = viaFlush; ctx->Driver.Clear = viaClear; diff --git a/src/mesa/drivers/dri/unichrome/via_ioctl.h b/src/mesa/drivers/dri/unichrome/via_ioctl.h index c6b32cf085..03df789b52 100644 --- a/src/mesa/drivers/dri/unichrome/via_ioctl.h +++ b/src/mesa/drivers/dri/unichrome/via_ioctl.h @@ -32,7 +32,7 @@ void viaFinishPrimitive(struct via_context *vmesa); void viaFlushDma(struct via_context *vmesa); void viaFlushDmaLocked(struct via_context *vmesa, GLuint flags); -void viaInitIoctlFuncs(GLcontext *ctx); +void viaInitIoctlFuncs(struct gl_context *ctx); void viaCopyBuffer(__DRIdrawable *dpriv); void viaPageFlip(__DRIdrawable *dpriv); void viaCheckDma(struct via_context *vmesa, GLuint bytes); diff --git a/src/mesa/drivers/dri/unichrome/via_render.c b/src/mesa/drivers/dri/unichrome/via_render.c index 4351f11955..10e2b4eadd 100644 --- a/src/mesa/drivers/dri/unichrome/via_render.c +++ b/src/mesa/drivers/dri/unichrome/via_render.c @@ -86,7 +86,7 @@ /**********************************************************************/ /* Fast Render pipeline stage */ /**********************************************************************/ -static GLboolean via_run_fastrender(GLcontext *ctx, +static GLboolean via_run_fastrender(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { struct via_context *vmesa = VIA_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/unichrome/via_screen.c b/src/mesa/drivers/dri/unichrome/via_screen.c index 4b3e9d5a38..9ea656cf02 100644 --- a/src/mesa/drivers/dri/unichrome/via_screen.c +++ b/src/mesa/drivers/dri/unichrome/via_screen.c @@ -200,7 +200,7 @@ viaDestroyScreen(__DRIscreen *sPriv) static GLboolean viaCreateBuffer(__DRIscreen *driScrnPriv, __DRIdrawable *driDrawPriv, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, GLboolean isPixmap) { #if 0 @@ -311,7 +311,7 @@ viaCreateBuffer(__DRIscreen *driScrnPriv, static void viaDestroyBuffer(__DRIdrawable *driDrawPriv) { - _mesa_reference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)), NULL); + _mesa_reference_framebuffer((struct gl_framebuffer **)(&(driDrawPriv->driverPrivate)), NULL); } static const __DRIconfig ** @@ -369,7 +369,7 @@ viaFillInModes( __DRIscreen *psp, * * \todo maybe fold this into intelInitDriver * - * \return the __GLcontextModes supported by this driver + * \return the struct gl_config supported by this driver */ static const __DRIconfig ** viaInitScreen(__DRIscreen *psp) diff --git a/src/mesa/drivers/dri/unichrome/via_screen.h b/src/mesa/drivers/dri/unichrome/via_screen.h index 51df0ce4eb..292646dabd 100644 --- a/src/mesa/drivers/dri/unichrome/via_screen.h +++ b/src/mesa/drivers/dri/unichrome/via_screen.h @@ -77,7 +77,7 @@ typedef struct { extern GLboolean viaCreateContext(gl_api api, - const __GLcontextModes *mesaVis, + const struct gl_config *mesaVis, __DRIcontext *driContextPriv, void *sharedContextPrivate); diff --git a/src/mesa/drivers/dri/unichrome/via_span.c b/src/mesa/drivers/dri/unichrome/via_span.c index fa3cbf7a79..4ca584261b 100644 --- a/src/mesa/drivers/dri/unichrome/via_span.c +++ b/src/mesa/drivers/dri/unichrome/via_span.c @@ -149,21 +149,21 @@ /* Move locking out to get reasonable span performance. */ -void viaSpanRenderStart( GLcontext *ctx ) +void viaSpanRenderStart( struct gl_context *ctx ) { struct via_context *vmesa = VIA_CONTEXT(ctx); viaWaitIdle(vmesa, GL_FALSE); LOCK_HARDWARE(vmesa); } -void viaSpanRenderFinish( GLcontext *ctx ) +void viaSpanRenderFinish( struct gl_context *ctx ) { struct via_context *vmesa = VIA_CONTEXT(ctx); _swrast_flush( ctx ); UNLOCK_HARDWARE( vmesa ); } -void viaInitSpanFuncs(GLcontext *ctx) +void viaInitSpanFuncs(struct gl_context *ctx) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference(ctx); swdd->SpanRenderStart = viaSpanRenderStart; @@ -176,7 +176,7 @@ void viaInitSpanFuncs(GLcontext *ctx) * Plug in the Get/Put routines for the given driRenderbuffer. */ void -viaSetSpanFunctions(struct via_renderbuffer *vrb, const GLvisual *vis) +viaSetSpanFunctions(struct via_renderbuffer *vrb, const struct gl_config *vis) { if (vrb->Base.Format == MESA_FORMAT_RGB565) { viaInitPointers_565(&vrb->Base); diff --git a/src/mesa/drivers/dri/unichrome/via_span.h b/src/mesa/drivers/dri/unichrome/via_span.h index 3dca0d5661..b7abf68538 100644 --- a/src/mesa/drivers/dri/unichrome/via_span.h +++ b/src/mesa/drivers/dri/unichrome/via_span.h @@ -25,11 +25,11 @@ #ifndef _VIA_SPAN_H #define _VIA_SPAN_H -extern void viaInitSpanFuncs(GLcontext *ctx); -extern void viaSpanRenderStart( GLcontext *ctx ); -extern void viaSpanRenderFinish( GLcontext *ctx ); +extern void viaInitSpanFuncs(struct gl_context *ctx); +extern void viaSpanRenderStart( struct gl_context *ctx ); +extern void viaSpanRenderFinish( struct gl_context *ctx ); extern void -viaSetSpanFunctions(struct via_renderbuffer *vrb, const GLvisual *vis); +viaSetSpanFunctions(struct via_renderbuffer *vrb, const struct gl_config *vis); #endif diff --git a/src/mesa/drivers/dri/unichrome/via_state.c b/src/mesa/drivers/dri/unichrome/via_state.c index f7029b9492..033352188d 100644 --- a/src/mesa/drivers/dri/unichrome/via_state.c +++ b/src/mesa/drivers/dri/unichrome/via_state.c @@ -78,7 +78,7 @@ static GLuint viaComputeLodBias(GLfloat bias) void viaEmitState(struct via_context *vmesa) { - GLcontext *ctx = vmesa->glCtx; + struct gl_context *ctx = vmesa->glCtx; GLuint i = 0; GLuint j = 0; RING_VARS; @@ -523,7 +523,7 @@ static INLINE GLuint viaPackColor(GLuint bpp, } } -static void viaBlendEquationSeparate(GLcontext *ctx, +static void viaBlendEquationSeparate(struct gl_context *ctx, GLenum rgbMode, GLenum aMode) { @@ -545,7 +545,7 @@ static void viaBlendEquationSeparate(GLcontext *ctx, ctx->Color.LogicOp != GL_COPY)); } -static void viaBlendFunc(GLcontext *ctx, GLenum sfactor, GLenum dfactor) +static void viaBlendFunc(struct gl_context *ctx, GLenum sfactor, GLenum dfactor) { struct via_context *vmesa = VIA_CONTEXT(ctx); GLboolean fallback = GL_FALSE; @@ -580,7 +580,7 @@ static void viaBlendFunc(GLcontext *ctx, GLenum sfactor, GLenum dfactor) /* Shouldn't be called as the extension is disabled. */ -static void viaBlendFuncSeparate(GLcontext *ctx, GLenum sfactorRGB, +static void viaBlendFuncSeparate(struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA) { @@ -597,7 +597,7 @@ static void viaBlendFuncSeparate(GLcontext *ctx, GLenum sfactorRGB, /* ============================================================= * Hardware clipping */ -static void viaScissor(GLcontext *ctx, GLint x, GLint y, +static void viaScissor(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -619,7 +619,7 @@ static void viaScissor(GLcontext *ctx, GLint x, GLint y, vmesa->scissorRect.y2 = vmesa->driDrawable->h - y; } -static void viaEnable(GLcontext *ctx, GLenum cap, GLboolean state) +static void viaEnable(struct gl_context *ctx, GLenum cap, GLboolean state) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -637,13 +637,13 @@ static void viaEnable(GLcontext *ctx, GLenum cap, GLboolean state) /* Fallback to swrast for select and feedback. */ -static void viaRenderMode(GLcontext *ctx, GLenum mode) +static void viaRenderMode(struct gl_context *ctx, GLenum mode) { FALLBACK(VIA_CONTEXT(ctx), VIA_FALLBACK_RENDERMODE, (mode != GL_RENDER)); } -static void viaDrawBuffer(GLcontext *ctx, GLenum mode) +static void viaDrawBuffer(struct gl_context *ctx, GLenum mode) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -678,7 +678,7 @@ static void viaDrawBuffer(GLcontext *ctx, GLenum mode) viaXMesaWindowMoved(vmesa); } -static void viaClearColor(GLcontext *ctx, const GLfloat color[4]) +static void viaClearColor(struct gl_context *ctx, const GLfloat color[4]) { struct via_context *vmesa = VIA_CONTEXT(ctx); GLubyte pcolor[4]; @@ -696,7 +696,7 @@ static void viaClearColor(GLcontext *ctx, const GLfloat color[4]) #define WRITEMASK_GREEN_SHIFT 29 #define WRITEMASK_BLUE_SHIFT 28 -static void viaColorMask(GLcontext *ctx, +static void viaColorMask(struct gl_context *ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a) { @@ -716,7 +716,7 @@ static void viaColorMask(GLcontext *ctx, /* This hardware just isn't capable of private back buffers without * glitches and/or a hefty locking scheme. */ -void viaCalcViewport(GLcontext *ctx) +void viaCalcViewport(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); __DRIdrawable *dPriv = vmesa->driDrawable; @@ -733,20 +733,20 @@ void viaCalcViewport(GLcontext *ctx) m[MAT_TZ] = v[MAT_TZ] * (1.0 / vmesa->depth_max); } -static void viaViewport(GLcontext *ctx, +static void viaViewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) { viaCalcViewport(ctx); } -static void viaDepthRange(GLcontext *ctx, +static void viaDepthRange(struct gl_context *ctx, GLclampd nearval, GLclampd farval) { viaCalcViewport(ctx); } -void viaInitState(GLcontext *ctx) +void viaInitState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -865,7 +865,7 @@ get_minmag_filter( GLenum min, GLenum mag ) } -static GLboolean viaChooseTextureState(GLcontext *ctx) +static GLboolean viaChooseTextureState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); struct gl_texture_unit *texUnit0 = &ctx->Texture.Unit[0]; @@ -950,7 +950,7 @@ static GLboolean viaChooseTextureState(GLcontext *ctx) return GL_TRUE; } -static void viaChooseColorState(GLcontext *ctx) +static void viaChooseColorState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); GLenum s = ctx->Color.BlendSrcRGB; @@ -1246,7 +1246,7 @@ static void viaChooseColorState(GLcontext *ctx) vmesa->regEnable &= ~HC_HenAW_MASK; } -static void viaChooseFogState(GLcontext *ctx) +static void viaChooseFogState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1271,7 +1271,7 @@ static void viaChooseFogState(GLcontext *ctx) } } -static void viaChooseDepthState(GLcontext *ctx) +static void viaChooseDepthState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); if (ctx->Depth.Test) { @@ -1295,7 +1295,7 @@ static void viaChooseDepthState(GLcontext *ctx) } } -static void viaChooseLineState(GLcontext *ctx) +static void viaChooseLineState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1309,7 +1309,7 @@ static void viaChooseLineState(GLcontext *ctx) } } -static void viaChoosePolygonState(GLcontext *ctx) +static void viaChoosePolygonState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1335,7 +1335,7 @@ static void viaChoosePolygonState(GLcontext *ctx) } } -static void viaChooseStencilState(GLcontext *ctx) +static void viaChooseStencilState(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1421,7 +1421,7 @@ static void viaChooseStencilState(GLcontext *ctx) -static void viaChooseTriangle(GLcontext *ctx) +static void viaChooseTriangle(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1445,7 +1445,7 @@ static void viaChooseTriangle(GLcontext *ctx) } } -void viaValidateState( GLcontext *ctx ) +void viaValidateState( struct gl_context *ctx ) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1492,7 +1492,7 @@ void viaValidateState( GLcontext *ctx ) vmesa->newState = 0; } -static void viaInvalidateState(GLcontext *ctx, GLuint newState) +static void viaInvalidateState(struct gl_context *ctx, GLuint newState) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1505,7 +1505,7 @@ static void viaInvalidateState(GLcontext *ctx, GLuint newState) _tnl_InvalidateState(ctx, newState); } -void viaInitStateFuncs(GLcontext *ctx) +void viaInitStateFuncs(struct gl_context *ctx) { /* Callbacks for internal Mesa events. */ diff --git a/src/mesa/drivers/dri/unichrome/via_state.h b/src/mesa/drivers/dri/unichrome/via_state.h index 065ec57d33..8a23705520 100644 --- a/src/mesa/drivers/dri/unichrome/via_state.h +++ b/src/mesa/drivers/dri/unichrome/via_state.h @@ -27,10 +27,10 @@ #include "via_context.h" -extern void viaInitState(GLcontext *ctx); -extern void viaInitStateFuncs(GLcontext *ctx); -extern void viaCalcViewport(GLcontext *ctx); -extern void viaValidateState(GLcontext *ctx); +extern void viaInitState(struct gl_context *ctx); +extern void viaInitStateFuncs(struct gl_context *ctx); +extern void viaCalcViewport(struct gl_context *ctx); +extern void viaValidateState(struct gl_context *ctx); extern void viaEmitState(struct via_context *vmesa); extern void viaFallback(struct via_context *vmesa, GLuint bit, GLboolean mode); diff --git a/src/mesa/drivers/dri/unichrome/via_tex.c b/src/mesa/drivers/dri/unichrome/via_tex.c index 49426fef8d..18fb8f33b9 100644 --- a/src/mesa/drivers/dri/unichrome/via_tex.c +++ b/src/mesa/drivers/dri/unichrome/via_tex.c @@ -45,7 +45,7 @@ #include "via_3d_reg.h" static gl_format -viaChooseTexFormat( GLcontext *ctx, GLint internalFormat, +viaChooseTexFormat( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -437,7 +437,7 @@ GLboolean viaSwapOutWork( struct via_context *vmesa ) /* Basically, just collect the image dimensions and addresses for each * image and update the texture object state accordingly. */ -static GLboolean viaSetTexImages(GLcontext *ctx, +static GLboolean viaSetTexImages(struct gl_context *ctx, struct gl_texture_object *texObj) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -624,7 +624,7 @@ static GLboolean viaSetTexImages(GLcontext *ctx, } -GLboolean viaUpdateTextureState( GLcontext *ctx ) +GLboolean viaUpdateTextureState( struct gl_context *ctx ) { struct gl_texture_unit *texUnit = ctx->Texture.Unit; GLuint i; @@ -651,7 +651,7 @@ GLboolean viaUpdateTextureState( GLcontext *ctx ) -static void viaTexImage(GLcontext *ctx, +static void viaTexImage(struct gl_context *ctx, GLint dims, GLenum target, GLint level, GLint internalFormat, @@ -798,7 +798,7 @@ static void viaTexImage(GLcontext *ctx, _mesa_unmap_teximage_pbo(ctx, packing); } -static void viaTexImage2D(GLcontext *ctx, +static void viaTexImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, @@ -813,7 +813,7 @@ static void viaTexImage2D(GLcontext *ctx, packing, texObj, texImage ); } -static void viaTexSubImage2D(GLcontext *ctx, +static void viaTexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, @@ -834,7 +834,7 @@ static void viaTexSubImage2D(GLcontext *ctx, texImage); } -static void viaTexImage1D(GLcontext *ctx, +static void viaTexImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, @@ -849,7 +849,7 @@ static void viaTexImage1D(GLcontext *ctx, packing, texObj, texImage ); } -static void viaTexSubImage1D(GLcontext *ctx, +static void viaTexSubImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -872,7 +872,7 @@ static void viaTexSubImage1D(GLcontext *ctx, -static GLboolean viaIsTextureResident(GLcontext *ctx, +static GLboolean viaIsTextureResident(struct gl_context *ctx, struct gl_texture_object *texObj) { struct via_texture_object *viaObj = @@ -884,14 +884,14 @@ static GLboolean viaIsTextureResident(GLcontext *ctx, -static struct gl_texture_image *viaNewTextureImage( GLcontext *ctx ) +static struct gl_texture_image *viaNewTextureImage( struct gl_context *ctx ) { (void) ctx; return (struct gl_texture_image *)CALLOC_STRUCT(via_texture_image); } -static struct gl_texture_object *viaNewTextureObject( GLcontext *ctx, +static struct gl_texture_object *viaNewTextureObject( struct gl_context *ctx, GLuint name, GLenum target ) { @@ -906,7 +906,7 @@ static struct gl_texture_object *viaNewTextureObject( GLcontext *ctx, } -static void viaFreeTextureImageData( GLcontext *ctx, +static void viaFreeTextureImageData( struct gl_context *ctx, struct gl_texture_image *texImage ) { struct via_context *vmesa = VIA_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/unichrome/via_tex.h b/src/mesa/drivers/dri/unichrome/via_tex.h index 25eeee32f3..9495c956b5 100644 --- a/src/mesa/drivers/dri/unichrome/via_tex.h +++ b/src/mesa/drivers/dri/unichrome/via_tex.h @@ -30,7 +30,7 @@ struct via_context; -GLboolean viaUpdateTextureState(GLcontext *ctx); +GLboolean viaUpdateTextureState(struct gl_context *ctx); void viaInitTextureFuncs(struct dd_function_table * functions); GLboolean viaSwapOutWork( struct via_context *vmesa ); diff --git a/src/mesa/drivers/dri/unichrome/via_tris.c b/src/mesa/drivers/dri/unichrome/via_tris.c index be3c9a770f..51f6af9228 100644 --- a/src/mesa/drivers/dri/unichrome/via_tris.c +++ b/src/mesa/drivers/dri/unichrome/via_tris.c @@ -490,7 +490,7 @@ via_fallback_tri(struct via_context *vmesa, viaVertex *v1, viaVertex *v2) { - GLcontext *ctx = vmesa->glCtx; + struct gl_context *ctx = vmesa->glCtx; SWvertex v[3]; _swsetup_Translate(ctx, v0, &v[0]); _swsetup_Translate(ctx, v1, &v[1]); @@ -506,7 +506,7 @@ via_fallback_line(struct via_context *vmesa, viaVertex *v0, viaVertex *v1) { - GLcontext *ctx = vmesa->glCtx; + struct gl_context *ctx = vmesa->glCtx; SWvertex v[2]; _swsetup_Translate(ctx, v0, &v[0]); _swsetup_Translate(ctx, v1, &v[1]); @@ -520,7 +520,7 @@ static void via_fallback_point(struct via_context *vmesa, viaVertex *v0) { - GLcontext *ctx = vmesa->glCtx; + struct gl_context *ctx = vmesa->glCtx; SWvertex v[1]; _swsetup_Translate(ctx, v0, &v[0]); viaSpanRenderStart( ctx ); @@ -528,7 +528,7 @@ via_fallback_point(struct via_context *vmesa, viaSpanRenderFinish( ctx ); } -static void viaResetLineStipple( GLcontext *ctx ) +static void viaResetLineStipple( struct gl_context *ctx ) { struct via_context *vmesa = VIA_CONTEXT(ctx); vmesa->regCmdB |= HC_HLPrst_MASK; @@ -578,7 +578,7 @@ static void viaResetLineStipple( GLcontext *ctx ) -static void viaRenderClippedPoly(GLcontext *ctx, const GLuint *elts, +static void viaRenderClippedPoly(struct gl_context *ctx, const GLuint *elts, GLuint n) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -602,13 +602,13 @@ static void viaRenderClippedPoly(GLcontext *ctx, const GLuint *elts, tnl->Driver.Render.PrimitiveNotify( ctx, prim ); } -static void viaRenderClippedLine(GLcontext *ctx, GLuint ii, GLuint jj) +static void viaRenderClippedLine(struct gl_context *ctx, GLuint ii, GLuint jj) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line(ctx, ii, jj); } -static void viaFastRenderClippedPoly(GLcontext *ctx, const GLuint *elts, +static void viaFastRenderClippedPoly(struct gl_context *ctx, const GLuint *elts, GLuint n) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -645,7 +645,7 @@ static void viaFastRenderClippedPoly(GLcontext *ctx, const GLuint *elts, _NEW_POLYGONSTIPPLE) -static void viaChooseRenderState(GLcontext *ctx) +static void viaChooseRenderState(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -739,7 +739,7 @@ do { \ -static void viaChooseVertexState( GLcontext *ctx ) +static void viaChooseVertexState( struct gl_context *ctx ) { struct via_context *vmesa = VIA_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -822,7 +822,7 @@ static void viaChooseVertexState( GLcontext *ctx ) * them. Fallback to swrast if we can't. Returns GL_TRUE if projective * texture coordinates must be faked, GL_FALSE otherwise. */ -static GLboolean viaCheckPTexHack( GLcontext *ctx ) +static GLboolean viaCheckPTexHack( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -853,7 +853,7 @@ static GLboolean viaCheckPTexHack( GLcontext *ctx ) /**********************************************************************/ -static void viaRenderStart(GLcontext *ctx) +static void viaRenderStart(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -888,7 +888,7 @@ static void viaRenderStart(GLcontext *ctx) VB->AttribPtr[VERT_ATTRIB_POS] = VB->NdcPtr; } -static void viaRenderFinish(GLcontext *ctx) +static void viaRenderFinish(struct gl_context *ctx) { VIA_FINISH_PRIM(VIA_CONTEXT(ctx)); } @@ -897,7 +897,7 @@ static void viaRenderFinish(GLcontext *ctx) /* System to flush dma and emit state changes based on the rasterized * primitive. */ -void viaRasterPrimitive(GLcontext *ctx, +void viaRasterPrimitive(struct gl_context *ctx, GLenum glprim, GLenum hwprim) { @@ -1035,7 +1035,7 @@ void viaRasterPrimitive(GLcontext *ctx, /* Callback for mesa: */ -static void viaRenderPrimitive( GLcontext *ctx, GLuint prim ) +static void viaRenderPrimitive( struct gl_context *ctx, GLuint prim ) { viaRasterPrimitive( ctx, prim, hwPrim[prim] ); } @@ -1103,7 +1103,7 @@ void viaFinishPrimitive(struct via_context *vmesa) void viaFallback(struct via_context *vmesa, GLuint bit, GLboolean mode) { - GLcontext *ctx = vmesa->glCtx; + struct gl_context *ctx = vmesa->glCtx; TNLcontext *tnl = TNL_CONTEXT(ctx); GLuint oldfallback = vmesa->Fallback; @@ -1148,7 +1148,7 @@ void viaFallback(struct via_context *vmesa, GLuint bit, GLboolean mode) } } -static void viaRunPipeline( GLcontext *ctx ) +static void viaRunPipeline( struct gl_context *ctx ) { struct via_context *vmesa = VIA_CONTEXT(ctx); @@ -1166,7 +1166,7 @@ static void viaRunPipeline( GLcontext *ctx ) /**********************************************************************/ -void viaInitTriFuncs(GLcontext *ctx) +void viaInitTriFuncs(struct gl_context *ctx) { struct via_context *vmesa = VIA_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); diff --git a/src/mesa/drivers/dri/unichrome/via_tris.h b/src/mesa/drivers/dri/unichrome/via_tris.h index bc6ef4e4eb..4bc83fc624 100644 --- a/src/mesa/drivers/dri/unichrome/via_tris.h +++ b/src/mesa/drivers/dri/unichrome/via_tris.h @@ -28,8 +28,8 @@ #include "main/mtypes.h" extern void viaPrintRenderState(const char *msg, GLuint state); -extern void viaInitTriFuncs(GLcontext *ctx); -extern void viaRasterPrimitive(GLcontext *ctx, GLenum rPrim, GLuint hwPrim); -extern void viaRasterPrimitiveFinish(GLcontext *ctx); +extern void viaInitTriFuncs(struct gl_context *ctx); +extern void viaRasterPrimitive(struct gl_context *ctx, GLenum rPrim, GLuint hwPrim); +extern void viaRasterPrimitiveFinish(struct gl_context *ctx); #endif diff --git a/src/mesa/drivers/fbdev/glfbdev.c b/src/mesa/drivers/fbdev/glfbdev.c index 2ad52d89fc..5195bca97f 100644 --- a/src/mesa/drivers/fbdev/glfbdev.c +++ b/src/mesa/drivers/fbdev/glfbdev.c @@ -73,20 +73,20 @@ /** - * Derived from Mesa's GLvisual class. + * Derived from Mesa's struct gl_config class. */ struct GLFBDevVisualRec { - GLvisual glvisual; /* base class */ + struct gl_config glvisual; /* base class */ struct fb_fix_screeninfo fix; struct fb_var_screeninfo var; int pixelFormat; }; /** - * Derived from Mesa's GLframebuffer class. + * Derived from Mesa's struct gl_framebuffer class. */ struct GLFBDevBufferRec { - GLframebuffer glframebuffer; /* base class */ + struct gl_framebuffer glframebuffer; /* base class */ GLFBDevVisualPtr visual; struct fb_fix_screeninfo fix; struct fb_var_screeninfo var; @@ -95,10 +95,10 @@ struct GLFBDevBufferRec { }; /** - * Derived from Mesa's GLcontext class. + * Derived from Mesa's struct gl_context class. */ struct GLFBDevContextRec { - GLcontext glcontext; /* base class */ + struct gl_context glcontext; /* base class */ GLFBDevVisualPtr visual; GLFBDevBufferPtr drawBuffer; GLFBDevBufferPtr readBuffer; @@ -122,7 +122,7 @@ struct GLFBDevRenderbufferRec { static const GLubyte * -get_string(GLcontext *ctx, GLenum pname) +get_string(struct gl_context *ctx, GLenum pname) { (void) ctx; switch (pname) { @@ -135,7 +135,7 @@ get_string(GLcontext *ctx, GLenum pname) static void -update_state( GLcontext *ctx, GLuint new_state ) +update_state( struct gl_context *ctx, GLuint new_state ) { /* not much to do here - pass it on */ _swrast_InvalidateState( ctx, new_state ); @@ -146,7 +146,7 @@ update_state( GLcontext *ctx, GLuint new_state ) static void -get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height ) +get_buffer_size( struct gl_framebuffer *buffer, GLuint *width, GLuint *height ) { const GLFBDevBufferPtr fbdevbuffer = (GLFBDevBufferPtr) buffer; *width = fbdevbuffer->var.xres; @@ -159,10 +159,10 @@ get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height ) * framebuffer size has changed (and update corresponding state). */ static void -viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) +viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { GLuint newWidth, newHeight; - GLframebuffer *buffer; + struct gl_framebuffer *buffer; buffer = ctx->WinSysDrawBuffer; get_buffer_size( buffer, &newWidth, &newHeight ); @@ -463,7 +463,7 @@ delete_renderbuffer(struct gl_renderbuffer *rb) static GLboolean -renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { /* no-op: the renderbuffer storage is allocated just once when it's @@ -706,7 +706,7 @@ GLFBDevContextPtr glFBDevCreateContext( const GLFBDevVisualPtr visual, GLFBDevContextPtr share ) { GLFBDevContextPtr ctx; - GLcontext *glctx; + struct gl_context *glctx; struct dd_function_table functions; ASSERT(visual); @@ -732,7 +732,7 @@ glFBDevCreateContext( const GLFBDevVisualPtr visual, GLFBDevContextPtr share ) ctx->visual = visual; /* Create module contexts */ - glctx = (GLcontext *) &ctx->glcontext; + glctx = (struct gl_context *) &ctx->glcontext; _swrast_CreateContext( glctx ); _vbo_CreateContext( glctx ); _tnl_CreateContext( glctx ); @@ -762,7 +762,7 @@ glFBDevDestroyContext( GLFBDevContextPtr context ) GLFBDevContextPtr fbdevctx = glFBDevGetCurrentContext(); if (context) { - GLcontext *mesaCtx = &context->glcontext; + struct gl_context *mesaCtx = &context->glcontext; _swsetup_DestroyContext( mesaCtx ); _swrast_DestroyContext( mesaCtx ); diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c index 93d0e8568a..37dc35cbed 100644 --- a/src/mesa/drivers/osmesa/osmesa.c +++ b/src/mesa/drivers/osmesa/osmesa.c @@ -57,14 +57,14 @@ /** - * OSMesa rendering context, derived from core Mesa GLcontext. + * OSMesa rendering context, derived from core Mesa struct gl_context. */ struct osmesa_context { - GLcontext mesa; /*< Base class - this must be first */ - GLvisual *gl_visual; /*< Describes the buffers */ + struct gl_context mesa; /*< Base class - this must be first */ + struct gl_config *gl_visual; /*< Describes the buffers */ struct gl_renderbuffer *rb; /*< The user's colorbuffer */ - GLframebuffer *gl_buffer; /*< The framebuffer, containing user's rb */ + struct gl_framebuffer *gl_buffer; /*< The framebuffer, containing user's rb */ GLenum format; /*< User-specified context format */ GLint userRowLength; /*< user-specified number of pixels per row */ GLint rInd, gInd, bInd, aInd;/*< index offsets for RGBA formats */ @@ -75,7 +75,7 @@ struct osmesa_context static INLINE OSMesaContext -OSMESA_CONTEXT(GLcontext *ctx) +OSMESA_CONTEXT(struct gl_context *ctx) { /* Just cast, since we're using structure containment */ return (OSMesaContext) ctx; @@ -88,7 +88,7 @@ OSMESA_CONTEXT(GLcontext *ctx) static const GLubyte * -get_string( GLcontext *ctx, GLenum name ) +get_string( struct gl_context *ctx, GLenum name ) { (void) ctx; switch (name) { @@ -107,7 +107,7 @@ get_string( GLcontext *ctx, GLenum name ) static void -osmesa_update_state( GLcontext *ctx, GLuint new_state ) +osmesa_update_state( struct gl_context *ctx, GLuint new_state ) { /* easy - just propogate */ _swrast_InvalidateState( ctx, new_state ); @@ -557,7 +557,7 @@ do { \ * function. Otherwise, return NULL. */ static swrast_line_func -osmesa_choose_line_function( GLcontext *ctx ) +osmesa_choose_line_function( struct gl_context *ctx ) { const OSMesaContext osmesa = OSMESA_CONTEXT(ctx); const SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -668,7 +668,7 @@ osmesa_choose_line_function( GLcontext *ctx ) * Return pointer to an optimized triangle function if possible. */ static swrast_tri_func -osmesa_choose_triangle_function( GLcontext *ctx ) +osmesa_choose_triangle_function( struct gl_context *ctx ) { const OSMesaContext osmesa = OSMESA_CONTEXT(ctx); const SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -708,7 +708,7 @@ osmesa_choose_triangle_function( GLcontext *ctx ) * standard swrast functions. */ static void -osmesa_choose_triangle( GLcontext *ctx ) +osmesa_choose_triangle( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -718,7 +718,7 @@ osmesa_choose_triangle( GLcontext *ctx ) } static void -osmesa_choose_line( GLcontext *ctx ) +osmesa_choose_line( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -806,7 +806,7 @@ osmesa_delete_renderbuffer(struct gl_renderbuffer *rb) * Just set up all the gl_renderbuffer methods. */ static GLboolean -osmesa_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +osmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { const OSMesaContext osmesa = OSMESA_CONTEXT(ctx); @@ -994,7 +994,7 @@ osmesa_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, * Allocate a new renderbuffer to describe the user-provided color buffer. */ static struct gl_renderbuffer * -new_osmesa_renderbuffer(GLcontext *ctx, GLenum format, GLenum type) +new_osmesa_renderbuffer(struct gl_context *ctx, GLenum format, GLenum type) { const GLuint name = 0; struct gl_renderbuffer *rb = _mesa_new_renderbuffer(ctx, name); @@ -1157,7 +1157,7 @@ OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits, if (!_mesa_initialize_context(&osmesa->mesa, osmesa->gl_visual, sharelist ? &sharelist->mesa - : (GLcontext *) NULL, + : (struct gl_context *) NULL, &functions, (void *) osmesa)) { _mesa_destroy_visual( osmesa->gl_visual ); free(osmesa); @@ -1202,7 +1202,7 @@ OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits, /* Initialize the software rasterizer and helper modules. */ { - GLcontext *ctx = &osmesa->mesa; + struct gl_context *ctx = &osmesa->mesa; SWcontext *swrast; TNLcontext *tnl; @@ -1367,7 +1367,7 @@ OSMesaMakeCurrent( OSMesaContext osmesa, void *buffer, GLenum type, GLAPI OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void ) { - GLcontext *ctx = _mesa_get_current_context(); + struct gl_context *ctx = _mesa_get_current_context(); if (ctx) return (OSMesaContext) ctx; else diff --git a/src/mesa/drivers/windows/gdi/wmesa.c b/src/mesa/drivers/windows/gdi/wmesa.c index 22b0c46b4f..833e2526f3 100644 --- a/src/mesa/drivers/windows/gdi/wmesa.c +++ b/src/mesa/drivers/windows/gdi/wmesa.c @@ -30,7 +30,7 @@ static WMesaFramebuffer FirstFramebuffer = NULL; * given HDC (Window handle). */ WMesaFramebuffer -wmesa_new_framebuffer(HDC hdc, GLvisual *visual) +wmesa_new_framebuffer(HDC hdc, struct gl_config *visual) { WMesaFramebuffer pwfb = (WMesaFramebuffer) malloc(sizeof(struct wmesa_framebuffer)); @@ -83,18 +83,18 @@ wmesa_lookup_framebuffer(HDC hdc) /** - * Given a GLframebuffer, return the corresponding WMesaFramebuffer. + * Given a struct gl_framebuffer, return the corresponding WMesaFramebuffer. */ -static WMesaFramebuffer wmesa_framebuffer(GLframebuffer *fb) +static WMesaFramebuffer wmesa_framebuffer(struct gl_framebuffer *fb) { return (WMesaFramebuffer) fb; } /** - * Given a GLcontext, return the corresponding WMesaContext. + * Given a struct gl_context, return the corresponding WMesaContext. */ -static WMesaContext wmesa_context(const GLcontext *ctx) +static WMesaContext wmesa_context(const struct gl_context *ctx) { return (WMesaContext) ctx; } @@ -104,7 +104,7 @@ static WMesaContext wmesa_context(const GLcontext *ctx) * Every driver should implement a GetString function in order to * return a meaningful GL_RENDERER string. */ -static const GLubyte *wmesa_get_string(GLcontext *ctx, GLenum name) +static const GLubyte *wmesa_get_string(struct gl_context *ctx, GLenum name) { return (name == GL_RENDERER) ? (GLubyte *) "Mesa Windows GDI Driver" : NULL; @@ -217,14 +217,14 @@ get_window_size(HDC hdc, GLuint *width, GLuint *height) static void -wmesa_get_buffer_size(GLframebuffer *buffer, GLuint *width, GLuint *height) +wmesa_get_buffer_size(struct gl_framebuffer *buffer, GLuint *width, GLuint *height) { WMesaFramebuffer pwfb = wmesa_framebuffer(buffer); get_window_size(pwfb->hDC, width, height); } -static void wmesa_flush(GLcontext *ctx) +static void wmesa_flush(struct gl_context *ctx) { WMesaContext pwc = wmesa_context(ctx); WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->WinSysDrawBuffer); @@ -250,7 +250,7 @@ static void wmesa_flush(GLcontext *ctx) /* * Set the color used to clear the color buffer. */ -static void clear_color(GLcontext *ctx, const GLfloat color[4]) +static void clear_color(struct gl_context *ctx, const GLfloat color[4]) { WMesaContext pwc = wmesa_context(ctx); WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer); @@ -277,7 +277,7 @@ static void clear_color(GLcontext *ctx, const GLfloat color[4]) * Clearing of the other non-color buffers is left to the swrast. */ -static void clear(GLcontext *ctx, GLbitfield mask) +static void clear(struct gl_context *ctx, GLbitfield mask) { #define FLIP(Y) (ctx->DrawBuffer->Height - (Y) - 1) const GLint x = ctx->DrawBuffer->_Xmin; @@ -447,7 +447,7 @@ static void clear(GLcontext *ctx, GLbitfield mask) **/ /* Write a horizontal span of RGBA color pixels with a boolean mask. */ -static void write_rgba_span_front(const GLcontext *ctx, +static void write_rgba_span_front(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], @@ -534,7 +534,7 @@ static void write_rgba_span_front(const GLcontext *ctx, } /* Write a horizontal span of RGB color pixels with a boolean mask. */ -static void write_rgb_span_front(const GLcontext *ctx, +static void write_rgb_span_front(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgb[][3], @@ -563,7 +563,7 @@ static void write_rgb_span_front(const GLcontext *ctx, * Write a horizontal span of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_span_front(const GLcontext *ctx, +static void write_mono_rgba_span_front(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLchan color[4], @@ -588,7 +588,7 @@ static void write_mono_rgba_span_front(const GLcontext *ctx, } /* Write an array of RGBA pixels with a boolean mask. */ -static void write_rgba_pixels_front(const GLcontext *ctx, +static void write_rgba_pixels_front(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -611,7 +611,7 @@ static void write_rgba_pixels_front(const GLcontext *ctx, * Write an array of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_pixels_front(const GLcontext *ctx, +static void write_mono_rgba_pixels_front(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -629,7 +629,7 @@ static void write_mono_rgba_pixels_front(const GLcontext *ctx, } /* Read a horizontal span of color pixels. */ -static void read_rgba_span_front(const GLcontext *ctx, +static void read_rgba_span_front(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ) @@ -649,7 +649,7 @@ static void read_rgba_span_front(const GLcontext *ctx, /* Read an array of color pixels. */ -static void read_rgba_pixels_front(const GLcontext *ctx, +static void read_rgba_pixels_front(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4]) @@ -678,7 +678,7 @@ LPDWORD lpdw = ((LPDWORD)((pwc)->pbPixels + (pwc)->ScanWidth * (y)) + (x)); \ /* Write a horizontal span of RGBA color pixels with a boolean mask. */ -static void write_rgba_span_32(const GLcontext *ctx, +static void write_rgba_span_32(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], @@ -708,7 +708,7 @@ static void write_rgba_span_32(const GLcontext *ctx, /* Write a horizontal span of RGB color pixels with a boolean mask. */ -static void write_rgb_span_32(const GLcontext *ctx, +static void write_rgb_span_32(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgb[][3], @@ -740,7 +740,7 @@ static void write_rgb_span_32(const GLcontext *ctx, * Write a horizontal span of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_span_32(const GLcontext *ctx, +static void write_mono_rgba_span_32(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLchan color[4], @@ -766,7 +766,7 @@ static void write_mono_rgba_span_32(const GLcontext *ctx, } /* Write an array of RGBA pixels with a boolean mask. */ -static void write_rgba_pixels_32(const GLcontext *ctx, +static void write_rgba_pixels_32(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], @@ -785,7 +785,7 @@ static void write_rgba_pixels_32(const GLcontext *ctx, * Write an array of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_pixels_32(const GLcontext *ctx, +static void write_mono_rgba_pixels_32(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -802,7 +802,7 @@ static void write_mono_rgba_pixels_32(const GLcontext *ctx, } /* Read a horizontal span of color pixels. */ -static void read_rgba_span_32(const GLcontext *ctx, +static void read_rgba_span_32(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ) @@ -826,7 +826,7 @@ static void read_rgba_span_32(const GLcontext *ctx, /* Read an array of color pixels. */ -static void read_rgba_pixels_32(const GLcontext *ctx, +static void read_rgba_pixels_32(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4]) @@ -860,7 +860,7 @@ lpb[1] = (g); \ lpb[2] = (r); } /* Write a horizontal span of RGBA color pixels with a boolean mask. */ -static void write_rgba_span_24(const GLcontext *ctx, +static void write_rgba_span_24(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], @@ -894,7 +894,7 @@ static void write_rgba_span_24(const GLcontext *ctx, /* Write a horizontal span of RGB color pixels with a boolean mask. */ -static void write_rgb_span_24(const GLcontext *ctx, +static void write_rgb_span_24(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgb[][3], @@ -930,7 +930,7 @@ static void write_rgb_span_24(const GLcontext *ctx, * Write a horizontal span of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_span_24(const GLcontext *ctx, +static void write_mono_rgba_span_24(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLchan color[4], @@ -959,7 +959,7 @@ static void write_mono_rgba_span_24(const GLcontext *ctx, } /* Write an array of RGBA pixels with a boolean mask. */ -static void write_rgba_pixels_24(const GLcontext *ctx, +static void write_rgba_pixels_24(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], @@ -978,7 +978,7 @@ static void write_rgba_pixels_24(const GLcontext *ctx, * Write an array of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_pixels_24(const GLcontext *ctx, +static void write_mono_rgba_pixels_24(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -995,7 +995,7 @@ static void write_mono_rgba_pixels_24(const GLcontext *ctx, } /* Read a horizontal span of color pixels. */ -static void read_rgba_span_24(const GLcontext *ctx, +static void read_rgba_span_24(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ) @@ -1017,7 +1017,7 @@ static void read_rgba_span_24(const GLcontext *ctx, /* Read an array of color pixels. */ -static void read_rgba_pixels_24(const GLcontext *ctx, +static void read_rgba_pixels_24(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4]) @@ -1049,7 +1049,7 @@ LPWORD lpw = ((LPWORD)((pwc)->pbPixels + (pwc)->ScanWidth * (y)) + (x)); \ /* Write a horizontal span of RGBA color pixels with a boolean mask. */ -static void write_rgba_span_16(const GLcontext *ctx, +static void write_rgba_span_16(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], @@ -1079,7 +1079,7 @@ static void write_rgba_span_16(const GLcontext *ctx, /* Write a horizontal span of RGB color pixels with a boolean mask. */ -static void write_rgb_span_16(const GLcontext *ctx, +static void write_rgb_span_16(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLubyte rgb[][3], @@ -1111,7 +1111,7 @@ static void write_rgb_span_16(const GLcontext *ctx, * Write a horizontal span of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_span_16(const GLcontext *ctx, +static void write_mono_rgba_span_16(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, const GLchan color[4], @@ -1138,7 +1138,7 @@ static void write_mono_rgba_span_16(const GLcontext *ctx, } /* Write an array of RGBA pixels with a boolean mask. */ -static void write_rgba_pixels_16(const GLcontext *ctx, +static void write_rgba_pixels_16(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], @@ -1158,7 +1158,7 @@ static void write_rgba_pixels_16(const GLcontext *ctx, * Write an array of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_pixels_16(const GLcontext *ctx, +static void write_mono_rgba_pixels_16(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], @@ -1176,7 +1176,7 @@ static void write_mono_rgba_pixels_16(const GLcontext *ctx, } /* Read a horizontal span of color pixels. */ -static void read_rgba_span_16(const GLcontext *ctx, +static void read_rgba_span_16(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ) @@ -1200,7 +1200,7 @@ static void read_rgba_span_16(const GLcontext *ctx, /* Read an array of color pixels. */ -static void read_rgba_pixels_16(const GLcontext *ctx, +static void read_rgba_pixels_16(const struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4]) @@ -1244,7 +1244,7 @@ wmesa_delete_renderbuffer(struct gl_renderbuffer *rb) * has changed. Do whatever's needed to cope with that. */ static GLboolean -wmesa_renderbuffer_storage(GLcontext *ctx, +wmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, @@ -1320,7 +1320,7 @@ void wmesa_set_renderbuffer_funcs(struct gl_renderbuffer *rb, int pixelformat, * Resize the front/back colorbuffers to match the latest window size. */ static void -wmesa_resize_buffers(GLcontext *ctx, GLframebuffer *buffer, +wmesa_resize_buffers(struct gl_context *ctx, struct gl_framebuffer *buffer, GLuint width, GLuint height) { WMesaContext pwc = wmesa_context(ctx); @@ -1348,7 +1348,7 @@ wmesa_resize_buffers(GLcontext *ctx, GLframebuffer *buffer, * we get the viewport set correctly, even if the app does not call * glViewport and relies on the defaults. */ -static void wmesa_viewport(GLcontext *ctx, +static void wmesa_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) { @@ -1371,7 +1371,7 @@ static void wmesa_viewport(GLcontext *ctx, * Called when the driver should update it's state, based on the new_state * flags. */ -static void wmesa_update_state(GLcontext *ctx, GLuint new_state) +static void wmesa_update_state(struct gl_context *ctx, GLuint new_state) { _swrast_InvalidateState(ctx, new_state); _swsetup_InvalidateState(ctx, new_state); @@ -1403,8 +1403,8 @@ WMesaContext WMesaCreateContext(HDC hDC, WMesaContext c; struct dd_function_table functions; GLint red_bits, green_bits, blue_bits, alpha_bits; - GLcontext *ctx; - GLvisual *visual; + struct gl_context *ctx; + struct gl_config *visual; (void) Pal; @@ -1511,7 +1511,7 @@ WMesaContext WMesaCreateContext(HDC hDC, void WMesaDestroyContext( WMesaContext pwc ) { - GLcontext *ctx = &pwc->gl_ctx; + struct gl_context *ctx = &pwc->gl_ctx; WMesaFramebuffer pwfb; GET_CURRENT_CONTEXT(cur_ctx); @@ -1586,7 +1586,7 @@ void WMesaMakeCurrent(WMesaContext c, HDC hdc) /* Lazy creation of framebuffers */ if (c && !pwfb && hdc) { struct gl_renderbuffer *rb; - GLvisual *visual = &c->gl_ctx.Visual; + struct gl_config *visual = &c->gl_ctx.Visual; GLuint width, height; get_window_size(hdc, &width, &height); diff --git a/src/mesa/drivers/windows/gdi/wmesadef.h b/src/mesa/drivers/windows/gdi/wmesadef.h index 1c0e245111..a73609b007 100644 --- a/src/mesa/drivers/windows/gdi/wmesadef.h +++ b/src/mesa/drivers/windows/gdi/wmesadef.h @@ -7,10 +7,10 @@ /** - * The Windows Mesa rendering context, derived from GLcontext. + * The Windows Mesa rendering context, derived from struct gl_context. */ struct wmesa_context { - GLcontext gl_ctx; /* The core GL/Mesa context */ + struct gl_context gl_ctx; /* The core GL/Mesa context */ HDC hDC; COLORREF clearColorRef; HPEN clearPen; diff --git a/src/mesa/drivers/windows/gldirect/dglcontext.c b/src/mesa/drivers/windows/gldirect/dglcontext.c index a420b36ffb..10ea057850 100644 --- a/src/mesa/drivers/windows/gldirect/dglcontext.c +++ b/src/mesa/drivers/windows/gldirect/dglcontext.c @@ -42,8 +42,8 @@ #ifdef _USE_GLD3_WGL #include "gld_driver.h" -extern void _gld_mesa_warning(GLcontext *, char *); -extern void _gld_mesa_fatal(GLcontext *, char *); +extern void _gld_mesa_warning(struct gl_context *, char *); +extern void _gld_mesa_fatal(struct gl_context *, char *); #endif // _USE_GLD3_WGL // TODO: Clean out old DX6-specific code from GLD 2.x CAD driver diff --git a/src/mesa/drivers/windows/gldirect/dglcontext.h b/src/mesa/drivers/windows/gldirect/dglcontext.h index 5c433b857e..ce04603c19 100644 --- a/src/mesa/drivers/windows/gldirect/dglcontext.h +++ b/src/mesa/drivers/windows/gldirect/dglcontext.h @@ -87,9 +87,9 @@ typedef struct { void *glPriv; // Mesa vars: - GLcontext *glCtx; // The core Mesa context - GLvisual *glVis; // Describes the color buffer - GLframebuffer *glBuffer; // Ancillary buffers + struct gl_context *glCtx; // The core Mesa context + struct gl_config *glVis; // Describes the color buffer + struct gl_framebuffer *glBuffer; // Ancillary buffers GLuint ClearIndex; GLuint CurrentIndex; @@ -135,9 +135,9 @@ typedef struct { // // Mesa context vars: // - GLcontext *glCtx; // The core Mesa context - GLvisual *glVis; // Describes the color buffer - GLframebuffer *glBuffer; // Ancillary buffers + struct gl_context *glCtx; // The core Mesa context + struct gl_config *glVis; // Describes the color buffer + struct gl_framebuffer *glBuffer; // Ancillary buffers GLuint ClearIndex; GLuint CurrentIndex; diff --git a/src/mesa/drivers/windows/gldirect/dglwgl.c b/src/mesa/drivers/windows/gldirect/dglwgl.c index 74ecb01a5b..c46cfe162f 100644 --- a/src/mesa/drivers/windows/gldirect/dglwgl.c +++ b/src/mesa/drivers/windows/gldirect/dglwgl.c @@ -874,8 +874,8 @@ BOOL APIENTRY _GLD_WGL_EXPORT(SetPixelFormat)( // Copied from GLD2.x. KeithH // static GLboolean _gldShareLists( - GLcontext *ctx1, - GLcontext *ctx2) + struct gl_context *ctx1, + struct gl_context *ctx2) { /* Sanity check context pointers */ if (ctx1 == NULL || ctx2 == NULL) @@ -955,7 +955,7 @@ BOOL APIENTRY _GLD_WGL_EXPORT(SwapLayerBuffers)( // either MESA glViewport() or GLD wglMakeCurrent(). BOOL dglWglResizeBuffers( - GLcontext *ctx, + struct gl_context *ctx, BOOL bDefaultDriver) { DGL_ctx *dgl = NULL; diff --git a/src/mesa/drivers/windows/gldirect/dglwgl.h b/src/mesa/drivers/windows/gldirect/dglwgl.h index aac0410333..3e7e5892ca 100644 --- a/src/mesa/drivers/windows/gldirect/dglwgl.h +++ b/src/mesa/drivers/windows/gldirect/dglwgl.h @@ -118,7 +118,7 @@ BOOL APIENTRY DGL_UseFontOutlinesA(HDC a, DWORD b, DWORD c, DWORD d, FLOAT e, FL BOOL APIENTRY DGL_UseFontOutlinesW(HDC a, DWORD b, DWORD c, DWORD d, FLOAT e, FLOAT f, int g, LPGLYPHMETRICSFLOAT h); #endif //_USE_GLD3_WGL -BOOL dglWglResizeBuffers(GLcontext *ctx, BOOL bDefaultDriver); +BOOL dglWglResizeBuffers(struct gl_context *ctx, BOOL bDefaultDriver); #ifdef __cplusplus } diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_driver_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_driver_dx7.c index 7b202dfda7..1c43a38557 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_driver_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_driver_dx7.c @@ -69,7 +69,7 @@ const float _fPersp_33 = 1.6f; //--------------------------------------------------------------------------- void _gld_mesa_warning( - __GLcontext *gc, + __struct gl_context *gc, char *str) { // Intercept Mesa's internal warning mechanism @@ -79,7 +79,7 @@ void _gld_mesa_warning( //--------------------------------------------------------------------------- void _gld_mesa_fatal( - __GLcontext *gc, + __struct gl_context *gc, char *str) { // Intercept Mesa's internal fatal-message mechanism @@ -199,7 +199,7 @@ D3DBLEND _gldConvertBlendFunc( //--------------------------------------------------------------------------- void gld_Noop_DX7( - GLcontext *ctx) + struct gl_context *ctx) { #ifdef _DEBUG gldLogMessage(GLDLOG_ERROR, "gld_Noop called!\n"); @@ -209,7 +209,7 @@ void gld_Noop_DX7( //--------------------------------------------------------------------------- void gld_Error_DX7( - GLcontext *ctx) + struct gl_context *ctx) { #ifdef _DEBUG // Quite useless. @@ -222,7 +222,7 @@ void gld_Error_DX7( //--------------------------------------------------------------------------- static GLboolean gld_set_draw_buffer_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum mode) { (void) ctx; @@ -237,8 +237,8 @@ static GLboolean gld_set_draw_buffer_DX7( //--------------------------------------------------------------------------- static void gld_set_read_buffer_DX7( - GLcontext *ctx, - GLframebuffer *buffer, + struct gl_context *ctx, + struct gl_framebuffer *buffer, GLenum mode) { /* separate read buffer not supported */ @@ -251,7 +251,7 @@ static void gld_set_read_buffer_DX7( //--------------------------------------------------------------------------- void gld_Clear_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLbitfield mask, GLboolean all, GLint x, @@ -342,8 +342,8 @@ void gld_Clear_DX7( // Mesa 5: Parameter change static void gld_buffer_size_DX7( -// GLcontext *ctx, - GLframebuffer *fb, +// struct gl_context *ctx, + struct gl_framebuffer *fb, GLuint *width, GLuint *height) { @@ -356,14 +356,14 @@ static void gld_buffer_size_DX7( //--------------------------------------------------------------------------- static void gld_Finish_DX7( - GLcontext *ctx) + struct gl_context *ctx) { } //--------------------------------------------------------------------------- static void gld_Flush_DX7( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gld = GLD_GET_CONTEXT(ctx); @@ -379,7 +379,7 @@ static void gld_Flush_DX7( //--------------------------------------------------------------------------- void gld_NEW_STENCIL( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -404,7 +404,7 @@ void gld_NEW_STENCIL( //--------------------------------------------------------------------------- void gld_NEW_COLOR( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -438,7 +438,7 @@ void gld_NEW_COLOR( //--------------------------------------------------------------------------- void gld_NEW_DEPTH( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -451,7 +451,7 @@ void gld_NEW_DEPTH( //--------------------------------------------------------------------------- void gld_NEW_POLYGON( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -516,7 +516,7 @@ void gld_NEW_POLYGON( //--------------------------------------------------------------------------- void gld_NEW_FOG( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -571,7 +571,7 @@ void gld_NEW_FOG( //--------------------------------------------------------------------------- void gld_NEW_LIGHT( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -591,7 +591,7 @@ void gld_NEW_LIGHT( //--------------------------------------------------------------------------- void gld_NEW_MODELVIEW( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -639,7 +639,7 @@ void gld_NEW_MODELVIEW( //--------------------------------------------------------------------------- void gld_NEW_PROJECTION( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -718,7 +718,7 @@ void gldOrthoHook_DX7( //--------------------------------------------------------------------------- void gld_NEW_VIEWPORT( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); @@ -760,7 +760,7 @@ void gld_NEW_VIEWPORT( //--------------------------------------------------------------------------- __inline BOOL _gldAnyEvalEnabled( - GLcontext *ctx) + struct gl_context *ctx) { struct gl_eval_attrib *eval = &ctx->Eval; @@ -792,7 +792,7 @@ __inline BOOL _gldAnyEvalEnabled( //--------------------------------------------------------------------------- BOOL _gldChooseInternalPipeline( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx7 *gld) { // return TRUE; // DEBUGGING: ALWAYS USE MESA @@ -856,7 +856,7 @@ BOOL _gldChooseInternalPipeline( //--------------------------------------------------------------------------- void gld_update_state_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint new_state) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -991,7 +991,7 @@ void gld_update_state_DX7( //--------------------------------------------------------------------------- void gld_Viewport_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei w, @@ -1053,12 +1053,12 @@ void gld_Viewport_DX7( //--------------------------------------------------------------------------- -extern BOOL dglWglResizeBuffers(GLcontext *ctx, BOOL bDefaultDriver); +extern BOOL dglWglResizeBuffers(struct gl_context *ctx, BOOL bDefaultDriver); // Mesa 5: Parameter change void gldResizeBuffers_DX7( -// GLcontext *ctx) - GLframebuffer *fb) +// struct gl_context *ctx) + struct gl_framebuffer *fb) { GET_CURRENT_CONTEXT(ctx); dglWglResizeBuffers(ctx, TRUE); @@ -1069,7 +1069,7 @@ void gldResizeBuffers_DX7( // This is only for debugging. // To use, plug into ctx->Driver.Enable pointer below. void gld_Enable( - GLcontext *ctx, + struct gl_context *ctx, GLenum e, GLboolean b) { @@ -1082,10 +1082,10 @@ void gld_Enable( // Driver pointer setup //--------------------------------------------------------------------------- -extern const GLubyte* _gldGetStringGeneric(GLcontext*, GLenum); +extern const GLubyte* _gldGetStringGeneric(struct gl_context*, GLenum); void gldSetupDriverPointers_DX7( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx7 *gld = GLD_GET_DX7_DRIVER(gldCtx); diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_dx7.h b/src/mesa/drivers/windows/gldirect/dx7/gld_dx7.h index b5a491e41b..2e1d136568 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_dx7.h +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_dx7.h @@ -225,68 +225,68 @@ typedef struct { //--------------------------------------------------------------------------- PROC gldGetProcAddress_DX7(LPCSTR a); -void gldEnableExtensions_DX7(GLcontext *ctx); -void gldInstallPipeline_DX7(GLcontext *ctx); -void gldSetupDriverPointers_DX7(GLcontext *ctx); -void gldResizeBuffers_DX7(GLframebuffer *fb); +void gldEnableExtensions_DX7(struct gl_context *ctx); +void gldInstallPipeline_DX7(struct gl_context *ctx); +void gldSetupDriverPointers_DX7(struct gl_context *ctx); +void gldResizeBuffers_DX7(struct gl_framebuffer *fb); // Texture functions -void gldCopyTexImage1D_DX7(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -void gldCopyTexImage2D_DX7(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -void gldCopyTexSubImage1D_DX7(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); -void gldCopyTexSubImage2D_DX7(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); -void gldCopyTexSubImage3D_DX7(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); - -void gld_NEW_TEXTURE_DX7(GLcontext *ctx); -void gld_DrawPixels_DX7(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels); -void gld_ReadPixels_DX7(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest); -void gld_CopyPixels_DX7(GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type); -void gld_Bitmap_DX7(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap); -const struct gl_texture_format* gld_ChooseTextureFormat_DX7(GLcontext *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType); -void gld_TexImage2D_DX7(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *tObj, struct gl_texture_image *texImage); -void gld_TexImage1D_DX7(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); -void gld_TexSubImage2D_DX7( GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); -void gld_TexSubImage1D_DX7(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void gld_DeleteTexture_DX7(GLcontext *ctx, struct gl_texture_object *tObj); -void gld_ResetLineStipple_DX7(GLcontext *ctx); +void gldCopyTexImage1D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +void gldCopyTexImage2D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +void gldCopyTexSubImage1D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); +void gldCopyTexSubImage2D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); +void gldCopyTexSubImage3D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); + +void gld_NEW_TEXTURE_DX7(struct gl_context *ctx); +void gld_DrawPixels_DX7(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels); +void gld_ReadPixels_DX7(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest); +void gld_CopyPixels_DX7(struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type); +void gld_Bitmap_DX7(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap); +const struct gl_texture_format* gld_ChooseTextureFormat_DX7(struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType); +void gld_TexImage2D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *tObj, struct gl_texture_image *texImage); +void gld_TexImage1D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); +void gld_TexSubImage2D_DX7( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); +void gld_TexSubImage1D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); +void gld_DeleteTexture_DX7(struct gl_context *ctx, struct gl_texture_object *tObj); +void gld_ResetLineStipple_DX7(struct gl_context *ctx); // 2D primitive functions -void gld_Points2D_DX7(GLcontext *ctx, GLuint first, GLuint last); +void gld_Points2D_DX7(struct gl_context *ctx, GLuint first, GLuint last); -void gld_Line2DFlat_DX7(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Line2DSmooth_DX7(GLcontext *ctx, GLuint v0, GLuint v1); +void gld_Line2DFlat_DX7(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Line2DSmooth_DX7(struct gl_context *ctx, GLuint v0, GLuint v1); -void gld_Triangle2DFlat_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmooth_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DFlatExtras_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmoothExtras_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DFlat_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmooth_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DFlatExtras_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmoothExtras_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad2DFlat_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmooth_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DFlatExtras_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmoothExtras_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DFlat_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmooth_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DFlatExtras_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmoothExtras_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); // 3D primitive functions -void gld_Points3D_DX7(GLcontext *ctx, GLuint first, GLuint last); -void gld_Line3DFlat_DX7(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle3DFlat_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad3DFlat_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Line3DSmooth_DX7(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle3DSmooth_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad3DSmooth_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Points3D_DX7(struct gl_context *ctx, GLuint first, GLuint last); +void gld_Line3DFlat_DX7(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle3DFlat_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad3DFlat_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Line3DSmooth_DX7(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle3DSmooth_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad3DSmooth_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); // Primitive functions for Two-sided-lighting Vertex Shader -void gld_Points2DTwoside_DX7(GLcontext *ctx, GLuint first, GLuint last); -void gld_Line2DFlatTwoside_DX7(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Line2DSmoothTwoside_DX7(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle2DFlatTwoside_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmoothTwoside_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad2DFlatTwoside_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmoothTwoside_DX7(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Points2DTwoside_DX7(struct gl_context *ctx, GLuint first, GLuint last); +void gld_Line2DFlatTwoside_DX7(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Line2DSmoothTwoside_DX7(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle2DFlatTwoside_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmoothTwoside_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad2DFlatTwoside_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmoothTwoside_DX7(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); #endif diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_ext_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_ext_dx7.c index ba60980bbe..4ed3c3ca05 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_ext_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_ext_dx7.c @@ -69,7 +69,7 @@ #include "extensions.h" // For some reason this is not defined in an above header... -extern void _mesa_enable_imaging_extensions(GLcontext *ctx); +extern void _mesa_enable_imaging_extensions(struct gl_context *ctx); //--------------------------------------------------------------------------- // Hack for the SGIS_multitexture extension that was removed from Mesa @@ -281,7 +281,7 @@ PROC gldGetProcAddress_DX( //--------------------------------------------------------------------------- void gldEnableExtensions_DX7( - GLcontext *ctx) + struct gl_context *ctx) { GLuint i; diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_pipeline_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_pipeline_dx7.c index 9ccec69b98..b801542736 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_pipeline_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_pipeline_dx7.c @@ -65,7 +65,7 @@ static const struct tnl_pipeline_stage *gld_pipeline[] = { //--------------------------------------------------------------------------- void gldInstallPipeline_DX7( - GLcontext *ctx) + struct gl_context *ctx) { // Remove any existing pipeline stages, // then install GLDirect pipeline stages. diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_primitive_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_primitive_dx7.c index 0b373814fe..7fc50004de 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_primitive_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_primitive_dx7.c @@ -277,7 +277,7 @@ //--------------------------------------------------------------------------- __inline DWORD _gldComputeFog( - GLcontext *ctx, + struct gl_context *ctx, SWvertex *swv) { // Full fog calculation. @@ -300,7 +300,7 @@ __inline DWORD _gldComputeFog( //--------------------------------------------------------------------------- void gld_ResetLineStipple_DX7( - GLcontext *ctx) + struct gl_context *ctx) { // TODO: Fake stipple with a 32x32 texture. } @@ -310,7 +310,7 @@ void gld_ResetLineStipple_DX7( //--------------------------------------------------------------------------- void gld_Points2D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint first, GLuint last) { @@ -358,7 +358,7 @@ void gld_Points2D_DX7( //--------------------------------------------------------------------------- void gld_Line2DFlat_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -391,7 +391,7 @@ void gld_Line2DFlat_DX7( //--------------------------------------------------------------------------- void gld_Line2DSmooth_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -422,7 +422,7 @@ void gld_Line2DSmooth_DX7( //--------------------------------------------------------------------------- void gld_Triangle2DFlat_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -461,7 +461,7 @@ void gld_Triangle2DFlat_DX7( //--------------------------------------------------------------------------- void gld_Triangle2DSmooth_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -500,7 +500,7 @@ void gld_Triangle2DSmooth_DX7( //--------------------------------------------------------------------------- void gld_Triangle2DFlatExtras_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -549,7 +549,7 @@ void gld_Triangle2DFlatExtras_DX7( //--------------------------------------------------------------------------- void gld_Triangle2DSmoothExtras_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -589,7 +589,7 @@ void gld_Triangle2DSmoothExtras_DX7( //--------------------------------------------------------------------------- void gld_Quad2DFlat_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -653,7 +653,7 @@ void gld_Quad2DFlat_DX7( //--------------------------------------------------------------------------- void gld_Quad2DSmooth_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -716,7 +716,7 @@ void gld_Quad2DSmooth_DX7( //--------------------------------------------------------------------------- void gld_Quad2DFlatExtras_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -793,7 +793,7 @@ void gld_Quad2DFlatExtras_DX7( //--------------------------------------------------------------------------- void gld_Quad2DSmoothExtras_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -860,7 +860,7 @@ void gld_Quad2DSmoothExtras_DX7( //--------------------------------------------------------------------------- void gld_Points3D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint first, GLuint last) { @@ -913,7 +913,7 @@ void gld_Points3D_DX7( //--------------------------------------------------------------------------- void gld_Line3DFlat_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -939,7 +939,7 @@ void gld_Line3DFlat_DX7( //--------------------------------------------------------------------------- void gld_Line3DSmooth_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -966,7 +966,7 @@ void gld_Line3DSmooth_DX7( //--------------------------------------------------------------------------- void gld_Triangle3DFlat_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -999,7 +999,7 @@ void gld_Triangle3DFlat_DX7( //--------------------------------------------------------------------------- void gld_Triangle3DSmooth_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -1033,7 +1033,7 @@ void gld_Triangle3DSmooth_DX7( //--------------------------------------------------------------------------- void gld_Quad3DFlat_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -1085,7 +1085,7 @@ void gld_Quad3DFlat_DX7( //--------------------------------------------------------------------------- void gld_Quad3DSmooth_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -1139,34 +1139,34 @@ void gld_Quad3DSmooth_DX7( /* -void gld_Points2DTwoside_DX8(GLcontext *ctx, GLuint first, GLuint last) +void gld_Points2DTwoside_DX8(struct gl_context *ctx, GLuint first, GLuint last) { // NOTE: Two-sided lighting does not apply to Points } //--------------------------------------------------------------------------- -void gld_Line2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1) +void gld_Line2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1) { // NOTE: Two-sided lighting does not apply to Lines } //--------------------------------------------------------------------------- -void gld_Line2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1) +void gld_Line2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1) { // NOTE: Two-sided lighting does not apply to Lines } //--------------------------------------------------------------------------- -void gld_Triangle2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2) +void gld_Triangle2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) { } //--------------------------------------------------------------------------- -void gld_Triangle2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2) +void gld_Triangle2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -1231,7 +1231,7 @@ void gld_Triangle2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuin //--------------------------------------------------------------------------- -void gld_Quad2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +void gld_Quad2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -1338,7 +1338,7 @@ void gld_Quad2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, //--------------------------------------------------------------------------- -void gld_Quad2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +void gld_Quad2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_texture_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_texture_dx7.c index bbe673516d..74c3b0d344 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_texture_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_texture_dx7.c @@ -817,7 +817,7 @@ void _gldClearSurface( //--------------------------------------------------------------------------- void gldCopyTexImage1D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, @@ -829,7 +829,7 @@ void gldCopyTexImage1D_DX7( //--------------------------------------------------------------------------- void gldCopyTexImage2D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, @@ -845,7 +845,7 @@ void gldCopyTexImage2D_DX7( //--------------------------------------------------------------------------- void gldCopyTexSubImage1D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ) { @@ -855,7 +855,7 @@ void gldCopyTexSubImage1D_DX7( //--------------------------------------------------------------------------- void gldCopyTexSubImage2D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -871,7 +871,7 @@ void gldCopyTexSubImage2D_DX7( //--------------------------------------------------------------------------- void gldCopyTexSubImage3D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -903,7 +903,7 @@ typedef struct { //--------------------------------------------------------------------------- HRESULT _gldDrawPixels( - GLcontext *ctx, + struct gl_context *ctx, BOOL bChromakey, // Alpha test for glBitmap() images GLint x, // GL x position GLint y, // GL y position (needs flipping) @@ -1009,7 +1009,7 @@ HRESULT _gldDrawPixels( //--------------------------------------------------------------------------- void gld_DrawPixels_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -1086,7 +1086,7 @@ void gld_DrawPixels_DX7( //--------------------------------------------------------------------------- void gld_ReadPixels_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, @@ -1241,7 +1241,7 @@ gld_ReadPixels_DX7_return: //--------------------------------------------------------------------------- void gld_CopyPixels_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, @@ -1330,7 +1330,7 @@ void gld_CopyPixels_DX7( //--------------------------------------------------------------------------- void gld_Bitmap_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, @@ -1475,7 +1475,7 @@ void gld_Bitmap_DX7( //--------------------------------------------------------------------------- void _gldAllocateTexture( - GLcontext *ctx, + struct gl_context *ctx, struct gl_texture_object *tObj, struct gl_texture_image *texImage) { @@ -1533,7 +1533,7 @@ void _gldAllocateTexture( //--------------------------------------------------------------------------- const struct gl_texture_format* gld_ChooseTextureFormat_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType) @@ -1622,7 +1622,7 @@ const struct gl_texture_format* gld_ChooseTextureFormat_DX7( /* // Safer(?), slower version. void gld_TexImage2D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, @@ -1700,7 +1700,7 @@ void gld_TexImage2D_DX7( // Faster, more efficient version. // Copies subimage straight to dest texture void gld_TexImage2D_DX7( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, @@ -1792,7 +1792,7 @@ void gld_TexImage2D_DX7( //--------------------------------------------------------------------------- -void gld_TexImage1D_DX7(GLcontext *ctx, GLenum target, GLint level, +void gld_TexImage1D_DX7(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -1807,7 +1807,7 @@ void gld_TexImage1D_DX7(GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- /* -void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1883,7 +1883,7 @@ void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level, // Faster, more efficient version. // Copies subimage straight to dest texture -void gld_TexSubImage2D_DX7( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage2D_DX7( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1963,7 +1963,7 @@ void gld_TexSubImage2D_DX7( GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- -void gld_TexSubImage1D_DX7( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage1D_DX7( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, @@ -1977,7 +1977,7 @@ void gld_TexSubImage1D_DX7( GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- void gld_DeleteTexture_DX7( - GLcontext *ctx, + struct gl_context *ctx, struct gl_texture_object *tObj) { GLD_context *gld = (GLD_context*)(ctx->DriverCtx); @@ -2036,7 +2036,7 @@ __inline void _gldSetAlphaOps( //--------------------------------------------------------------------------- void gldUpdateTextureUnit( - GLcontext *ctx, + struct gl_context *ctx, GLuint unit, BOOL bPassThrough) { @@ -2145,7 +2145,7 @@ void gldUpdateTextureUnit( //--------------------------------------------------------------------------- void gld_NEW_TEXTURE_DX7( - GLcontext *ctx) + struct gl_context *ctx) { // TODO: Support for three (ATI Radeon) or more (nVidia GeForce3) texture units diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_vb_d3d_render_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_vb_d3d_render_dx7.c index c39775cad3..0a1b9479ef 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_vb_d3d_render_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_vb_d3d_render_dx7.c @@ -61,7 +61,7 @@ //--------------------------------------------------------------------------- /* __inline void _gldSetVertexShaderConstants( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx8 *gld) { D3DXMATRIX mat, matView, matProj; @@ -116,7 +116,7 @@ __inline void _gldSetVertexShaderConstants( //--------------------------------------------------------------------------- static GLboolean gld_d3d_render_stage_run( - GLcontext *ctx, + struct gl_context *ctx, struct tnl_pipeline_stage *stage) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_vb_mesa_render_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_vb_mesa_render_dx7.c index 72e5e1308c..a8356c0a20 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_vb_mesa_render_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_vb_mesa_render_dx7.c @@ -167,7 +167,7 @@ do { \ /* TODO: do this for all primitives, verts and elts: */ -static void clip_elt_triangles( GLcontext *ctx, +static void clip_elt_triangles( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -255,7 +255,7 @@ static void clip_elt_triangles( GLcontext *ctx, /* Helper functions for drivers */ /**********************************************************************/ /* -void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) +void _tnl_RenderClippedPolygon( struct gl_context *ctx, const GLuint *elts, GLuint n ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -266,7 +266,7 @@ void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) VB->Elts = tmp; } -void _tnl_RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +void _tnl_RenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); @@ -306,7 +306,7 @@ tnl_quad_func _gldSetupQuad[4] = { //--------------------------------------------------------------------------- static GLboolean _gld_mesa_render_stage_run( - GLcontext *ctx, + struct gl_context *ctx, struct tnl_pipeline_stage *stage) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); diff --git a/src/mesa/drivers/windows/gldirect/dx7/gld_wgl_dx7.c b/src/mesa/drivers/windows/gldirect/dx7/gld_wgl_dx7.c index fa44a952a0..0d860dbe1a 100644 --- a/src/mesa/drivers/windows/gldirect/dx7/gld_wgl_dx7.c +++ b/src/mesa/drivers/windows/gldirect/dx7/gld_wgl_dx7.c @@ -57,8 +57,8 @@ extern int nContextError; #define DDLOG_CRITICAL_OR_WARN DDLOG_CRITICAL -extern void _gld_mesa_warning(GLcontext *, char *); -extern void _gld_mesa_fatal(GLcontext *, char *); +extern void _gld_mesa_warning(struct gl_context *, char *); +extern void _gld_mesa_fatal(struct gl_context *, char *); //--------------------------------------------------------------------------- @@ -243,7 +243,7 @@ void _gldDestroyPrimitiveBuffer( //--------------------------------------------------------------------------- HRESULT _gldCreatePrimitiveBuffer( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx7 *lpCtx, GLD_pb_dx7 *gldVB) { diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_driver_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_driver_dx8.c index 7eeb9db2d1..c4c2e0b567 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_driver_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_driver_dx8.c @@ -69,7 +69,7 @@ const float _fPersp_33 = 1.6f; //--------------------------------------------------------------------------- void _gld_mesa_warning( - __GLcontext *gc, + __struct gl_context *gc, char *str) { // Intercept Mesa's internal warning mechanism @@ -79,7 +79,7 @@ void _gld_mesa_warning( //--------------------------------------------------------------------------- void _gld_mesa_fatal( - __GLcontext *gc, + __struct gl_context *gc, char *str) { // Intercept Mesa's internal fatal-message mechanism @@ -199,7 +199,7 @@ D3DBLEND _gldConvertBlendFunc( //--------------------------------------------------------------------------- void gld_Noop_DX8( - GLcontext *ctx) + struct gl_context *ctx) { #ifdef _DEBUG gldLogMessage(GLDLOG_ERROR, "gld_Noop called!\n"); @@ -209,7 +209,7 @@ void gld_Noop_DX8( //--------------------------------------------------------------------------- void gld_Error_DX8( - GLcontext *ctx) + struct gl_context *ctx) { #ifdef _DEBUG // Quite useless. @@ -222,7 +222,7 @@ void gld_Error_DX8( //--------------------------------------------------------------------------- static GLboolean gld_set_draw_buffer_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum mode) { (void) ctx; @@ -237,8 +237,8 @@ static GLboolean gld_set_draw_buffer_DX8( //--------------------------------------------------------------------------- static void gld_set_read_buffer_DX8( - GLcontext *ctx, - GLframebuffer *buffer, + struct gl_context *ctx, + struct gl_framebuffer *buffer, GLenum mode) { /* separate read buffer not supported */ @@ -251,7 +251,7 @@ static void gld_set_read_buffer_DX8( //--------------------------------------------------------------------------- void gld_Clear_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLbitfield mask, GLboolean all, GLint x, @@ -342,8 +342,8 @@ void gld_Clear_DX8( // Mesa 5: Parameter change static void gld_buffer_size_DX8( -// GLcontext *ctx, - GLframebuffer *fb, +// struct gl_context *ctx, + struct gl_framebuffer *fb, GLuint *width, GLuint *height) { @@ -356,14 +356,14 @@ static void gld_buffer_size_DX8( //--------------------------------------------------------------------------- static void gld_Finish_DX8( - GLcontext *ctx) + struct gl_context *ctx) { } //--------------------------------------------------------------------------- static void gld_Flush_DX8( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gld = GLD_GET_CONTEXT(ctx); @@ -379,7 +379,7 @@ static void gld_Flush_DX8( //--------------------------------------------------------------------------- void gld_NEW_STENCIL( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -404,7 +404,7 @@ void gld_NEW_STENCIL( //--------------------------------------------------------------------------- void gld_NEW_COLOR( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -436,7 +436,7 @@ void gld_NEW_COLOR( //--------------------------------------------------------------------------- void gld_NEW_DEPTH( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -449,7 +449,7 @@ void gld_NEW_DEPTH( //--------------------------------------------------------------------------- void gld_NEW_POLYGON( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -514,7 +514,7 @@ void gld_NEW_POLYGON( //--------------------------------------------------------------------------- void gld_NEW_FOG( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -569,7 +569,7 @@ void gld_NEW_FOG( //--------------------------------------------------------------------------- void gld_NEW_LIGHT( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -589,7 +589,7 @@ void gld_NEW_LIGHT( //--------------------------------------------------------------------------- void gld_NEW_MODELVIEW( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -621,7 +621,7 @@ void gld_NEW_MODELVIEW( //--------------------------------------------------------------------------- void gld_NEW_PROJECTION( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -700,7 +700,7 @@ void gldOrthoHook_DX8( //--------------------------------------------------------------------------- void gld_NEW_VIEWPORT( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -742,7 +742,7 @@ void gld_NEW_VIEWPORT( //--------------------------------------------------------------------------- __inline BOOL _gldAnyEvalEnabled( - GLcontext *ctx) + struct gl_context *ctx) { struct gl_eval_attrib *eval = &ctx->Eval; @@ -774,7 +774,7 @@ __inline BOOL _gldAnyEvalEnabled( //--------------------------------------------------------------------------- BOOL _gldChooseInternalPipeline( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx8 *gld) { // return TRUE; // DEBUGGING: ALWAYS USE MESA @@ -838,7 +838,7 @@ BOOL _gldChooseInternalPipeline( //--------------------------------------------------------------------------- void gld_update_state_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint new_state) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -971,7 +971,7 @@ void gld_update_state_DX8( //--------------------------------------------------------------------------- void gld_Viewport_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei w, @@ -1033,12 +1033,12 @@ void gld_Viewport_DX8( //--------------------------------------------------------------------------- -extern BOOL dglWglResizeBuffers(GLcontext *ctx, BOOL bDefaultDriver); +extern BOOL dglWglResizeBuffers(struct gl_context *ctx, BOOL bDefaultDriver); // Mesa 5: Parameter change void gldResizeBuffers_DX8( -// GLcontext *ctx) - GLframebuffer *fb) +// struct gl_context *ctx) + struct gl_framebuffer *fb) { GET_CURRENT_CONTEXT(ctx); dglWglResizeBuffers(ctx, TRUE); @@ -1049,7 +1049,7 @@ void gldResizeBuffers_DX8( // This is only for debugging. // To use, plug into ctx->Driver.Enable pointer below. void gld_Enable( - GLcontext *ctx, + struct gl_context *ctx, GLenum e, GLboolean b) { @@ -1062,10 +1062,10 @@ void gld_Enable( // Driver pointer setup //--------------------------------------------------------------------------- -extern const GLubyte* _gldGetStringGeneric(GLcontext*, GLenum); +extern const GLubyte* _gldGetStringGeneric(struct gl_context*, GLenum); void gldSetupDriverPointers_DX8( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_dx8.h b/src/mesa/drivers/windows/gldirect/dx8/gld_dx8.h index 7efec7cae8..b207ecc788 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_dx8.h +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_dx8.h @@ -256,69 +256,69 @@ typedef struct { //--------------------------------------------------------------------------- PROC gldGetProcAddress_DX8(LPCSTR a); -void gldEnableExtensions_DX8(GLcontext *ctx); -void gldInstallPipeline_DX8(GLcontext *ctx); -void gldSetupDriverPointers_DX8(GLcontext *ctx); -//void gldResizeBuffers_DX8(GLcontext *ctx); -void gldResizeBuffers_DX8(GLframebuffer *fb); +void gldEnableExtensions_DX8(struct gl_context *ctx); +void gldInstallPipeline_DX8(struct gl_context *ctx); +void gldSetupDriverPointers_DX8(struct gl_context *ctx); +//void gldResizeBuffers_DX8(struct gl_context *ctx); +void gldResizeBuffers_DX8(struct gl_framebuffer *fb); // Texture functions -void gldCopyTexImage1D_DX8(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -void gldCopyTexImage2D_DX8(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -void gldCopyTexSubImage1D_DX8(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); -void gldCopyTexSubImage2D_DX8(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); -void gldCopyTexSubImage3D_DX8(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); - -void gld_NEW_TEXTURE_DX8(GLcontext *ctx); -void gld_DrawPixels_DX8(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels); -void gld_ReadPixels_DX8(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest); -void gld_CopyPixels_DX8(GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type); -void gld_Bitmap_DX8(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap); -const struct gl_texture_format* gld_ChooseTextureFormat_DX8(GLcontext *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType); -void gld_TexImage2D_DX8(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *tObj, struct gl_texture_image *texImage); -void gld_TexImage1D_DX8(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); -void gld_TexSubImage2D_DX8( GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); -void gld_TexSubImage1D_DX8(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void gld_DeleteTexture_DX8(GLcontext *ctx, struct gl_texture_object *tObj); -void gld_ResetLineStipple_DX8(GLcontext *ctx); +void gldCopyTexImage1D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +void gldCopyTexImage2D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +void gldCopyTexSubImage1D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); +void gldCopyTexSubImage2D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); +void gldCopyTexSubImage3D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); + +void gld_NEW_TEXTURE_DX8(struct gl_context *ctx); +void gld_DrawPixels_DX8(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels); +void gld_ReadPixels_DX8(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest); +void gld_CopyPixels_DX8(struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type); +void gld_Bitmap_DX8(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap); +const struct gl_texture_format* gld_ChooseTextureFormat_DX8(struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType); +void gld_TexImage2D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *tObj, struct gl_texture_image *texImage); +void gld_TexImage1D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); +void gld_TexSubImage2D_DX8( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); +void gld_TexSubImage1D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); +void gld_DeleteTexture_DX8(struct gl_context *ctx, struct gl_texture_object *tObj); +void gld_ResetLineStipple_DX8(struct gl_context *ctx); // 2D primitive functions -void gld_Points2D_DX8(GLcontext *ctx, GLuint first, GLuint last); +void gld_Points2D_DX8(struct gl_context *ctx, GLuint first, GLuint last); -void gld_Line2DFlat_DX8(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Line2DSmooth_DX8(GLcontext *ctx, GLuint v0, GLuint v1); +void gld_Line2DFlat_DX8(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Line2DSmooth_DX8(struct gl_context *ctx, GLuint v0, GLuint v1); -void gld_Triangle2DFlat_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmooth_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DFlatExtras_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmoothExtras_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DFlat_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmooth_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DFlatExtras_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmoothExtras_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad2DFlat_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmooth_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DFlatExtras_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmoothExtras_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DFlat_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmooth_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DFlatExtras_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmoothExtras_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); // 3D primitive functions -void gld_Points3D_DX8(GLcontext *ctx, GLuint first, GLuint last); -void gld_Line3DFlat_DX8(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle3DFlat_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad3DFlat_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Line3DSmooth_DX8(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle3DSmooth_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad3DSmooth_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Points3D_DX8(struct gl_context *ctx, GLuint first, GLuint last); +void gld_Line3DFlat_DX8(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle3DFlat_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad3DFlat_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Line3DSmooth_DX8(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle3DSmooth_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad3DSmooth_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); // Primitive functions for Two-sided-lighting Vertex Shader -void gld_Points2DTwoside_DX8(GLcontext *ctx, GLuint first, GLuint last); -void gld_Line2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Line2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Points2DTwoside_DX8(struct gl_context *ctx, GLuint first, GLuint last); +void gld_Line2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Line2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); #endif diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_ext_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_ext_dx8.c index b51bba9b3c..9218945805 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_ext_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_ext_dx8.c @@ -69,7 +69,7 @@ #include "extensions.h" // For some reason this is not defined in an above header... -extern void _mesa_enable_imaging_extensions(GLcontext *ctx); +extern void _mesa_enable_imaging_extensions(struct gl_context *ctx); //--------------------------------------------------------------------------- // Hack for the SGIS_multitexture extension that was removed from Mesa @@ -281,7 +281,7 @@ PROC gldGetProcAddress_DX( //--------------------------------------------------------------------------- void gldEnableExtensions_DX8( - GLcontext *ctx) + struct gl_context *ctx) { GLuint i; diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_pipeline_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_pipeline_dx8.c index 2baea57443..9113d70345 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_pipeline_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_pipeline_dx8.c @@ -65,7 +65,7 @@ static const struct tnl_pipeline_stage *gld_pipeline[] = { //--------------------------------------------------------------------------- void gldInstallPipeline_DX8( - GLcontext *ctx) + struct gl_context *ctx) { // Remove any existing pipeline stages, // then install GLDirect pipeline stages. diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_primitive_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_primitive_dx8.c index 990922580a..5b9dac09c6 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_primitive_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_primitive_dx8.c @@ -277,7 +277,7 @@ //--------------------------------------------------------------------------- __inline DWORD _gldComputeFog( - GLcontext *ctx, + struct gl_context *ctx, SWvertex *swv) { // Full fog calculation. @@ -300,7 +300,7 @@ __inline DWORD _gldComputeFog( //--------------------------------------------------------------------------- void gld_ResetLineStipple_DX8( - GLcontext *ctx) + struct gl_context *ctx) { // TODO: Fake stipple with a 32x32 texture. } @@ -310,7 +310,7 @@ void gld_ResetLineStipple_DX8( //--------------------------------------------------------------------------- void gld_Points2D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint first, GLuint last) { @@ -357,7 +357,7 @@ void gld_Points2D_DX8( //--------------------------------------------------------------------------- void gld_Line2DFlat_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -390,7 +390,7 @@ void gld_Line2DFlat_DX8( //--------------------------------------------------------------------------- void gld_Line2DSmooth_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -421,7 +421,7 @@ void gld_Line2DSmooth_DX8( //--------------------------------------------------------------------------- void gld_Triangle2DFlat_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -460,7 +460,7 @@ void gld_Triangle2DFlat_DX8( //--------------------------------------------------------------------------- void gld_Triangle2DSmooth_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -499,7 +499,7 @@ void gld_Triangle2DSmooth_DX8( //--------------------------------------------------------------------------- void gld_Triangle2DFlatExtras_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -548,7 +548,7 @@ void gld_Triangle2DFlatExtras_DX8( //--------------------------------------------------------------------------- void gld_Triangle2DSmoothExtras_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -588,7 +588,7 @@ void gld_Triangle2DSmoothExtras_DX8( //--------------------------------------------------------------------------- void gld_Quad2DFlat_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -652,7 +652,7 @@ void gld_Quad2DFlat_DX8( //--------------------------------------------------------------------------- void gld_Quad2DSmooth_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -715,7 +715,7 @@ void gld_Quad2DSmooth_DX8( //--------------------------------------------------------------------------- void gld_Quad2DFlatExtras_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -792,7 +792,7 @@ void gld_Quad2DFlatExtras_DX8( //--------------------------------------------------------------------------- void gld_Quad2DSmoothExtras_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -859,7 +859,7 @@ void gld_Quad2DSmoothExtras_DX8( //--------------------------------------------------------------------------- void gld_Points3D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint first, GLuint last) { @@ -911,7 +911,7 @@ void gld_Points3D_DX8( //--------------------------------------------------------------------------- void gld_Line3DFlat_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -937,7 +937,7 @@ void gld_Line3DFlat_DX8( //--------------------------------------------------------------------------- void gld_Line3DSmooth_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -964,7 +964,7 @@ void gld_Line3DSmooth_DX8( //--------------------------------------------------------------------------- void gld_Triangle3DFlat_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -997,7 +997,7 @@ void gld_Triangle3DFlat_DX8( //--------------------------------------------------------------------------- void gld_Triangle3DSmooth_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -1031,7 +1031,7 @@ void gld_Triangle3DSmooth_DX8( //--------------------------------------------------------------------------- void gld_Quad3DFlat_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -1083,7 +1083,7 @@ void gld_Quad3DFlat_DX8( //--------------------------------------------------------------------------- void gld_Quad3DSmooth_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -1137,34 +1137,34 @@ void gld_Quad3DSmooth_DX8( /* -void gld_Points2DTwoside_DX8(GLcontext *ctx, GLuint first, GLuint last) +void gld_Points2DTwoside_DX8(struct gl_context *ctx, GLuint first, GLuint last) { // NOTE: Two-sided lighting does not apply to Points } //--------------------------------------------------------------------------- -void gld_Line2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1) +void gld_Line2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1) { // NOTE: Two-sided lighting does not apply to Lines } //--------------------------------------------------------------------------- -void gld_Line2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1) +void gld_Line2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1) { // NOTE: Two-sided lighting does not apply to Lines } //--------------------------------------------------------------------------- -void gld_Triangle2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2) +void gld_Triangle2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) { } //--------------------------------------------------------------------------- -void gld_Triangle2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2) +void gld_Triangle2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -1229,7 +1229,7 @@ void gld_Triangle2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuin //--------------------------------------------------------------------------- -void gld_Quad2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +void gld_Quad2DFlatTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); @@ -1336,7 +1336,7 @@ void gld_Quad2DFlatTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, //--------------------------------------------------------------------------- -void gld_Quad2DSmoothTwoside_DX8(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +void gld_Quad2DSmoothTwoside_DX8(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx8 *gld = GLD_GET_DX8_DRIVER(gldCtx); diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_texture_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_texture_dx8.c index f24b3cfb74..6ea670a88a 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_texture_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_texture_dx8.c @@ -760,7 +760,7 @@ const struct gl_texture_format* _gldMesaFormatForD3DFormat( //--------------------------------------------------------------------------- void gldCopyTexImage1D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, @@ -772,7 +772,7 @@ void gldCopyTexImage1D_DX8( //--------------------------------------------------------------------------- void gldCopyTexImage2D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, @@ -788,7 +788,7 @@ void gldCopyTexImage2D_DX8( //--------------------------------------------------------------------------- void gldCopyTexSubImage1D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ) { @@ -798,7 +798,7 @@ void gldCopyTexSubImage1D_DX8( //--------------------------------------------------------------------------- void gldCopyTexSubImage2D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -814,7 +814,7 @@ void gldCopyTexSubImage2D_DX8( //--------------------------------------------------------------------------- void gldCopyTexSubImage3D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -846,7 +846,7 @@ typedef struct { //--------------------------------------------------------------------------- HRESULT _gldDrawPixels( - GLcontext *ctx, + struct gl_context *ctx, BOOL bChromakey, // Alpha test for glBitmap() images GLint x, // GL x position GLint y, // GL y position (needs flipping) @@ -982,7 +982,7 @@ HRESULT _gldDrawPixels( //--------------------------------------------------------------------------- void gld_DrawPixels_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -1045,7 +1045,7 @@ void gld_DrawPixels_DX8( //--------------------------------------------------------------------------- void gld_ReadPixels_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, @@ -1198,7 +1198,7 @@ gld_ReadPixels_DX8_return: //--------------------------------------------------------------------------- void gld_CopyPixels_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, @@ -1284,7 +1284,7 @@ void gld_CopyPixels_DX8( //--------------------------------------------------------------------------- void gld_Bitmap_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, @@ -1389,7 +1389,7 @@ void gld_Bitmap_DX8( //--------------------------------------------------------------------------- void _gldAllocateTexture( - GLcontext *ctx, + struct gl_context *ctx, struct gl_texture_object *tObj, struct gl_texture_image *texImage) { @@ -1435,7 +1435,7 @@ void _gldAllocateTexture( //--------------------------------------------------------------------------- const struct gl_texture_format* gld_ChooseTextureFormat_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType) @@ -1524,7 +1524,7 @@ const struct gl_texture_format* gld_ChooseTextureFormat_DX8( /* // Safer(?), slower version. void gld_TexImage2D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, @@ -1602,7 +1602,7 @@ void gld_TexImage2D_DX8( // Faster, more efficient version. // Copies subimage straight to dest texture void gld_TexImage2D_DX8( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, @@ -1676,7 +1676,7 @@ void gld_TexImage2D_DX8( //--------------------------------------------------------------------------- -void gld_TexImage1D_DX8(GLcontext *ctx, GLenum target, GLint level, +void gld_TexImage1D_DX8(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -1691,7 +1691,7 @@ void gld_TexImage1D_DX8(GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- /* -void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1767,7 +1767,7 @@ void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level, // Faster, more efficient version. // Copies subimage straight to dest texture -void gld_TexSubImage2D_DX8( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage2D_DX8( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1828,7 +1828,7 @@ void gld_TexSubImage2D_DX8( GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- -void gld_TexSubImage1D_DX8( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage1D_DX8( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, @@ -1842,7 +1842,7 @@ void gld_TexSubImage1D_DX8( GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- void gld_DeleteTexture_DX8( - GLcontext *ctx, + struct gl_context *ctx, struct gl_texture_object *tObj) { GLD_context *gld = (GLD_context*)(ctx->DriverCtx); @@ -1894,7 +1894,7 @@ __inline void _gldSetAlphaOps( //--------------------------------------------------------------------------- void gldUpdateTextureUnit( - GLcontext *ctx, + struct gl_context *ctx, GLuint unit, BOOL bPassThrough) { @@ -1994,7 +1994,7 @@ void gldUpdateTextureUnit( //--------------------------------------------------------------------------- void gld_NEW_TEXTURE_DX8( - GLcontext *ctx) + struct gl_context *ctx) { // TODO: Support for three (ATI Radeon) or more (nVidia GeForce3) texture units diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_vb_d3d_render_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_vb_d3d_render_dx8.c index 265c81fb4a..983df9bc09 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_vb_d3d_render_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_vb_d3d_render_dx8.c @@ -61,7 +61,7 @@ //--------------------------------------------------------------------------- __inline void _gldSetVertexShaderConstants( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx8 *gld) { D3DXMATRIX mat, matView, matProj; @@ -116,7 +116,7 @@ __inline void _gldSetVertexShaderConstants( //--------------------------------------------------------------------------- static GLboolean gld_d3d_render_stage_run( - GLcontext *ctx, + struct gl_context *ctx, struct tnl_pipeline_stage *stage) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_vb_mesa_render_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_vb_mesa_render_dx8.c index 9ab562010c..19ffc72c81 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_vb_mesa_render_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_vb_mesa_render_dx8.c @@ -167,7 +167,7 @@ do { \ /* TODO: do this for all primitives, verts and elts: */ -static void clip_elt_triangles( GLcontext *ctx, +static void clip_elt_triangles( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -255,7 +255,7 @@ static void clip_elt_triangles( GLcontext *ctx, /* Helper functions for drivers */ /**********************************************************************/ /* -void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) +void _tnl_RenderClippedPolygon( struct gl_context *ctx, const GLuint *elts, GLuint n ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -266,7 +266,7 @@ void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) VB->Elts = tmp; } -void _tnl_RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +void _tnl_RenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); @@ -306,7 +306,7 @@ tnl_quad_func _gldSetupQuad[4] = { //--------------------------------------------------------------------------- static GLboolean _gld_mesa_render_stage_run( - GLcontext *ctx, + struct gl_context *ctx, struct tnl_pipeline_stage *stage) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); diff --git a/src/mesa/drivers/windows/gldirect/dx8/gld_wgl_dx8.c b/src/mesa/drivers/windows/gldirect/dx8/gld_wgl_dx8.c index 011d810e97..73c76c7d4b 100644 --- a/src/mesa/drivers/windows/gldirect/dx8/gld_wgl_dx8.c +++ b/src/mesa/drivers/windows/gldirect/dx8/gld_wgl_dx8.c @@ -54,8 +54,8 @@ extern int nContextError; #define DDLOG_CRITICAL_OR_WARN DDLOG_CRITICAL -extern void _gld_mesa_warning(GLcontext *, char *); -extern void _gld_mesa_fatal(GLcontext *, char *); +extern void _gld_mesa_warning(struct gl_context *, char *); +extern void _gld_mesa_fatal(struct gl_context *, char *); //--------------------------------------------------------------------------- @@ -233,7 +233,7 @@ void _gldDestroyPrimitiveBuffer( //--------------------------------------------------------------------------- HRESULT _gldCreatePrimitiveBuffer( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx8 *lpCtx, GLD_pb_dx8 *gldVB) { diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_driver_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_driver_dx9.c index 0558462dea..aab7085201 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_driver_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_driver_dx9.c @@ -69,7 +69,7 @@ const float _fPersp_33 = 1.6f; //--------------------------------------------------------------------------- void _gld_mesa_warning( - __GLcontext *gc, + __struct gl_context *gc, char *str) { // Intercept Mesa's internal warning mechanism @@ -79,7 +79,7 @@ void _gld_mesa_warning( //--------------------------------------------------------------------------- void _gld_mesa_fatal( - __GLcontext *gc, + __struct gl_context *gc, char *str) { // Intercept Mesa's internal fatal-message mechanism @@ -199,7 +199,7 @@ D3DBLEND _gldConvertBlendFunc( //--------------------------------------------------------------------------- void gld_Noop_DX9( - GLcontext *ctx) + struct gl_context *ctx) { #ifdef _DEBUG gldLogMessage(GLDLOG_ERROR, "gld_Noop called!\n"); @@ -209,7 +209,7 @@ void gld_Noop_DX9( //--------------------------------------------------------------------------- void gld_Error_DX9( - GLcontext *ctx) + struct gl_context *ctx) { #ifdef _DEBUG // Quite useless. @@ -222,7 +222,7 @@ void gld_Error_DX9( //--------------------------------------------------------------------------- static GLboolean gld_set_draw_buffer_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum mode) { (void) ctx; @@ -237,8 +237,8 @@ static GLboolean gld_set_draw_buffer_DX9( //--------------------------------------------------------------------------- static void gld_set_read_buffer_DX9( - GLcontext *ctx, - GLframebuffer *buffer, + struct gl_context *ctx, + struct gl_framebuffer *buffer, GLenum mode) { /* separate read buffer not supported */ @@ -251,7 +251,7 @@ static void gld_set_read_buffer_DX9( //--------------------------------------------------------------------------- void gld_Clear_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLbitfield mask, GLboolean all, GLint x, @@ -340,8 +340,8 @@ void gld_Clear_DX9( // Mesa 5: Parameter change static void gld_buffer_size_DX9( -// GLcontext *ctx, - GLframebuffer *fb, +// struct gl_context *ctx, + struct gl_framebuffer *fb, GLuint *width, GLuint *height) { @@ -354,14 +354,14 @@ static void gld_buffer_size_DX9( //--------------------------------------------------------------------------- static void gld_Finish_DX9( - GLcontext *ctx) + struct gl_context *ctx) { } //--------------------------------------------------------------------------- static void gld_Flush_DX9( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gld = GLD_GET_CONTEXT(ctx); @@ -377,7 +377,7 @@ static void gld_Flush_DX9( //--------------------------------------------------------------------------- void gld_NEW_STENCIL( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -402,7 +402,7 @@ void gld_NEW_STENCIL( //--------------------------------------------------------------------------- void gld_NEW_COLOR( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -434,7 +434,7 @@ void gld_NEW_COLOR( //--------------------------------------------------------------------------- void gld_NEW_DEPTH( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -447,7 +447,7 @@ void gld_NEW_DEPTH( //--------------------------------------------------------------------------- void gld_NEW_POLYGON( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -513,7 +513,7 @@ void gld_NEW_POLYGON( //--------------------------------------------------------------------------- void gld_NEW_FOG( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -568,7 +568,7 @@ void gld_NEW_FOG( //--------------------------------------------------------------------------- void gld_NEW_LIGHT( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -588,7 +588,7 @@ void gld_NEW_LIGHT( //--------------------------------------------------------------------------- void gld_NEW_MODELVIEW( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -620,7 +620,7 @@ void gld_NEW_MODELVIEW( //--------------------------------------------------------------------------- void gld_NEW_PROJECTION( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -699,7 +699,7 @@ void gldOrthoHook_DX9( //--------------------------------------------------------------------------- void gld_NEW_VIEWPORT( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -741,7 +741,7 @@ void gld_NEW_VIEWPORT( //--------------------------------------------------------------------------- void gld_NEW_SCISSOR( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -768,7 +768,7 @@ void gld_NEW_SCISSOR( //--------------------------------------------------------------------------- __inline BOOL _gldAnyEvalEnabled( - GLcontext *ctx) + struct gl_context *ctx) { struct gl_eval_attrib *eval = &ctx->Eval; @@ -800,7 +800,7 @@ __inline BOOL _gldAnyEvalEnabled( //--------------------------------------------------------------------------- BOOL _gldChooseInternalPipeline( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx9 *gld) { // return TRUE; // DEBUGGING: ALWAYS USE MESA @@ -864,7 +864,7 @@ BOOL _gldChooseInternalPipeline( //--------------------------------------------------------------------------- void gld_update_state_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint new_state) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -1001,7 +1001,7 @@ void gld_update_state_DX9( //--------------------------------------------------------------------------- void gld_Viewport_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei w, @@ -1063,12 +1063,12 @@ void gld_Viewport_DX9( //--------------------------------------------------------------------------- -extern BOOL dglWglResizeBuffers(GLcontext *ctx, BOOL bDefaultDriver); +extern BOOL dglWglResizeBuffers(struct gl_context *ctx, BOOL bDefaultDriver); // Mesa 5: Parameter change void gldResizeBuffers_DX9( -// GLcontext *ctx) - GLframebuffer *fb) +// struct gl_context *ctx) + struct gl_framebuffer *fb) { GET_CURRENT_CONTEXT(ctx); dglWglResizeBuffers(ctx, TRUE); @@ -1079,7 +1079,7 @@ void gldResizeBuffers_DX9( // This is only for debugging. // To use, plug into ctx->Driver.Enable pointer below. void gld_Enable( - GLcontext *ctx, + struct gl_context *ctx, GLenum e, GLboolean b) { @@ -1092,10 +1092,10 @@ void gld_Enable( // Driver pointer setup //--------------------------------------------------------------------------- -extern const GLubyte* _gldGetStringGeneric(GLcontext*, GLenum); +extern const GLubyte* _gldGetStringGeneric(struct gl_context*, GLenum); void gldSetupDriverPointers_DX9( - GLcontext *ctx) + struct gl_context *ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_dx9.h b/src/mesa/drivers/windows/gldirect/dx9/gld_dx9.h index aec40ac9dd..67601da7fb 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_dx9.h +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_dx9.h @@ -259,69 +259,69 @@ typedef struct { //--------------------------------------------------------------------------- PROC gldGetProcAddress_DX9(LPCSTR a); -void gldEnableExtensions_DX9(GLcontext *ctx); -void gldInstallPipeline_DX9(GLcontext *ctx); -void gldSetupDriverPointers_DX9(GLcontext *ctx); -//void gldResizeBuffers_DX9(GLcontext *ctx); -void gldResizeBuffers_DX9(GLframebuffer *fb); +void gldEnableExtensions_DX9(struct gl_context *ctx); +void gldInstallPipeline_DX9(struct gl_context *ctx); +void gldSetupDriverPointers_DX9(struct gl_context *ctx); +//void gldResizeBuffers_DX9(struct gl_context *ctx); +void gldResizeBuffers_DX9(struct gl_framebuffer *fb); // Texture functions -void gldCopyTexImage1D_DX9(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -void gldCopyTexImage2D_DX9(GLcontext *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -void gldCopyTexSubImage1D_DX9(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); -void gldCopyTexSubImage2D_DX9(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); -void gldCopyTexSubImage3D_DX9(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); - -void gld_NEW_TEXTURE_DX9(GLcontext *ctx); -void gld_DrawPixels_DX9(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels); -void gld_ReadPixels_DX9(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest); -void gld_CopyPixels_DX9(GLcontext *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type); -void gld_Bitmap_DX9(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap); -const struct gl_texture_format* gld_ChooseTextureFormat_DX9(GLcontext *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType); -void gld_TexImage2D_DX9(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *tObj, struct gl_texture_image *texImage); -void gld_TexImage1D_DX9(GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); -void gld_TexSubImage2D_DX9( GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); -void gld_TexSubImage1D_DX9(GLcontext *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); -void gld_DeleteTexture_DX9(GLcontext *ctx, struct gl_texture_object *tObj); -void gld_ResetLineStipple_DX9(GLcontext *ctx); +void gldCopyTexImage1D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +void gldCopyTexImage2D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +void gldCopyTexSubImage1D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); +void gldCopyTexSubImage2D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); +void gldCopyTexSubImage3D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); + +void gld_NEW_TEXTURE_DX9(struct gl_context *ctx); +void gld_DrawPixels_DX9(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels); +void gld_ReadPixels_DX9(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *dest); +void gld_CopyPixels_DX9(struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type); +void gld_Bitmap_DX9(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap); +const struct gl_texture_format* gld_ChooseTextureFormat_DX9(struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType); +void gld_TexImage2D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *tObj, struct gl_texture_image *texImage); +void gld_TexImage1D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); +void gld_TexSubImage2D_DX9( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); +void gld_TexSubImage1D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); +void gld_DeleteTexture_DX9(struct gl_context *ctx, struct gl_texture_object *tObj); +void gld_ResetLineStipple_DX9(struct gl_context *ctx); // 2D primitive functions -void gld_Points2D_DX9(GLcontext *ctx, GLuint first, GLuint last); +void gld_Points2D_DX9(struct gl_context *ctx, GLuint first, GLuint last); -void gld_Line2DFlat_DX9(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Line2DSmooth_DX9(GLcontext *ctx, GLuint v0, GLuint v1); +void gld_Line2DFlat_DX9(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Line2DSmooth_DX9(struct gl_context *ctx, GLuint v0, GLuint v1); -void gld_Triangle2DFlat_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmooth_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DFlatExtras_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmoothExtras_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DFlat_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmooth_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DFlatExtras_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmoothExtras_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad2DFlat_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmooth_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DFlatExtras_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmoothExtras_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DFlat_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmooth_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DFlatExtras_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmoothExtras_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); // 3D primitive functions -void gld_Points3D_DX9(GLcontext *ctx, GLuint first, GLuint last); -void gld_Line3DFlat_DX9(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle3DFlat_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad3DFlat_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Line3DSmooth_DX9(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle3DSmooth_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad3DSmooth_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Points3D_DX9(struct gl_context *ctx, GLuint first, GLuint last); +void gld_Line3DFlat_DX9(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle3DFlat_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad3DFlat_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Line3DSmooth_DX9(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle3DSmooth_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad3DSmooth_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); // Primitive functions for Two-sided-lighting Vertex Shader -void gld_Points2DTwoside_DX9(GLcontext *ctx, GLuint first, GLuint last); -void gld_Line2DFlatTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Line2DSmoothTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1); -void gld_Triangle2DFlatTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Triangle2DSmoothTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2); -void gld_Quad2DFlatTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -void gld_Quad2DSmoothTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Points2DTwoside_DX9(struct gl_context *ctx, GLuint first, GLuint last); +void gld_Line2DFlatTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Line2DSmoothTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1); +void gld_Triangle2DFlatTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Triangle2DSmoothTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2); +void gld_Quad2DFlatTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +void gld_Quad2DSmoothTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3); #endif diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_ext_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_ext_dx9.c index e8c73a6ff8..667c59c491 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_ext_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_ext_dx9.c @@ -69,7 +69,7 @@ #include "extensions.h" // For some reason this is not defined in an above header... -extern void _mesa_enable_imaging_extensions(GLcontext *ctx); +extern void _mesa_enable_imaging_extensions(struct gl_context *ctx); //--------------------------------------------------------------------------- // Hack for the SGIS_multitexture extension that was removed from Mesa @@ -281,7 +281,7 @@ PROC gldGetProcAddress_DX( //--------------------------------------------------------------------------- void gldEnableExtensions_DX9( - GLcontext *ctx) + struct gl_context *ctx) { GLuint i; diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_pipeline_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_pipeline_dx9.c index 2b272aa628..f9abbdbdfe 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_pipeline_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_pipeline_dx9.c @@ -65,7 +65,7 @@ static const struct tnl_pipeline_stage *gld_pipeline[] = { //--------------------------------------------------------------------------- void gldInstallPipeline_DX9( - GLcontext *ctx) + struct gl_context *ctx) { // Remove any existing pipeline stages, // then install GLDirect pipeline stages. diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_primitive_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_primitive_dx9.c index fd4dd4ed75..99edd26e9d 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_primitive_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_primitive_dx9.c @@ -277,7 +277,7 @@ //--------------------------------------------------------------------------- __inline DWORD _gldComputeFog( - GLcontext *ctx, + struct gl_context *ctx, SWvertex *swv) { // Full fog calculation. @@ -300,7 +300,7 @@ __inline DWORD _gldComputeFog( //--------------------------------------------------------------------------- void gld_ResetLineStipple_DX9( - GLcontext *ctx) + struct gl_context *ctx) { // TODO: Fake stipple with a 32x32 texture. } @@ -310,7 +310,7 @@ void gld_ResetLineStipple_DX9( //--------------------------------------------------------------------------- void gld_Points2D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint first, GLuint last) { @@ -357,7 +357,7 @@ void gld_Points2D_DX9( //--------------------------------------------------------------------------- void gld_Line2DFlat_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -390,7 +390,7 @@ void gld_Line2DFlat_DX9( //--------------------------------------------------------------------------- void gld_Line2DSmooth_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -421,7 +421,7 @@ void gld_Line2DSmooth_DX9( //--------------------------------------------------------------------------- void gld_Triangle2DFlat_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -460,7 +460,7 @@ void gld_Triangle2DFlat_DX9( //--------------------------------------------------------------------------- void gld_Triangle2DSmooth_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -499,7 +499,7 @@ void gld_Triangle2DSmooth_DX9( //--------------------------------------------------------------------------- void gld_Triangle2DFlatExtras_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -548,7 +548,7 @@ void gld_Triangle2DFlatExtras_DX9( //--------------------------------------------------------------------------- void gld_Triangle2DSmoothExtras_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -588,7 +588,7 @@ void gld_Triangle2DSmoothExtras_DX9( //--------------------------------------------------------------------------- void gld_Quad2DFlat_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -652,7 +652,7 @@ void gld_Quad2DFlat_DX9( //--------------------------------------------------------------------------- void gld_Quad2DSmooth_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -715,7 +715,7 @@ void gld_Quad2DSmooth_DX9( //--------------------------------------------------------------------------- void gld_Quad2DFlatExtras_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -792,7 +792,7 @@ void gld_Quad2DFlatExtras_DX9( //--------------------------------------------------------------------------- void gld_Quad2DSmoothExtras_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -859,7 +859,7 @@ void gld_Quad2DSmoothExtras_DX9( //--------------------------------------------------------------------------- void gld_Points3D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint first, GLuint last) { @@ -911,7 +911,7 @@ void gld_Points3D_DX9( //--------------------------------------------------------------------------- void gld_Line3DFlat_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -937,7 +937,7 @@ void gld_Line3DFlat_DX9( //--------------------------------------------------------------------------- void gld_Line3DSmooth_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1) { @@ -964,7 +964,7 @@ void gld_Line3DSmooth_DX9( //--------------------------------------------------------------------------- void gld_Triangle3DFlat_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -997,7 +997,7 @@ void gld_Triangle3DFlat_DX9( //--------------------------------------------------------------------------- void gld_Triangle3DSmooth_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) @@ -1031,7 +1031,7 @@ void gld_Triangle3DSmooth_DX9( //--------------------------------------------------------------------------- void gld_Quad3DFlat_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -1083,7 +1083,7 @@ void gld_Quad3DFlat_DX9( //--------------------------------------------------------------------------- void gld_Quad3DSmooth_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, @@ -1137,34 +1137,34 @@ void gld_Quad3DSmooth_DX9( /* -void gld_Points2DTwoside_DX9(GLcontext *ctx, GLuint first, GLuint last) +void gld_Points2DTwoside_DX9(struct gl_context *ctx, GLuint first, GLuint last) { // NOTE: Two-sided lighting does not apply to Points } //--------------------------------------------------------------------------- -void gld_Line2DFlatTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1) +void gld_Line2DFlatTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1) { // NOTE: Two-sided lighting does not apply to Lines } //--------------------------------------------------------------------------- -void gld_Line2DSmoothTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1) +void gld_Line2DSmoothTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1) { // NOTE: Two-sided lighting does not apply to Lines } //--------------------------------------------------------------------------- -void gld_Triangle2DFlatTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2) +void gld_Triangle2DFlatTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) { } //--------------------------------------------------------------------------- -void gld_Triangle2DSmoothTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2) +void gld_Triangle2DSmoothTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -1229,7 +1229,7 @@ void gld_Triangle2DSmoothTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuin //--------------------------------------------------------------------------- -void gld_Quad2DFlatTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +void gld_Quad2DFlatTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); @@ -1336,7 +1336,7 @@ void gld_Quad2DFlatTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, //--------------------------------------------------------------------------- -void gld_Quad2DSmoothTwoside_DX9(GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) +void gld_Quad2DSmoothTwoside_DX9(struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); GLD_driver_dx9 *gld = GLD_GET_DX9_DRIVER(gldCtx); diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_texture_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_texture_dx9.c index 5a82235616..bd7a64f57f 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_texture_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_texture_dx9.c @@ -760,7 +760,7 @@ const struct gl_texture_format* _gldMesaFormatForD3DFormat( //--------------------------------------------------------------------------- void gldCopyTexImage1D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, @@ -772,7 +772,7 @@ void gldCopyTexImage1D_DX9( //--------------------------------------------------------------------------- void gldCopyTexImage2D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, @@ -788,7 +788,7 @@ void gldCopyTexImage2D_DX9( //--------------------------------------------------------------------------- void gldCopyTexSubImage1D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ) { @@ -798,7 +798,7 @@ void gldCopyTexSubImage1D_DX9( //--------------------------------------------------------------------------- void gldCopyTexSubImage2D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -814,7 +814,7 @@ void gldCopyTexSubImage2D_DX9( //--------------------------------------------------------------------------- void gldCopyTexSubImage3D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, @@ -846,7 +846,7 @@ typedef struct { //--------------------------------------------------------------------------- HRESULT _gldDrawPixels( - GLcontext *ctx, + struct gl_context *ctx, BOOL bChromakey, // Alpha test for glBitmap() images GLint x, // GL x position GLint y, // GL y position (needs flipping) @@ -991,7 +991,7 @@ HRESULT _gldDrawPixels( //--------------------------------------------------------------------------- void gld_DrawPixels_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -1060,7 +1060,7 @@ void gld_DrawPixels_DX9( //--------------------------------------------------------------------------- void gld_ReadPixels_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, @@ -1230,7 +1230,7 @@ gld_ReadPixels_DX9_return: //--------------------------------------------------------------------------- void gld_CopyPixels_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, @@ -1329,7 +1329,7 @@ void gld_CopyPixels_DX9( //--------------------------------------------------------------------------- void gld_Bitmap_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei width, @@ -1440,7 +1440,7 @@ void gld_Bitmap_DX9( //--------------------------------------------------------------------------- void _gldAllocateTexture( - GLcontext *ctx, + struct gl_context *ctx, struct gl_texture_object *tObj, struct gl_texture_image *texImage) { @@ -1486,7 +1486,7 @@ void _gldAllocateTexture( //--------------------------------------------------------------------------- const struct gl_texture_format* gld_ChooseTextureFormat_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType) @@ -1575,7 +1575,7 @@ const struct gl_texture_format* gld_ChooseTextureFormat_DX9( /* // Safer(?), slower version. void gld_TexImage2D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, @@ -1653,7 +1653,7 @@ void gld_TexImage2D_DX9( // Faster, more efficient version. // Copies subimage straight to dest texture void gld_TexImage2D_DX9( - GLcontext *ctx, + struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, @@ -1727,7 +1727,7 @@ void gld_TexImage2D_DX9( //--------------------------------------------------------------------------- -void gld_TexImage1D_DX9(GLcontext *ctx, GLenum target, GLint level, +void gld_TexImage1D_DX9(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -1742,7 +1742,7 @@ void gld_TexImage1D_DX9(GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- /* -void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage2D( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1818,7 +1818,7 @@ void gld_TexSubImage2D( GLcontext *ctx, GLenum target, GLint level, // Faster, more efficient version. // Copies subimage straight to dest texture -void gld_TexSubImage2D_DX9( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage2D_DX9( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -1879,7 +1879,7 @@ void gld_TexSubImage2D_DX9( GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- -void gld_TexSubImage1D_DX9( GLcontext *ctx, GLenum target, GLint level, +void gld_TexSubImage1D_DX9( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, @@ -1893,7 +1893,7 @@ void gld_TexSubImage1D_DX9( GLcontext *ctx, GLenum target, GLint level, //--------------------------------------------------------------------------- void gld_DeleteTexture_DX9( - GLcontext *ctx, + struct gl_context *ctx, struct gl_texture_object *tObj) { GLD_context *gld = (GLD_context*)(ctx->DriverCtx); @@ -1945,7 +1945,7 @@ __inline void _gldSetAlphaOps( //--------------------------------------------------------------------------- void gldUpdateTextureUnit( - GLcontext *ctx, + struct gl_context *ctx, GLuint unit, BOOL bPassThrough) { @@ -2050,7 +2050,7 @@ void gldUpdateTextureUnit( //--------------------------------------------------------------------------- void gld_NEW_TEXTURE_DX9( - GLcontext *ctx) + struct gl_context *ctx) { // TODO: Support for three (ATI Radeon) or more (nVidia GeForce3) texture units diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_vb_d3d_render_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_vb_d3d_render_dx9.c index 91a68b3f2d..5f818d9f96 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_vb_d3d_render_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_vb_d3d_render_dx9.c @@ -61,7 +61,7 @@ //--------------------------------------------------------------------------- __inline void _gldSetVertexShaderConstants( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx9 *gld) { D3DXMATRIX mat, matView, matProj; @@ -116,7 +116,7 @@ __inline void _gldSetVertexShaderConstants( //--------------------------------------------------------------------------- static GLboolean gld_d3d_render_stage_run( - GLcontext *ctx, + struct gl_context *ctx, struct tnl_pipeline_stage *stage) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -237,7 +237,7 @@ static GLboolean gld_d3d_render_stage_run( //--------------------------------------------------------------------------- static void gld_d3d_render_stage_check( - GLcontext *ctx, + struct gl_context *ctx, struct tnl_pipeline_stage *stage) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_vb_mesa_render_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_vb_mesa_render_dx9.c index 64acab2d2a..b5e005b25b 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_vb_mesa_render_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_vb_mesa_render_dx9.c @@ -162,7 +162,7 @@ do { \ /* TODO: do this for all primitives, verts and elts: */ -static void clip_elt_triangles( GLcontext *ctx, +static void clip_elt_triangles( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -250,7 +250,7 @@ static void clip_elt_triangles( GLcontext *ctx, /* Helper functions for drivers */ /**********************************************************************/ /* -void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) +void _tnl_RenderClippedPolygon( struct gl_context *ctx, const GLuint *elts, GLuint n ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -261,7 +261,7 @@ void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) VB->Elts = tmp; } -void _tnl_RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +void _tnl_RenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); @@ -301,7 +301,7 @@ tnl_quad_func _gldSetupQuad[4] = { //--------------------------------------------------------------------------- static GLboolean _gld_mesa_render_stage_run( - GLcontext *ctx, + struct gl_context *ctx, struct tnl_pipeline_stage *stage) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); diff --git a/src/mesa/drivers/windows/gldirect/dx9/gld_wgl_dx9.c b/src/mesa/drivers/windows/gldirect/dx9/gld_wgl_dx9.c index a03b865bb4..6cf46fb7a8 100644 --- a/src/mesa/drivers/windows/gldirect/dx9/gld_wgl_dx9.c +++ b/src/mesa/drivers/windows/gldirect/dx9/gld_wgl_dx9.c @@ -54,8 +54,8 @@ extern int nContextError; #define DDLOG_CRITICAL_OR_WARN DDLOG_CRITICAL -extern void _gld_mesa_warning(GLcontext *, char *); -extern void _gld_mesa_fatal(GLcontext *, char *); +extern void _gld_mesa_warning(struct gl_context *, char *); +extern void _gld_mesa_fatal(struct gl_context *, char *); //--------------------------------------------------------------------------- @@ -246,7 +246,7 @@ void _gldDestroyPrimitiveBuffer( //--------------------------------------------------------------------------- HRESULT _gldCreatePrimitiveBuffer( - GLcontext *ctx, + struct gl_context *ctx, GLD_driver_dx9 *lpCtx, GLD_pb_dx9 *gldVB) { diff --git a/src/mesa/drivers/windows/gldirect/gld_driver.c b/src/mesa/drivers/windows/gldirect/gld_driver.c index f7c575614b..aa7bc27c99 100644 --- a/src/mesa/drivers/windows/gldirect/gld_driver.c +++ b/src/mesa/drivers/windows/gldirect/gld_driver.c @@ -193,7 +193,7 @@ static BOOL _GetDisplayMode_ERROR( //--------------------------------------------------------------------------- const GLubyte* _gldGetStringGeneric( - GLcontext *ctx, + struct gl_context *ctx, GLenum name) { if (!ctx) diff --git a/src/mesa/drivers/windows/gldirect/gld_driver.h b/src/mesa/drivers/windows/gldirect/gld_driver.h index 01a46a8325..7c393bc4c7 100644 --- a/src/mesa/drivers/windows/gldirect/gld_driver.h +++ b/src/mesa/drivers/windows/gldirect/gld_driver.h @@ -83,7 +83,7 @@ typedef struct { extern GLD_driver _gldDriver; BOOL gldInitDriverPointers(DWORD dwDriver); -const GLubyte* _gldGetStringGeneric(GLcontext *ctx, GLenum name); +const GLubyte* _gldGetStringGeneric(struct gl_context *ctx, GLenum name); #endif // _USE_GLD3_WGL diff --git a/src/mesa/drivers/windows/gldirect/mesasw/gld_wgl_mesasw.c b/src/mesa/drivers/windows/gldirect/mesasw/gld_wgl_mesasw.c index f927abfa11..7a26df8071 100644 --- a/src/mesa/drivers/windows/gldirect/mesasw/gld_wgl_mesasw.c +++ b/src/mesa/drivers/windows/gldirect/mesasw/gld_wgl_mesasw.c @@ -610,7 +610,7 @@ BOOL wmFlush(PWMC pwc, HDC hDC) // Support Functions //--------------------------------------------------------------------------- -static void flush(GLcontext* ctx) +static void flush(struct gl_context* ctx) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); WMesaContext *Current = GLD_GET_WMESA_DRIVER(gldCtx); @@ -634,10 +634,10 @@ static void flush(GLcontext* ctx) /* * Set the color used to clear the color buffer. */ -//static void clear_color( GLcontext* ctx, const GLchan color[4] ) +//static void clear_color( struct gl_context* ctx, const GLchan color[4] ) // Changed for Mesa 5.x. KeithH static void clear_color( - GLcontext* ctx, + struct gl_context* ctx, const GLfloat color[4]) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -664,7 +664,7 @@ static void clear_color( * Otherwise, we let swrast do it. */ -static clear(GLcontext* ctx, GLbitfield mask, +static clear(struct gl_context* ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -787,7 +787,7 @@ static clear(GLcontext* ctx, GLbitfield mask, //--------------------------------------------------------------------------- -static void enable( GLcontext* ctx, GLenum pname, GLboolean enable ) +static void enable( struct gl_context* ctx, GLenum pname, GLboolean enable ) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); WMesaContext *Current = GLD_GET_WMESA_DRIVER(gldCtx); @@ -814,7 +814,7 @@ static void enable( GLcontext* ctx, GLenum pname, GLboolean enable ) //--------------------------------------------------------------------------- -static GLboolean set_draw_buffer( GLcontext* ctx, GLenum mode ) +static GLboolean set_draw_buffer( struct gl_context* ctx, GLenum mode ) { /* TODO: this could be better */ if (mode==GL_FRONT_LEFT || mode==GL_BACK_LEFT) { @@ -828,7 +828,7 @@ static GLboolean set_draw_buffer( GLcontext* ctx, GLenum mode ) //--------------------------------------------------------------------------- -static void set_read_buffer(GLcontext *ctx, GLframebuffer *colorBuffer, +static void set_read_buffer(struct gl_context *ctx, struct gl_framebuffer *colorBuffer, GLenum buffer ) { /* XXX todo */ @@ -840,10 +840,10 @@ static void set_read_buffer(GLcontext *ctx, GLframebuffer *colorBuffer, /* Return characteristics of the output buffer. */ -//static void buffer_size( GLcontext* ctx, GLuint *width, GLuint *height ) +//static void buffer_size( struct gl_context* ctx, GLuint *width, GLuint *height ) // Altered for Mesa 5.x. KeithH static void buffer_size( - GLframebuffer *buffer, + struct gl_framebuffer *buffer, GLuint *width, GLuint *height) { @@ -888,28 +888,28 @@ static void buffer_size( /* Accelerated routines are not implemented in 4.0. See OSMesa for ideas. */ -static void fast_rgb_points( GLcontext* ctx, GLuint first, GLuint last ) +static void fast_rgb_points( struct gl_context* ctx, GLuint first, GLuint last ) { } //--------------------------------------------------------------------------- /* Return pointer to accelerated points function */ -extern tnl_points_func choose_points_function( GLcontext* ctx ) +extern tnl_points_func choose_points_function( struct gl_context* ctx ) { return NULL; } //--------------------------------------------------------------------------- -static void fast_flat_rgb_line( GLcontext* ctx, GLuint v0, +static void fast_flat_rgb_line( struct gl_context* ctx, GLuint v0, GLuint v1, GLuint pv ) { } //--------------------------------------------------------------------------- -static tnl_line_func choose_line_function( GLcontext* ctx ) +static tnl_line_func choose_line_function( struct gl_context* ctx ) { } @@ -920,7 +920,7 @@ static tnl_line_func choose_line_function( GLcontext* ctx ) /* Write a horizontal span of 32-bit color-index pixels with a boolean mask. */ -static void write_ci32_span( const GLcontext* ctx, +static void write_ci32_span( const struct gl_context* ctx, GLuint n, GLint x, GLint y, const GLuint index[], const GLubyte mask[] ) @@ -939,7 +939,7 @@ static void write_ci32_span( const GLcontext* ctx, //--------------------------------------------------------------------------- /* Write a horizontal span of 8-bit color-index pixels with a boolean mask. */ -static void write_ci8_span( const GLcontext* ctx, +static void write_ci8_span( const struct gl_context* ctx, GLuint n, GLint x, GLint y, const GLubyte index[], const GLubyte mask[] ) @@ -962,7 +962,7 @@ static void write_ci8_span( const GLcontext* ctx, * Write a horizontal span of pixels with a boolean mask. The current * color index is used for all pixels. */ -static void write_mono_ci_span(const GLcontext* ctx, +static void write_mono_ci_span(const struct gl_context* ctx, GLuint n,GLint x,GLint y, GLuint colorIndex, const GLubyte mask[]) { @@ -984,7 +984,7 @@ static void write_mono_ci_span(const GLcontext* ctx, */ /* Write a horizontal span of RGBA color pixels with a boolean mask. */ -static void write_rgba_span( const GLcontext* ctx, GLuint n, GLint x, GLint y, +static void write_rgba_span( const struct gl_context* ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] ) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -1035,7 +1035,7 @@ static void write_rgba_span( const GLcontext* ctx, GLuint n, GLint x, GLint y, //--------------------------------------------------------------------------- /* Write a horizontal span of RGB color pixels with a boolean mask. */ -static void write_rgb_span( const GLcontext* ctx, +static void write_rgb_span( const struct gl_context* ctx, GLuint n, GLint x, GLint y, const GLubyte rgb[][3], const GLubyte mask[] ) { @@ -1090,7 +1090,7 @@ static void write_rgb_span( const GLcontext* ctx, * Write a horizontal span of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_span( const GLcontext* ctx, +static void write_mono_rgba_span( const struct gl_context* ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]) { @@ -1123,7 +1123,7 @@ static void write_mono_rgba_span( const GLcontext* ctx, /* Write an array of 32-bit index pixels with a boolean mask. */ -static void write_ci32_pixels( const GLcontext* ctx, +static void write_ci32_pixels( const struct gl_context* ctx, GLuint n, const GLint x[], const GLint y[], const GLuint index[], const GLubyte mask[] ) { @@ -1147,7 +1147,7 @@ static void write_ci32_pixels( const GLcontext* ctx, * Write an array of pixels with a boolean mask. The current color * index is used for all pixels. */ -static void write_mono_ci_pixels( const GLcontext* ctx, +static void write_mono_ci_pixels( const struct gl_context* ctx, GLuint n, const GLint x[], const GLint y[], GLuint colorIndex, const GLubyte mask[] ) @@ -1169,7 +1169,7 @@ static void write_mono_ci_pixels( const GLcontext* ctx, /* Write an array of RGBA pixels with a boolean mask. */ -static void write_rgba_pixels( const GLcontext* ctx, +static void write_rgba_pixels( const struct gl_context* ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] ) { @@ -1194,7 +1194,7 @@ static void write_rgba_pixels( const GLcontext* ctx, * Write an array of pixels with a boolean mask. The current color * is used for all pixels. */ -static void write_mono_rgba_pixels( const GLcontext* ctx, +static void write_mono_rgba_pixels( const struct gl_context* ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], @@ -1218,7 +1218,7 @@ static void write_mono_rgba_pixels( const GLcontext* ctx, /**********************************************************************/ /* Read a horizontal span of color-index pixels. */ -static void read_ci32_span( const GLcontext* ctx, GLuint n, GLint x, GLint y, +static void read_ci32_span( const struct gl_context* ctx, GLuint n, GLint x, GLint y, GLuint index[]) { GLD_context *gldCtx = GLD_GET_CONTEXT(ctx); @@ -1233,7 +1233,7 @@ static void read_ci32_span( const GLcontext* ctx, GLuint n, GLint x, GLint y, //--------------------------------------------------------------------------- /* Read an array of color index pixels. */ -static void read_ci32_pixels( const GLcontext* ctx, +static void read_ci32_pixels( const struct gl_context* ctx, GLuint n, const GLint x[], const GLint y[], GLuint indx[], const GLubyte mask[] ) { @@ -1251,7 +1251,7 @@ static void read_ci32_pixels( const GLcontext* ctx, //--------------------------------------------------------------------------- /* Read a horizontal span of color pixels. */ -static void read_rgba_span( const GLcontext* ctx, +static void read_rgba_span( const struct gl_context* ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ) { @@ -1275,7 +1275,7 @@ static void read_rgba_span( const GLcontext* ctx, //--------------------------------------------------------------------------- /* Read an array of color pixels. */ -static void read_rgba_pixels( const GLcontext* ctx, +static void read_rgba_pixels( const struct gl_context* ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] ) { @@ -1301,7 +1301,7 @@ static void read_rgba_pixels( const GLcontext* ctx, //--------------------------------------------------------------------------- static void wmesa_update_state( - GLcontext *ctx, + struct gl_context *ctx, GLuint new_state) { _swrast_InvalidateState( ctx, new_state ); @@ -1313,7 +1313,7 @@ static void wmesa_update_state( //--------------------------------------------------------------------------- static void wmesa_viewport( - GLcontext *ctx, + struct gl_context *ctx, GLint x, GLint y, GLsizei w, @@ -1325,7 +1325,7 @@ static void wmesa_viewport( //--------------------------------------------------------------------------- static void wmesa_update_state_first_time( - GLcontext *ctx, + struct gl_context *ctx, GLuint new_state) { struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference( ctx ); @@ -1570,7 +1570,7 @@ BOOL gldBuildPixelformatList_MesaSW(void) BOOL gldInitialiseMesa_MesaSW( DGL_ctx *gld) { - GLcontext *ctx; + struct gl_context *ctx; if (gld == NULL) return FALSE; diff --git a/src/mesa/drivers/x11/Makefile b/src/mesa/drivers/x11/Makefile index f759da0a97..f94aae85f2 100644 --- a/src/mesa/drivers/x11/Makefile +++ b/src/mesa/drivers/x11/Makefile @@ -12,7 +12,7 @@ include $(TOP)/configs/current GL_MAJOR = 1 GL_MINOR = 5 -GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY) +GL_TINY = 0$(MESA_MAJOR)$(MESA_MINOR)0$(MESA_TINY) HEADERS = \ diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c index dac1668cfe..00ceb960c6 100644 --- a/src/mesa/drivers/x11/xm_api.c +++ b/src/mesa/drivers/x11/xm_api.c @@ -349,7 +349,7 @@ XMesaBuffer XMesaBufferList = NULL; /** * Allocate a new XMesaBuffer object which corresponds to the given drawable. - * Note that XMesaBuffer is derived from GLframebuffer. + * Note that XMesaBuffer is derived from struct gl_framebuffer. * The new XMesaBuffer will not have any size (Width=Height=0). * * \param d the corresponding X drawable (window or pixmap) @@ -1047,7 +1047,7 @@ initialize_visual_and_buffer(XMesaVisual v, XMesaBuffer b, XMesaColormap cmap) { int client = 0; - const int xclass = v->mesa_visual.visualType; + const int xclass = v->visualType; #ifdef XFree86Server client = (window) ? CLIENT_ID(window->id) : 0; @@ -1200,7 +1200,7 @@ initialize_visual_and_buffer(XMesaVisual v, XMesaBuffer b, * Convert an RGBA color to a pixel value. */ unsigned long -xmesa_color_to_pixel(GLcontext *ctx, +xmesa_color_to_pixel(struct gl_context *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLuint pixelFormat) { @@ -1397,20 +1397,20 @@ XMesaVisual XMesaCreateVisual( XMesaDisplay *display, v->mesa_visual.redMask = visinfo->redMask; v->mesa_visual.greenMask = visinfo->greenMask; v->mesa_visual.blueMask = visinfo->blueMask; - v->mesa_visual.visualID = visinfo->vid; - v->mesa_visual.screen = 0; /* FIXME: What should be done here? */ + v->visualID = visinfo->vid; + v->screen = 0; /* FIXME: What should be done here? */ #else v->mesa_visual.redMask = visinfo->red_mask; v->mesa_visual.greenMask = visinfo->green_mask; v->mesa_visual.blueMask = visinfo->blue_mask; - v->mesa_visual.visualID = visinfo->visualid; - v->mesa_visual.screen = visinfo->screen; + v->visualID = visinfo->visualid; + v->screen = visinfo->screen; #endif #if defined(XFree86Server) || !(defined(__cplusplus) || defined(c_plusplus)) - v->mesa_visual.visualType = xmesa_convert_from_x_visual_type(visinfo->class); + v->visualType = xmesa_convert_from_x_visual_type(visinfo->class); #else - v->mesa_visual.visualType = xmesa_convert_from_x_visual_type(visinfo->c_class); + v->visualType = xmesa_convert_from_x_visual_type(visinfo->c_class); #endif v->mesa_visual.visualRating = visualCaveat; @@ -1421,7 +1421,7 @@ XMesaVisual XMesaCreateVisual( XMesaDisplay *display, (void) initialize_visual_and_buffer( v, NULL, 0, 0 ); { - const int xclass = v->mesa_visual.visualType; + const int xclass = v->visualType; if (xclass == GLX_TRUE_COLOR || xclass == GLX_DIRECT_COLOR) { red_bits = _mesa_bitcount(GET_REDMASK(v)); green_bits = _mesa_bitcount(GET_GREENMASK(v)); @@ -1481,7 +1481,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list ) { static GLboolean firstTime = GL_TRUE; XMesaContext c; - GLcontext *mesaCtx; + struct gl_context *mesaCtx; struct dd_function_table functions; TNLcontext *tnl; @@ -1490,7 +1490,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list ) firstTime = GL_FALSE; } - /* Note: the XMesaContext contains a Mesa GLcontext struct (inheritance) */ + /* Note: the XMesaContext contains a Mesa struct gl_context struct (inheritance) */ c = (XMesaContext) CALLOC_STRUCT(xmesa_context); if (!c) return NULL; @@ -1501,7 +1501,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list ) _mesa_init_driver_functions(&functions); xmesa_init_driver_functions(v, &functions); if (!_mesa_initialize_context(mesaCtx, &v->mesa_visual, - share_list ? &(share_list->mesa) : (GLcontext *) NULL, + share_list ? &(share_list->mesa) : (struct gl_context *) NULL, &functions, (void *) c)) { free(c); return NULL; @@ -1574,7 +1574,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list ) PUBLIC void XMesaDestroyContext( XMesaContext c ) { - GLcontext *mesaCtx = &c->mesa; + struct gl_context *mesaCtx = &c->mesa; #ifdef FX FXdestroyContext( XMESA_BUFFER(mesaCtx->DrawBuffer) ); @@ -1788,7 +1788,7 @@ XMesaDestroyBuffer(XMesaBuffer b) /** - * Query the current window size and update the corresponding GLframebuffer + * Query the current window size and update the corresponding struct gl_framebuffer * and all attached renderbuffers. * Called when: * 1. the first time a buffer is bound to a context. @@ -1804,7 +1804,7 @@ xmesa_check_and_update_buffer_size(XMesaContext xmctx, XMesaBuffer drawBuffer) xmesa_get_window_size(drawBuffer->display, drawBuffer, &width, &height); if (drawBuffer->mesa_buffer.Width != width || drawBuffer->mesa_buffer.Height != height) { - GLcontext *ctx = xmctx ? &xmctx->mesa : NULL; + struct gl_context *ctx = xmctx ? &xmctx->mesa : NULL; _mesa_resize_framebuffer(ctx, &(drawBuffer->mesa_buffer), width, height); } drawBuffer->mesa_buffer.Initialized = GL_TRUE; /* XXX TEMPORARY? */ @@ -2252,7 +2252,7 @@ unsigned long XMesaDitherColor( XMesaContext xmesa, GLint x, GLint y, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) { - GLcontext *ctx = &xmesa->mesa; + struct gl_context *ctx = &xmesa->mesa; GLint r = (GLint) (red * 255.0F); GLint g = (GLint) (green * 255.0F); GLint b = (GLint) (blue * 255.0F); diff --git a/src/mesa/drivers/x11/xm_buffer.c b/src/mesa/drivers/x11/xm_buffer.c index e47949750a..2683bd44d1 100644 --- a/src/mesa/drivers/x11/xm_buffer.c +++ b/src/mesa/drivers/x11/xm_buffer.c @@ -251,7 +251,7 @@ xmesa_delete_renderbuffer(struct gl_renderbuffer *rb) * Called via gl_renderbuffer::AllocStorage() */ static GLboolean -xmesa_alloc_front_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +xmesa_alloc_front_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { struct xmesa_renderbuffer *xrb = xmesa_renderbuffer(rb); @@ -278,7 +278,7 @@ xmesa_alloc_front_storage(GLcontext *ctx, struct gl_renderbuffer *rb, * Called via gl_renderbuffer::AllocStorage() */ static GLboolean -xmesa_alloc_back_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +xmesa_alloc_back_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { struct xmesa_renderbuffer *xrb = xmesa_renderbuffer(rb); @@ -323,7 +323,7 @@ xmesa_alloc_back_storage(GLcontext *ctx, struct gl_renderbuffer *rb, struct xmesa_renderbuffer * -xmesa_new_renderbuffer(GLcontext *ctx, GLuint name, const GLvisual *visual, +xmesa_new_renderbuffer(struct gl_context *ctx, GLuint name, const struct gl_config *visual, GLboolean backBuffer) { struct xmesa_renderbuffer *xrb = CALLOC_STRUCT(xmesa_renderbuffer); diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c index 5edafb890b..acece2025c 100644 --- a/src/mesa/drivers/x11/xm_dd.c +++ b/src/mesa/drivers/x11/xm_dd.c @@ -91,7 +91,7 @@ const int xmesa_kernel1[16] = { static void -finish_or_flush( GLcontext *ctx ) +finish_or_flush( struct gl_context *ctx ) { #ifdef XFree86Server /* NOT_NEEDED */ @@ -107,7 +107,7 @@ finish_or_flush( GLcontext *ctx ) static void -clear_color( GLcontext *ctx, const GLfloat color[4] ) +clear_color( struct gl_context *ctx, const GLfloat color[4] ) { if (ctx->DrawBuffer->Name == 0) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -134,12 +134,12 @@ clear_color( GLcontext *ctx, const GLfloat color[4] ) /* Implements glColorMask() */ static void -color_mask(GLcontext *ctx, +color_mask(struct gl_context *ctx, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); XMesaBuffer xmbuf; - const int xclass = xmesa->xm_visual->mesa_visual.visualType; + const int xclass = xmesa->xm_visual->visualType; (void) amask; if (ctx->DrawBuffer->Name != 0) @@ -173,7 +173,7 @@ color_mask(GLcontext *ctx, * Clear the front or back color buffer, if it's implemented with a pixmap. */ static void -clear_pixmap(GLcontext *ctx, struct xmesa_renderbuffer *xrb, +clear_pixmap(struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -193,7 +193,7 @@ clear_pixmap(GLcontext *ctx, struct xmesa_renderbuffer *xrb, static void -clear_8bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb, +clear_8bit_ximage( struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height ) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -206,7 +206,7 @@ clear_8bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb, static void -clear_HPCR_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb, +clear_HPCR_ximage( struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height ) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -227,7 +227,7 @@ clear_HPCR_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb, static void -clear_16bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb, +clear_16bit_ximage( struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -249,7 +249,7 @@ clear_16bit_ximage( GLcontext *ctx, struct xmesa_renderbuffer *xrb, /* Optimized code provided by Nozomi Ytow <noz@xfree86.org> */ static void -clear_24bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, +clear_24bit_ximage(struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -282,7 +282,7 @@ clear_24bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, static void -clear_32bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, +clear_32bit_ximage(struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -326,7 +326,7 @@ clear_32bit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, static void -clear_nbit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, +clear_nbit_ximage(struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -345,7 +345,7 @@ clear_nbit_ximage(GLcontext *ctx, struct xmesa_renderbuffer *xrb, static void -clear_buffers(GLcontext *ctx, GLbitfield buffers) +clear_buffers(struct gl_context *ctx, GLbitfield buffers) { if (ctx->DrawBuffer->Name == 0) { /* this is a window system framebuffer */ @@ -396,7 +396,7 @@ clear_buffers(GLcontext *ctx, GLbitfield buffers) * Check if we can do an optimized glDrawPixels into an 8R8G8B visual. */ static GLboolean -can_do_DrawPixels_8R8G8B(GLcontext *ctx, GLenum format, GLenum type) +can_do_DrawPixels_8R8G8B(struct gl_context *ctx, GLenum format, GLenum type) { if (format == GL_BGRA && type == GL_UNSIGNED_BYTE && @@ -432,7 +432,7 @@ can_do_DrawPixels_8R8G8B(GLcontext *ctx, GLenum format, GLenum type) * The image format must be GL_BGRA to match the PF_8R8G8B pixel format. */ static void -xmesa_DrawPixels_8R8G8B( GLcontext *ctx, +xmesa_DrawPixels_8R8G8B( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -529,7 +529,7 @@ xmesa_DrawPixels_8R8G8B( GLcontext *ctx, * Check if we can do an optimized glDrawPixels into an 5R6G5B visual. */ static GLboolean -can_do_DrawPixels_5R6G5B(GLcontext *ctx, GLenum format, GLenum type) +can_do_DrawPixels_5R6G5B(struct gl_context *ctx, GLenum format, GLenum type) { if (format == GL_RGB && type == GL_UNSIGNED_SHORT_5_6_5 && @@ -567,7 +567,7 @@ can_do_DrawPixels_5R6G5B(GLcontext *ctx, GLenum format, GLenum type) * match the PF_5R6G5B pixel format. */ static void -xmesa_DrawPixels_5R6G5B( GLcontext *ctx, +xmesa_DrawPixels_5R6G5B( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -662,7 +662,7 @@ xmesa_DrawPixels_5R6G5B( GLcontext *ctx, * Determine if we can do an optimized glCopyPixels. */ static GLboolean -can_do_CopyPixels(GLcontext *ctx, GLenum type) +can_do_CopyPixels(struct gl_context *ctx, GLenum type) { if (type == GL_COLOR && ctx->_ImageTransferState == 0 && /* no color tables, scale/bias, etc */ @@ -701,7 +701,7 @@ can_do_CopyPixels(GLcontext *ctx, GLenum type) * We do support copying from one window to another, ala glXMakeCurrentRead. */ static void -xmesa_CopyPixels( GLcontext *ctx, +xmesa_CopyPixels( struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint destx, GLint desty, GLenum type ) { @@ -740,7 +740,7 @@ xmesa_CopyPixels( GLcontext *ctx, * return a meaningful GL_RENDERER string. */ static const GLubyte * -get_string( GLcontext *ctx, GLenum name ) +get_string( struct gl_context *ctx, GLenum name ) { (void) ctx; switch (name) { @@ -767,7 +767,7 @@ get_string( GLcontext *ctx, GLenum name ) * dither enable/disable. */ static void -enable( GLcontext *ctx, GLenum pname, GLboolean state ) +enable( struct gl_context *ctx, GLenum pname, GLboolean state ) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -785,7 +785,7 @@ enable( GLcontext *ctx, GLenum pname, GLboolean state ) static void -clear_color_HPCR_ximage( GLcontext *ctx, const GLfloat color[4] ) +clear_color_HPCR_ximage( struct gl_context *ctx, const GLfloat color[4] ) { int i; const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -819,7 +819,7 @@ clear_color_HPCR_ximage( GLcontext *ctx, const GLfloat color[4] ) static void -clear_color_HPCR_pixmap( GLcontext *ctx, const GLfloat color[4] ) +clear_color_HPCR_pixmap( struct gl_context *ctx, const GLfloat color[4] ) { int i; const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -863,7 +863,7 @@ clear_color_HPCR_pixmap( GLcontext *ctx, const GLfloat color[4] ) * flags. */ void -xmesa_update_state( GLcontext *ctx, GLbitfield new_state ) +xmesa_update_state( struct gl_context *ctx, GLbitfield new_state ) { const XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -954,7 +954,7 @@ xmesa_update_state( GLcontext *ctx, GLbitfield new_state ) * texels. */ static GLboolean -test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, +test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border) { @@ -988,7 +988,7 @@ test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, * In SW, we don't really compress GL_COMPRESSED_RGB[A] textures! */ static gl_format -choose_tex_format( GLcontext *ctx, GLint internalFormat, +choose_tex_format( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { switch (internalFormat) { @@ -1014,7 +1014,7 @@ choose_tex_format( GLcontext *ctx, GLint internalFormat, * That problem led to the GLX_MESA_resize_buffers extension. */ static void -xmesa_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) +xmesa_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { XMesaContext xmctx = XMESA_CONTEXT(ctx); XMesaBuffer xmdrawbuf = XMESA_BUFFER(ctx->WinSysDrawBuffer); @@ -1044,7 +1044,7 @@ struct xmesa_query_object static struct gl_query_object * -xmesa_new_query_object(GLcontext *ctx, GLuint id) +xmesa_new_query_object(struct gl_context *ctx, GLuint id) { struct xmesa_query_object *q = CALLOC_STRUCT(xmesa_query_object); if (q) { @@ -1056,7 +1056,7 @@ xmesa_new_query_object(GLcontext *ctx, GLuint id) static void -xmesa_begin_query(GLcontext *ctx, struct gl_query_object *q) +xmesa_begin_query(struct gl_context *ctx, struct gl_query_object *q) { if (q->Target == GL_TIME_ELAPSED_EXT) { struct xmesa_query_object *xq = (struct xmesa_query_object *) q; @@ -1083,7 +1083,7 @@ time_diff(const struct timeval *t0, const struct timeval *t1) static void -xmesa_end_query(GLcontext *ctx, struct gl_query_object *q) +xmesa_end_query(struct gl_context *ctx, struct gl_query_object *q) { if (q->Target == GL_TIME_ELAPSED_EXT) { struct xmesa_query_object *xq = (struct xmesa_query_object *) q; @@ -1175,7 +1175,7 @@ xmesa_init_driver_functions( XMesaVisual xmvisual, * functions. * Called during context creation only. */ -void xmesa_register_swrast_functions( GLcontext *ctx ) +void xmesa_register_swrast_functions( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT( ctx ); diff --git a/src/mesa/drivers/x11/xm_line.c b/src/mesa/drivers/x11/xm_line.c index f643b6d3a7..f03f99f918 100644 --- a/src/mesa/drivers/x11/xm_line.c +++ b/src/mesa/drivers/x11/xm_line.c @@ -54,7 +54,7 @@ */ #if 000 /* XXX don't use this, it doesn't dither correctly */ -static void draw_points_ANY_pixmap( GLcontext *ctx, const SWvertex *vert ) +static void draw_points_ANY_pixmap( struct gl_context *ctx, const SWvertex *vert ) { XMesaContext xmesa = XMESA_CONTEXT(ctx); XMesaDisplay *dpy = xmesa->xm_visual->display; @@ -89,7 +89,7 @@ static void draw_points_ANY_pixmap( GLcontext *ctx, const SWvertex *vert ) * our internal point functions, otherwise fall back to the standard * swrast functions. */ -void xmesa_choose_point( GLcontext *ctx ) +void xmesa_choose_point( struct gl_context *ctx ) { #if 0 XMesaContext xmesa = XMESA_CONTEXT(ctx); @@ -546,7 +546,7 @@ void xmesa_choose_point( GLcontext *ctx ) * for the XSetLineAttributes() function call. */ static void -xor_line(GLcontext *ctx, const SWvertex *vert0, const SWvertex *vert1) +xor_line(struct gl_context *ctx, const SWvertex *vert0, const SWvertex *vert1) { XMesaContext xmesa = XMESA_CONTEXT(ctx); XMesaDisplay *dpy = xmesa->xm_visual->display; @@ -578,7 +578,7 @@ xor_line(GLcontext *ctx, const SWvertex *vert0, const SWvertex *vert1) * swrast fallback. */ static swrast_line_func -get_line_func(GLcontext *ctx) +get_line_func(struct gl_context *ctx) { #if CHAN_BITS == 8 SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -682,7 +682,7 @@ get_line_func(GLcontext *ctx) * standard swrast functions. */ void -xmesa_choose_line(GLcontext *ctx) +xmesa_choose_line(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); diff --git a/src/mesa/drivers/x11/xm_span.c b/src/mesa/drivers/x11/xm_span.c index c39d87c451..ab66c5e1f1 100644 --- a/src/mesa/drivers/x11/xm_span.c +++ b/src/mesa/drivers/x11/xm_span.c @@ -163,13 +163,13 @@ static unsigned long read_pixel( XMesaDisplay *dpy, #define PUT_ROW_ARGS \ - GLcontext *ctx, \ + struct gl_context *ctx, \ struct gl_renderbuffer *rb, \ GLuint n, GLint x, GLint y, \ const void *values, const GLubyte mask[] #define RGB_SPAN_ARGS \ - GLcontext *ctx, \ + struct gl_context *ctx, \ struct gl_renderbuffer *rb, \ GLuint n, GLint x, GLint y, \ const void *values, const GLubyte mask[] @@ -2242,7 +2242,7 @@ static void put_row_rgb_GRAYSCALE8_ximage( RGB_SPAN_ARGS ) #define PUT_VALUES_ARGS \ - GLcontext *ctx, struct gl_renderbuffer *rb, \ + struct gl_context *ctx, struct gl_renderbuffer *rb, \ GLuint n, const GLint x[], const GLint y[], \ const void *values, const GLubyte mask[] @@ -2829,7 +2829,7 @@ static void put_values_GRAYSCALE8_ximage( PUT_VALUES_ARGS ) /**********************************************************************/ #define PUT_MONO_ROW_ARGS \ - GLcontext *ctx, struct gl_renderbuffer *rb, \ + struct gl_context *ctx, struct gl_renderbuffer *rb, \ GLuint n, GLint x, GLint y, const void *value, \ const GLubyte mask[] @@ -3267,7 +3267,7 @@ static void put_mono_row_DITHER_5R6G5B_ximage( PUT_MONO_ROW_ARGS ) /**********************************************************************/ #define PUT_MONO_VALUES_ARGS \ - GLcontext *ctx, struct gl_renderbuffer *rb, \ + struct gl_context *ctx, struct gl_renderbuffer *rb, \ GLuint n, const GLint x[], const GLint y[], \ const void *value, const GLubyte mask[] @@ -3773,7 +3773,7 @@ static void put_values_ci_ximage( PUT_VALUES_ARGS ) * else return number of pixels to skip in the destination array. */ static int -clip_for_xgetimage(GLcontext *ctx, XMesaPixmap pixmap, GLuint *n, GLint *x, GLint *y) +clip_for_xgetimage(struct gl_context *ctx, XMesaPixmap pixmap, GLuint *n, GLint *x, GLint *y) { XMesaContext xmesa = XMESA_CONTEXT(ctx); XMesaBuffer source = XMESA_BUFFER(ctx->DrawBuffer); @@ -3813,7 +3813,7 @@ clip_for_xgetimage(GLcontext *ctx, XMesaPixmap pixmap, GLuint *n, GLint *x, GLin * Read a horizontal span of color-index pixels. */ static void -get_row_ci(GLcontext *ctx, struct gl_renderbuffer *rb, +get_row_ci(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) { GLuint *index = (GLuint *) values; @@ -3870,7 +3870,7 @@ get_row_ci(GLcontext *ctx, struct gl_renderbuffer *rb, * Read a horizontal span of color pixels. */ static void -get_row_rgba(GLcontext *ctx, struct gl_renderbuffer *rb, +get_row_rgba(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, void *values) { GLubyte (*rgba)[4] = (GLubyte (*)[4]) values; @@ -4272,7 +4272,7 @@ get_row_rgba(GLcontext *ctx, struct gl_renderbuffer *rb, * Read an array of color index pixels. */ static void -get_values_ci(GLcontext *ctx, struct gl_renderbuffer *rb, +get_values_ci(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], void *values) { GLuint *indx = (GLuint *) values; @@ -4296,7 +4296,7 @@ get_values_ci(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_values_rgba(GLcontext *ctx, struct gl_renderbuffer *rb, +get_values_rgba(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], void *values) { GLubyte (*rgba)[4] = (GLubyte (*)[4]) values; diff --git a/src/mesa/drivers/x11/xm_tri.c b/src/mesa/drivers/x11/xm_tri.c index a6efb35e3c..98dece113d 100644 --- a/src/mesa/drivers/x11/xm_tri.c +++ b/src/mesa/drivers/x11/xm_tri.c @@ -1448,7 +1448,7 @@ do { \ * swrast fallback. */ static swrast_tri_func -get_triangle_func(GLcontext *ctx) +get_triangle_func(struct gl_context *ctx) { #if CHAN_BITS == 8 SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -1644,7 +1644,7 @@ get_triangle_func(GLcontext *ctx) * of our internal tri functions, otherwise fall back to the * standard swrast functions. */ -void xmesa_choose_triangle( GLcontext *ctx ) +void xmesa_choose_triangle( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); diff --git a/src/mesa/drivers/x11/xmesaP.h b/src/mesa/drivers/x11/xmesaP.h index e0a6908228..5d34b430cb 100644 --- a/src/mesa/drivers/x11/xmesaP.h +++ b/src/mesa/drivers/x11/xmesaP.h @@ -54,7 +54,7 @@ struct xmesa_renderbuffer; /* Function pointer for clearing color buffers */ -typedef void (*ClearFunc)( GLcontext *ctx, struct xmesa_renderbuffer *xrb, +typedef void (*ClearFunc)( struct gl_context *ctx, struct xmesa_renderbuffer *xrb, GLint x, GLint y, GLint width, GLint height ); @@ -80,12 +80,14 @@ enum pixel_format { /** - * Visual inforation, derived from GLvisual. + * Visual inforation, derived from struct gl_config. * Basically corresponds to an XVisualInfo. */ struct xmesa_visual { - GLvisual mesa_visual; /* Device independent visual parameters */ + struct gl_config mesa_visual; /* Device independent visual parameters */ XMesaDisplay *display; /* The X11 display */ + int screen, visualID; + int visualType; #ifdef XFree86Server GLint ColormapEntries; GLint nplanes; @@ -127,11 +129,11 @@ struct xmesa_visual { /** - * Context info, derived from GLcontext. + * Context info, derived from struct gl_context. * Basically corresponds to a GLXContext. */ struct xmesa_context { - GLcontext mesa; /* the core library context (containment) */ + struct gl_context mesa; /* the core library context (containment) */ XMesaVisual xm_visual; /* Describes the buffers */ XMesaBuffer xm_buffer; /* current span/point/line/triangle buffer */ @@ -204,7 +206,7 @@ struct xmesa_renderbuffer * Basically corresponds to a GLXDrawable. */ struct xmesa_buffer { - GLframebuffer mesa_buffer; /* depth, stencil, accum, etc buffers */ + struct gl_framebuffer mesa_buffer; /* depth, stencil, accum, etc buffers */ /* This MUST BE FIRST! */ GLboolean wasCurrent; /* was ever the current buffer? */ XMesaVisual xm_visual; /* the X/Mesa visual */ @@ -494,7 +496,7 @@ extern const int xmesa_kernel1[16]; */ extern struct xmesa_renderbuffer * -xmesa_new_renderbuffer(GLcontext *ctx, GLuint name, const GLvisual *visual, +xmesa_new_renderbuffer(struct gl_context *ctx, GLuint name, const struct gl_config *visual, GLboolean backBuffer); extern void @@ -504,7 +506,7 @@ extern XMesaBuffer xmesa_find_buffer(XMesaDisplay *dpy, XMesaColormap cmap, XMesaBuffer notThis); extern unsigned long -xmesa_color_to_pixel( GLcontext *ctx, +xmesa_color_to_pixel( struct gl_context *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLuint pixelFormat ); @@ -520,7 +522,7 @@ xmesa_init_driver_functions( XMesaVisual xmvisual, struct dd_function_table *driver ); extern void -xmesa_update_state( GLcontext *ctx, GLbitfield new_state ); +xmesa_update_state( struct gl_context *ctx, GLbitfield new_state ); extern void xmesa_set_renderbuffer_funcs(struct xmesa_renderbuffer *xrb, @@ -541,22 +543,22 @@ xmesa_renderbuffer(struct gl_renderbuffer *rb) /** - * Return pointer to XMesaContext corresponding to a Mesa GLcontext. + * Return pointer to XMesaContext corresponding to a Mesa struct gl_context. * Since we're using structure containment, it's just a cast!. */ static INLINE XMesaContext -XMESA_CONTEXT(GLcontext *ctx) +XMESA_CONTEXT(struct gl_context *ctx) { return (XMesaContext) ctx; } /** - * Return pointer to XMesaBuffer corresponding to a Mesa GLframebuffer. + * Return pointer to XMesaBuffer corresponding to a Mesa struct gl_framebuffer. * Since we're using structure containment, it's just a cast!. */ static INLINE XMesaBuffer -XMESA_BUFFER(GLframebuffer *b) +XMESA_BUFFER(struct gl_framebuffer *b) { return (XMesaBuffer) b; } @@ -565,12 +567,12 @@ XMESA_BUFFER(GLframebuffer *b) /* Plugged into the software rasterizer. Try to use internal * swrast-style point, line and triangle functions. */ -extern void xmesa_choose_point( GLcontext *ctx ); -extern void xmesa_choose_line( GLcontext *ctx ); -extern void xmesa_choose_triangle( GLcontext *ctx ); +extern void xmesa_choose_point( struct gl_context *ctx ); +extern void xmesa_choose_line( struct gl_context *ctx ); +extern void xmesa_choose_triangle( struct gl_context *ctx ); -extern void xmesa_register_swrast_functions( GLcontext *ctx ); +extern void xmesa_register_swrast_functions( struct gl_context *ctx ); diff --git a/src/mesa/drivers/x11/xmesa_x.h b/src/mesa/drivers/x11/xmesa_x.h index 865bab4313..ea6cb3f24e 100644 --- a/src/mesa/drivers/x11/xmesa_x.h +++ b/src/mesa/drivers/x11/xmesa_x.h @@ -79,7 +79,7 @@ typedef XColor XMesaColor; #define GET_GREENMASK(__v) __v->mesa_visual.greenMask #define GET_BLUEMASK(__v) __v->mesa_visual.blueMask #define GET_VISUAL_DEPTH(__v) __v->visinfo->depth -#define GET_BLACK_PIXEL(__v) BlackPixel(__v->display, __v->mesa_visual.screen) +#define GET_BLACK_PIXEL(__v) BlackPixel(__v->display, __v->screen) #define CHECK_BYTE_ORDER(__v) host_byte_order()==ImageByteOrder(__v->display) #define CHECK_FOR_HPCR(__v) XInternAtom(__v->display, "_HP_RGB_SMOOTH_MAP_LIST", True) diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml index 4c5fd59d4f..4dc0b0d485 100644 --- a/src/mesa/main/APIspec.xml +++ b/src/mesa/main/APIspec.xml @@ -383,6 +383,7 @@ <value name="GL_ALPHA"/> <value name="GL_RGB"/> <value name="GL_RGBA"/> + <value name="GL_BGRA_EXT"/> <value name="GL_LUMINANCE"/> <value name="GL_LUMINANCE_ALPHA"/> <value name="GL_DEPTH_COMPONENT" category="OES_depth_texture"/> @@ -458,11 +459,18 @@ <desc name="format" category="OES_packed_depth_stencil"> <value name="GL_DEPTH_STENCIL_OES"/> - <desc name="type" error="GL_INVALID_OPERATION"> <value name="GL_UNSIGNED_INT_24_8_OES"/> </desc> </desc> + + <desc name="format" category="EXT_texture_format_BGRA8888"> + <value name="GL_BGRA_EXT"/> + + <desc name="type" error="GL_INVALID_OPERATION"> + <value name="GL_UNSIGNED_BYTE"/> + </desc> + </desc> </template> <template name="TexEnv"> @@ -4121,6 +4129,7 @@ <category name="OES_depth_texture"/> <category name="OES_packed_depth_stencil"/> <category name="OES_standard_derivatives"/> + <category name="EXT_texture_format_BGRA8888"/> <category name="EXT_texture_compression_dxt1"/> <category name="EXT_blend_minmax"/> diff --git a/src/mesa/main/accum.c b/src/mesa/main/accum.c index 2012d00fd5..9026110f3e 100644 --- a/src/mesa/main/accum.c +++ b/src/mesa/main/accum.c @@ -115,7 +115,7 @@ _mesa_init_accum_dispatch(struct _glapi_table *disp) void -_mesa_init_accum( GLcontext *ctx ) +_mesa_init_accum( struct gl_context *ctx ) { /* Accumulate buffer group */ ASSIGN_4V( ctx->Accum.ClearColor, 0.0, 0.0, 0.0, 0.0 ); diff --git a/src/mesa/main/accum.h b/src/mesa/main/accum.h index 4b628bafa0..def692a73a 100644 --- a/src/mesa/main/accum.h +++ b/src/mesa/main/accum.h @@ -67,6 +67,6 @@ _mesa_init_accum_dispatch(struct _glapi_table *disp) #endif /* FEATURE_accum */ extern void -_mesa_init_accum( GLcontext *ctx ); +_mesa_init_accum( struct gl_context *ctx ); #endif /* ACCUM_H */ diff --git a/src/mesa/main/api_arrayelt.c b/src/mesa/main/api_arrayelt.c index ffcd194240..172c33b47b 100644 --- a/src/mesa/main/api_arrayelt.c +++ b/src/mesa/main/api_arrayelt.c @@ -1031,7 +1031,7 @@ static attrib_func AttribFuncsARB[2][4][8] = { /**********************************************************************/ -GLboolean _ae_create_context( GLcontext *ctx ) +GLboolean _ae_create_context( struct gl_context *ctx ) { if (ctx->aelt_context) return GL_TRUE; @@ -1064,7 +1064,7 @@ GLboolean _ae_create_context( GLcontext *ctx ) } -void _ae_destroy_context( GLcontext *ctx ) +void _ae_destroy_context( struct gl_context *ctx ) { if ( AE_CONTEXT( ctx ) ) { FREE( ctx->aelt_context ); @@ -1092,7 +1092,7 @@ static void check_vbo( AEcontext *actx, * etc). * Note: this may be called during display list construction. */ -static void _ae_update_state( GLcontext *ctx ) +static void _ae_update_state( struct gl_context *ctx ) { AEcontext *actx = AE_CONTEXT(ctx); AEarray *aa = actx->arrays; @@ -1211,7 +1211,7 @@ static void _ae_update_state( GLcontext *ctx ) actx->NewState = 0; } -void _ae_map_vbos( GLcontext *ctx ) +void _ae_map_vbos( struct gl_context *ctx ) { AEcontext *actx = AE_CONTEXT(ctx); GLuint i; @@ -1232,7 +1232,7 @@ void _ae_map_vbos( GLcontext *ctx ) actx->mapped_vbos = GL_TRUE; } -void _ae_unmap_vbos( GLcontext *ctx ) +void _ae_unmap_vbos( struct gl_context *ctx ) { AEcontext *actx = AE_CONTEXT(ctx); GLuint i; @@ -1300,7 +1300,7 @@ void GLAPIENTRY _ae_ArrayElement( GLint elt ) } -void _ae_invalidate_state( GLcontext *ctx, GLuint new_state ) +void _ae_invalidate_state( struct gl_context *ctx, GLuint new_state ) { AEcontext *actx = AE_CONTEXT(ctx); diff --git a/src/mesa/main/api_arrayelt.h b/src/mesa/main/api_arrayelt.h index d18c0792c3..610e522a94 100644 --- a/src/mesa/main/api_arrayelt.h +++ b/src/mesa/main/api_arrayelt.h @@ -37,15 +37,15 @@ (vfmt)->ArrayElement = impl ## ArrayElement; \ } while (0) -extern GLboolean _ae_create_context( GLcontext *ctx ); -extern void _ae_destroy_context( GLcontext *ctx ); -extern void _ae_invalidate_state( GLcontext *ctx, GLuint new_state ); +extern GLboolean _ae_create_context( struct gl_context *ctx ); +extern void _ae_destroy_context( struct gl_context *ctx ); +extern void _ae_invalidate_state( struct gl_context *ctx, GLuint new_state ); extern void GLAPIENTRY _ae_ArrayElement( GLint elt ); /* May optionally be called before a batch of element calls: */ -extern void _ae_map_vbos( GLcontext *ctx ); -extern void _ae_unmap_vbos( GLcontext *ctx ); +extern void _ae_map_vbos( struct gl_context *ctx ); +extern void _ae_unmap_vbos( struct gl_context *ctx ); extern void _mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp, @@ -56,18 +56,18 @@ _mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp, #define _MESA_INIT_ARRAYELT_VTXFMT(vfmt, impl) do { } while (0) static INLINE GLboolean -_ae_create_context( GLcontext *ctx ) +_ae_create_context( struct gl_context *ctx ) { return GL_TRUE; } static INLINE void -_ae_destroy_context( GLcontext *ctx ) +_ae_destroy_context( struct gl_context *ctx ) { } static INLINE void -_ae_invalidate_state( GLcontext *ctx, GLuint new_state ) +_ae_invalidate_state( struct gl_context *ctx, GLuint new_state ) { } diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c index b87aa47d88..ae653e1914 100644 --- a/src/mesa/main/api_exec.c +++ b/src/mesa/main/api_exec.c @@ -91,10 +91,7 @@ #include "mtypes.h" #include "varray.h" #include "viewport.h" -#if FEATURE_NV_vertex_program -#include "nvprogram.h" -#endif -#if FEATURE_NV_fragment_program +#if FEATURE_NV_vertex_program || FEATURE_NV_fragment_program #include "nvprogram.h" #endif #if FEATURE_ARB_shader_objects diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index b3b5c6cc05..4929a9310d 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -54,7 +54,7 @@ index_bytes(GLenum type, GLsizei count) * Find the max index in the given element/index buffer */ GLuint -_mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type, +_mesa_max_buffer_index(struct gl_context *ctx, GLuint count, GLenum type, const void *indices, struct gl_buffer_object *elementBuf) { @@ -99,7 +99,7 @@ _mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type, * Check if OK to draw arrays/elements. */ static GLboolean -check_valid_to_render(GLcontext *ctx, const char *function) +check_valid_to_render(struct gl_context *ctx, const char *function) { if (!_mesa_valid_to_render(ctx, function)) { return GL_FALSE; @@ -140,7 +140,7 @@ check_valid_to_render(GLcontext *ctx, const char *function) * \return GL_TRUE if OK, GL_FALSE if any indexed vertex goes is out of bounds */ static GLboolean -check_index_bounds(GLcontext *ctx, GLsizei count, GLenum type, +check_index_bounds(struct gl_context *ctx, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex) { struct _mesa_prim prim; @@ -181,7 +181,7 @@ check_index_bounds(GLcontext *ctx, GLsizei count, GLenum type, * \return GL_TRUE if OK to render, GL_FALSE if error found */ GLboolean -_mesa_validate_DrawElements(GLcontext *ctx, +_mesa_validate_DrawElements(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex) { @@ -237,7 +237,7 @@ _mesa_validate_DrawElements(GLcontext *ctx, * \return GL_TRUE if OK to render, GL_FALSE if error found */ GLboolean -_mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, +_mesa_validate_DrawRangeElements(struct gl_context *ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex) @@ -298,7 +298,7 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, * \return GL_TRUE if OK to render, GL_FALSE if error found */ GLboolean -_mesa_validate_DrawArrays(GLcontext *ctx, +_mesa_validate_DrawArrays(struct gl_context *ctx, GLenum mode, GLint start, GLsizei count) { ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); @@ -327,7 +327,7 @@ _mesa_validate_DrawArrays(GLcontext *ctx, GLboolean -_mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, +_mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint first, GLsizei count, GLsizei primcount) { ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); @@ -371,7 +371,7 @@ _mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, GLboolean -_mesa_validate_DrawElementsInstanced(GLcontext *ctx, +_mesa_validate_DrawElementsInstanced(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount) { diff --git a/src/mesa/main/api_validate.h b/src/mesa/main/api_validate.h index cd27d58aa7..b232a90843 100644 --- a/src/mesa/main/api_validate.h +++ b/src/mesa/main/api_validate.h @@ -32,32 +32,32 @@ extern GLuint -_mesa_max_buffer_index(GLcontext *ctx, GLuint count, GLenum type, +_mesa_max_buffer_index(struct gl_context *ctx, GLuint count, GLenum type, const void *indices, struct gl_buffer_object *elementBuf); extern GLboolean -_mesa_validate_DrawArrays(GLcontext *ctx, +_mesa_validate_DrawArrays(struct gl_context *ctx, GLenum mode, GLint start, GLsizei count); extern GLboolean -_mesa_validate_DrawElements(GLcontext *ctx, +_mesa_validate_DrawElements(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); extern GLboolean -_mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, +_mesa_validate_DrawRangeElements(struct gl_context *ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); extern GLboolean -_mesa_validate_DrawArraysInstanced(GLcontext *ctx, GLenum mode, GLint first, +_mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint first, GLsizei count, GLsizei primcount); extern GLboolean -_mesa_validate_DrawElementsInstanced(GLcontext *ctx, +_mesa_validate_DrawElementsInstanced(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c index 0069cd3dcf..0d64b7de8d 100644 --- a/src/mesa/main/arrayobj.c +++ b/src/mesa/main/arrayobj.c @@ -61,7 +61,7 @@ */ static INLINE struct gl_array_object * -lookup_arrayobj(GLcontext *ctx, GLuint id) +lookup_arrayobj(struct gl_context *ctx, GLuint id) { if (id == 0) return NULL; @@ -77,7 +77,7 @@ lookup_arrayobj(GLcontext *ctx, GLuint id) * This is done just prior to array object destruction. */ static void -unbind_array_object_vbos(GLcontext *ctx, struct gl_array_object *obj) +unbind_array_object_vbos(struct gl_context *ctx, struct gl_array_object *obj) { GLuint i; @@ -109,7 +109,7 @@ unbind_array_object_vbos(GLcontext *ctx, struct gl_array_object *obj) * \c dd_function_table::NewArrayObject. */ struct gl_array_object * -_mesa_new_array_object( GLcontext *ctx, GLuint name ) +_mesa_new_array_object( struct gl_context *ctx, GLuint name ) { struct gl_array_object *obj = CALLOC_STRUCT(gl_array_object); if (obj) @@ -125,7 +125,7 @@ _mesa_new_array_object( GLcontext *ctx, GLuint name ) * \c dd_function_table::DeleteArrayObject. */ void -_mesa_delete_array_object( GLcontext *ctx, struct gl_array_object *obj ) +_mesa_delete_array_object( struct gl_context *ctx, struct gl_array_object *obj ) { (void) ctx; unbind_array_object_vbos(ctx, obj); @@ -138,7 +138,7 @@ _mesa_delete_array_object( GLcontext *ctx, struct gl_array_object *obj ) * Set ptr to arrayObj w/ reference counting. */ void -_mesa_reference_array_object(GLcontext *ctx, +_mesa_reference_array_object(struct gl_context *ctx, struct gl_array_object **ptr, struct gl_array_object *arrayObj) { @@ -193,7 +193,7 @@ _mesa_reference_array_object(GLcontext *ctx, static void -init_array(GLcontext *ctx, +init_array(struct gl_context *ctx, struct gl_client_array *array, GLint size, GLint type) { array->Size = size; @@ -216,7 +216,7 @@ init_array(GLcontext *ctx, * Initialize a gl_array_object's arrays. */ void -_mesa_initialize_array_object( GLcontext *ctx, +_mesa_initialize_array_object( struct gl_context *ctx, struct gl_array_object *obj, GLuint name ) { @@ -253,7 +253,7 @@ _mesa_initialize_array_object( GLcontext *ctx, * Add the given array object to the array object pool. */ static void -save_array_object( GLcontext *ctx, struct gl_array_object *obj ) +save_array_object( struct gl_context *ctx, struct gl_array_object *obj ) { if (obj->Name > 0) { /* insert into hash table */ @@ -267,7 +267,7 @@ save_array_object( GLcontext *ctx, struct gl_array_object *obj ) * Do not deallocate the array object though. */ static void -remove_array_object( GLcontext *ctx, struct gl_array_object *obj ) +remove_array_object( struct gl_context *ctx, struct gl_array_object *obj ) { if (obj->Name > 0) { /* remove from hash table */ @@ -327,7 +327,7 @@ update_min(GLuint min, struct gl_client_array *array) * Examine vertex arrays to update the gl_array_object::_MaxElement field. */ void -_mesa_update_array_object_max_element(GLcontext *ctx, +_mesa_update_array_object_max_element(struct gl_context *ctx, struct gl_array_object *arrayObj) { GLuint i, min = ~0; @@ -364,7 +364,7 @@ _mesa_update_array_object_max_element(GLcontext *ctx, * glGenVertexArrays(). */ static void -bind_vertex_array(GLcontext *ctx, GLuint id, GLboolean genRequired) +bind_vertex_array(struct gl_context *ctx, GLuint id, GLboolean genRequired) { struct gl_array_object * const oldObj = ctx->Array.ArrayObj; struct gl_array_object *newObj = NULL; @@ -495,7 +495,7 @@ _mesa_DeleteVertexArraysAPPLE(GLsizei n, const GLuint *ids) * \param vboOnly Will arrays have to reside in VBOs? */ static void -gen_vertex_arrays(GLcontext *ctx, GLsizei n, GLuint *arrays, GLboolean vboOnly) +gen_vertex_arrays(struct gl_context *ctx, GLsizei n, GLuint *arrays, GLboolean vboOnly) { GLuint first; GLint i; diff --git a/src/mesa/main/arrayobj.h b/src/mesa/main/arrayobj.h index fdf7e2bca4..26e3af19c9 100644 --- a/src/mesa/main/arrayobj.h +++ b/src/mesa/main/arrayobj.h @@ -43,23 +43,23 @@ */ extern struct gl_array_object * -_mesa_new_array_object( GLcontext *ctx, GLuint name ); +_mesa_new_array_object( struct gl_context *ctx, GLuint name ); extern void -_mesa_delete_array_object( GLcontext *ctx, struct gl_array_object *obj ); +_mesa_delete_array_object( struct gl_context *ctx, struct gl_array_object *obj ); extern void -_mesa_reference_array_object(GLcontext *ctx, +_mesa_reference_array_object(struct gl_context *ctx, struct gl_array_object **ptr, struct gl_array_object *arrayObj); extern void -_mesa_initialize_array_object( GLcontext *ctx, +_mesa_initialize_array_object( struct gl_context *ctx, struct gl_array_object *obj, GLuint name ); extern void -_mesa_update_array_object_max_element(GLcontext *ctx, +_mesa_update_array_object_max_element(struct gl_context *ctx, struct gl_array_object *arrayObj); diff --git a/src/mesa/main/atifragshader.c b/src/mesa/main/atifragshader.c index 550f50b7a0..ae2feb3229 100644 --- a/src/mesa/main/atifragshader.c +++ b/src/mesa/main/atifragshader.c @@ -62,7 +62,7 @@ _mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp) * Allocate and initialize a new ATI fragment shader object. */ struct ati_fragment_shader * -_mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id) +_mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id) { struct ati_fragment_shader *s = CALLOC_STRUCT(ati_fragment_shader); (void) ctx; @@ -78,7 +78,7 @@ _mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id) * Delete the given ati fragment shader */ void -_mesa_delete_ati_fragment_shader(GLcontext *ctx, struct ati_fragment_shader *s) +_mesa_delete_ati_fragment_shader(struct gl_context *ctx, struct ati_fragment_shader *s) { GLuint i; for (i = 0; i < MAX_NUM_PASSES_ATI; i++) { diff --git a/src/mesa/main/atifragshader.h b/src/mesa/main/atifragshader.h index 31c335ec81..6911bba5ae 100644 --- a/src/mesa/main/atifragshader.h +++ b/src/mesa/main/atifragshader.h @@ -66,10 +66,10 @@ extern void _mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp); extern struct ati_fragment_shader * -_mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id); +_mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id); extern void -_mesa_delete_ati_fragment_shader(GLcontext *ctx, +_mesa_delete_ati_fragment_shader(struct gl_context *ctx, struct ati_fragment_shader *s); @@ -133,13 +133,13 @@ _mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp) } static INLINE struct ati_fragment_shader * -_mesa_new_ati_fragment_shader(GLcontext *ctx, GLuint id) +_mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id) { return NULL; } static INLINE void -_mesa_delete_ati_fragment_shader(GLcontext *ctx, +_mesa_delete_ati_fragment_shader(struct gl_context *ctx, struct ati_fragment_shader *s) { } diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 0299525f46..fb6fbe5b6d 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -473,7 +473,7 @@ end: static void -pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable) +pop_enable_group(struct gl_context *ctx, const struct gl_enable_attrib *enable) { const GLuint curTexUnitSave = ctx->Texture.CurrentUnit; GLuint i; @@ -669,7 +669,7 @@ pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable) * Pop/restore texture attribute/group state. */ static void -pop_texture_group(GLcontext *ctx, struct texture_state *texstate) +pop_texture_group(struct gl_context *ctx, struct texture_state *texstate) { GLuint u; @@ -1323,7 +1323,7 @@ adjust_buffer_object_ref_counts(struct gl_array_object *arrayObj, GLint step) * object refcounts. */ static void -copy_pixelstore(GLcontext *ctx, +copy_pixelstore(struct gl_context *ctx, struct gl_pixelstore_attrib *dst, const struct gl_pixelstore_attrib *src) { @@ -1506,7 +1506,7 @@ _mesa_init_attrib_dispatch(struct _glapi_table *disp) * Free any attribute state data that might be attached to the context. */ void -_mesa_free_attrib_data(GLcontext *ctx) +_mesa_free_attrib_data(struct gl_context *ctx) { while (ctx->AttribStackDepth > 0) { struct gl_attrib_node *attr, *next; @@ -1538,7 +1538,7 @@ _mesa_free_attrib_data(GLcontext *ctx) } -void _mesa_init_attrib( GLcontext *ctx ) +void _mesa_init_attrib( struct gl_context *ctx ) { /* Renderer and client attribute stacks */ ctx->AttribStackDepth = 0; diff --git a/src/mesa/main/attrib.h b/src/mesa/main/attrib.h index 83b28a65b7..777781bdf0 100644 --- a/src/mesa/main/attrib.h +++ b/src/mesa/main/attrib.h @@ -70,9 +70,9 @@ _mesa_init_attrib_dispatch(struct _glapi_table *disp) #endif /* FEATURE_attrib_stack */ extern void -_mesa_init_attrib( GLcontext *ctx ); +_mesa_init_attrib( struct gl_context *ctx ); extern void -_mesa_free_attrib_data( GLcontext *ctx ); +_mesa_free_attrib_data( struct gl_context *ctx ); #endif /* ATTRIB_H */ diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c index 736a94c052..ec778b7244 100644 --- a/src/mesa/main/blend.c +++ b/src/mesa/main/blend.c @@ -207,7 +207,7 @@ _mesa_BlendFuncSeparateEXT( GLenum sfactorRGB, GLenum dfactorRGB, #if _HAVE_FULL_GL static GLboolean -_mesa_validate_blend_equation( GLcontext *ctx, +_mesa_validate_blend_equation( struct gl_context *ctx, GLenum mode, GLboolean is_separate ) { switch (mode) { @@ -589,9 +589,9 @@ _mesa_ClampColorARB(GLenum target, GLenum clamp) * \param ctx GL context. * * Initializes the related fields in the context color attribute group, - * __GLcontextRec::Color. + * __struct gl_contextRec::Color. */ -void _mesa_init_color( GLcontext * ctx ) +void _mesa_init_color( struct gl_context * ctx ) { /* Color buffer group */ ctx->Color.IndexMask = ~0u; diff --git a/src/mesa/main/blend.h b/src/mesa/main/blend.h index b4fd7470eb..677b01cc9f 100644 --- a/src/mesa/main/blend.h +++ b/src/mesa/main/blend.h @@ -82,6 +82,6 @@ _mesa_ClampColorARB(GLenum target, GLenum clamp); extern void -_mesa_init_color( GLcontext * ctx ); +_mesa_init_color( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 61d46b936b..0a68008a10 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -62,7 +62,7 @@ * specified context or \c NULL if \c target is invalid. */ static INLINE struct gl_buffer_object ** -get_buffer_target(GLcontext *ctx, GLenum target) +get_buffer_target(struct gl_context *ctx, GLenum target) { switch (target) { case GL_ARRAY_BUFFER_ARB: @@ -99,7 +99,7 @@ get_buffer_target(GLcontext *ctx, GLenum target) * specified context or \c NULL if \c target is invalid. */ static INLINE struct gl_buffer_object * -get_buffer(GLcontext *ctx, GLenum target) +get_buffer(struct gl_context *ctx, GLenum target) { struct gl_buffer_object **bufObj = get_buffer_target(ctx, target); if (bufObj) @@ -143,7 +143,7 @@ simplified_access_mode(GLbitfield access) * \sa glBufferSubDataARB, glGetBufferSubDataARB */ static struct gl_buffer_object * -buffer_object_subdata_range_good( GLcontext * ctx, GLenum target, +buffer_object_subdata_range_good( struct gl_context * ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const char *caller ) { @@ -189,7 +189,7 @@ buffer_object_subdata_range_good( GLcontext * ctx, GLenum target, * Default callback for the \c dd_function_table::NewBufferObject() hook. */ static struct gl_buffer_object * -_mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ) +_mesa_new_buffer_object( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_buffer_object *obj; @@ -207,7 +207,7 @@ _mesa_new_buffer_object( GLcontext *ctx, GLuint name, GLenum target ) * Default callback for the \c dd_function_table::DeleteBuffer() hook. */ static void -_mesa_delete_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ) +_mesa_delete_buffer_object( struct gl_context *ctx, struct gl_buffer_object *bufObj ) { (void) ctx; @@ -228,7 +228,7 @@ _mesa_delete_buffer_object( GLcontext *ctx, struct gl_buffer_object *bufObj ) * Set ptr to bufObj w/ reference counting. */ void -_mesa_reference_buffer_object(GLcontext *ctx, +_mesa_reference_buffer_object(struct gl_context *ctx, struct gl_buffer_object **ptr, struct gl_buffer_object *bufObj) { @@ -328,7 +328,7 @@ _mesa_initialize_buffer_object( struct gl_buffer_object *obj, * \sa glBufferDataARB, dd_function_table::BufferData. */ static GLboolean -_mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size, +_mesa_buffer_data( struct gl_context *ctx, GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage, struct gl_buffer_object * bufObj ) { @@ -372,7 +372,7 @@ _mesa_buffer_data( GLcontext *ctx, GLenum target, GLsizeiptrARB size, * \sa glBufferSubDataARB, dd_function_table::BufferSubData. */ static void -_mesa_buffer_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, +_mesa_buffer_subdata( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data, struct gl_buffer_object * bufObj ) { @@ -405,7 +405,7 @@ _mesa_buffer_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, * \sa glBufferGetSubDataARB, dd_function_table::GetBufferSubData. */ static void -_mesa_buffer_get_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, +_mesa_buffer_get_subdata( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid * data, struct gl_buffer_object * bufObj ) { @@ -432,7 +432,7 @@ _mesa_buffer_get_subdata( GLcontext *ctx, GLenum target, GLintptrARB offset, * \sa glMapBufferARB, dd_function_table::MapBuffer */ static void * -_mesa_buffer_map( GLcontext *ctx, GLenum target, GLenum access, +_mesa_buffer_map( struct gl_context *ctx, GLenum target, GLenum access, struct gl_buffer_object *bufObj ) { (void) ctx; @@ -455,7 +455,7 @@ _mesa_buffer_map( GLcontext *ctx, GLenum target, GLenum access, * Called via glMapBufferRange(). */ static void * -_mesa_buffer_map_range( GLcontext *ctx, GLenum target, GLintptr offset, +_mesa_buffer_map_range( struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, struct gl_buffer_object *bufObj ) { @@ -476,7 +476,7 @@ _mesa_buffer_map_range( GLcontext *ctx, GLenum target, GLintptr offset, * Called via glFlushMappedBufferRange(). */ static void -_mesa_buffer_flush_mapped_range( GLcontext *ctx, GLenum target, +_mesa_buffer_flush_mapped_range( struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, struct gl_buffer_object *obj ) { @@ -497,7 +497,7 @@ _mesa_buffer_flush_mapped_range( GLcontext *ctx, GLenum target, * \sa glUnmapBufferARB, dd_function_table::UnmapBuffer */ static GLboolean -_mesa_buffer_unmap( GLcontext *ctx, GLenum target, +_mesa_buffer_unmap( struct gl_context *ctx, GLenum target, struct gl_buffer_object *bufObj ) { (void) ctx; @@ -516,7 +516,7 @@ _mesa_buffer_unmap( GLcontext *ctx, GLenum target, * Called via glCopyBuffserSubData(). */ static void -_mesa_copy_buffer_subdata(GLcontext *ctx, +_mesa_copy_buffer_subdata(struct gl_context *ctx, struct gl_buffer_object *src, struct gl_buffer_object *dst, GLintptr readOffset, GLintptr writeOffset, @@ -546,7 +546,7 @@ _mesa_copy_buffer_subdata(GLcontext *ctx, * Initialize the state associated with buffer objects */ void -_mesa_init_buffer_objects( GLcontext *ctx ) +_mesa_init_buffer_objects( struct gl_context *ctx ) { _mesa_reference_buffer_object(ctx, &ctx->Array.ArrayBufferObj, ctx->Shared->NullBufferObj); @@ -561,7 +561,7 @@ _mesa_init_buffer_objects( GLcontext *ctx ) void -_mesa_free_buffer_objects( GLcontext *ctx ) +_mesa_free_buffer_objects( struct gl_context *ctx ) { _mesa_reference_buffer_object(ctx, &ctx->Array.ArrayBufferObj, NULL); _mesa_reference_buffer_object(ctx, &ctx->Array.ElementArrayBufferObj, NULL); @@ -576,7 +576,7 @@ _mesa_free_buffer_objects( GLcontext *ctx ) * Called by glBindBuffer() and other functions. */ static void -bind_buffer_object(GLcontext *ctx, GLenum target, GLuint buffer) +bind_buffer_object(struct gl_context *ctx, GLenum target, GLuint buffer) { struct gl_buffer_object *oldBufObj; struct gl_buffer_object *newBufObj = NULL; @@ -632,7 +632,7 @@ bind_buffer_object(GLcontext *ctx, GLenum target, GLuint buffer) * shared state. */ void -_mesa_update_default_objects_buffer_objects(GLcontext *ctx) +_mesa_update_default_objects_buffer_objects(struct gl_context *ctx) { /* Bind the NullBufferObj to remove references to those * in the shared context hash table. @@ -716,7 +716,7 @@ _mesa_validate_pbo_access(GLuint dimensions, * \return NULL if error, else pointer to start of data */ const GLvoid * -_mesa_map_pbo_source(GLcontext *ctx, +_mesa_map_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack, const GLvoid *src) { @@ -750,7 +750,7 @@ _mesa_map_pbo_source(GLcontext *ctx, * _mesa_unmap_pbo_source(). */ const GLvoid * -_mesa_map_validate_pbo_source(GLcontext *ctx, +_mesa_map_validate_pbo_source(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -786,7 +786,7 @@ _mesa_map_validate_pbo_source(GLcontext *ctx, * Counterpart to _mesa_map_pbo_source() */ void -_mesa_unmap_pbo_source(GLcontext *ctx, +_mesa_unmap_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack) { ASSERT(unpack != &ctx->Pack); /* catch pack/unpack mismatch */ @@ -806,7 +806,7 @@ _mesa_unmap_pbo_source(GLcontext *ctx, * \return NULL if error, else pointer to start of data */ void * -_mesa_map_pbo_dest(GLcontext *ctx, +_mesa_map_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack, GLvoid *dest) { @@ -840,7 +840,7 @@ _mesa_map_pbo_dest(GLcontext *ctx, * _mesa_unmap_pbo_dest(). */ GLvoid * -_mesa_map_validate_pbo_dest(GLcontext *ctx, +_mesa_map_validate_pbo_dest(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -876,7 +876,7 @@ _mesa_map_validate_pbo_dest(GLcontext *ctx, * Counterpart to _mesa_map_pbo_dest() */ void -_mesa_unmap_pbo_dest(GLcontext *ctx, +_mesa_unmap_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack) { ASSERT(pack != &ctx->Unpack); /* catch pack/unpack mismatch */ @@ -892,7 +892,7 @@ _mesa_unmap_pbo_dest(GLcontext *ctx, * Always return NULL for ID 0. */ struct gl_buffer_object * -_mesa_lookup_bufferobj(GLcontext *ctx, GLuint buffer) +_mesa_lookup_bufferobj(struct gl_context *ctx, GLuint buffer) { if (buffer == 0) return NULL; @@ -909,7 +909,7 @@ _mesa_lookup_bufferobj(GLcontext *ctx, GLuint buffer) * unbound from all arrays in the current context. */ static void -unbind(GLcontext *ctx, +unbind(struct gl_context *ctx, struct gl_buffer_object **ptr, struct gl_buffer_object *obj) { @@ -1754,7 +1754,7 @@ _mesa_FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) #if FEATURE_APPLE_object_purgeable static GLenum -_mesa_BufferObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_BufferObjectPurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_buffer_object *bufObj; GLenum retval; @@ -1787,7 +1787,7 @@ _mesa_BufferObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_RenderObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_RenderObjectPurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_renderbuffer *bufObj; GLenum retval; @@ -1816,7 +1816,7 @@ _mesa_RenderObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_TextureObjectPurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_TextureObjectPurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_texture_object *bufObj; GLenum retval; @@ -1897,7 +1897,7 @@ _mesa_ObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option) static GLenum -_mesa_BufferObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_BufferObjectUnpurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_buffer_object *bufObj; GLenum retval; @@ -1927,7 +1927,7 @@ _mesa_BufferObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_RenderObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_RenderObjectUnpurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_renderbuffer *bufObj; GLenum retval; @@ -1957,7 +1957,7 @@ _mesa_RenderObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) static GLenum -_mesa_TextureObjectUnpurgeable(GLcontext *ctx, GLuint name, GLenum option) +_mesa_TextureObjectUnpurgeable(struct gl_context *ctx, GLuint name, GLenum option) { struct gl_texture_object *bufObj; GLenum retval; @@ -2027,7 +2027,7 @@ _mesa_ObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option) static void -_mesa_GetBufferObjectParameterivAPPLE(GLcontext *ctx, GLuint name, +_mesa_GetBufferObjectParameterivAPPLE(struct gl_context *ctx, GLuint name, GLenum pname, GLint* params) { struct gl_buffer_object *bufObj; @@ -2053,7 +2053,7 @@ _mesa_GetBufferObjectParameterivAPPLE(GLcontext *ctx, GLuint name, static void -_mesa_GetRenderObjectParameterivAPPLE(GLcontext *ctx, GLuint name, +_mesa_GetRenderObjectParameterivAPPLE(struct gl_context *ctx, GLuint name, GLenum pname, GLint* params) { struct gl_renderbuffer *bufObj; @@ -2079,7 +2079,7 @@ _mesa_GetRenderObjectParameterivAPPLE(GLcontext *ctx, GLuint name, static void -_mesa_GetTextureObjectParameterivAPPLE(GLcontext *ctx, GLuint name, +_mesa_GetTextureObjectParameterivAPPLE(struct gl_context *ctx, GLuint name, GLenum pname, GLint* params) { struct gl_texture_object *bufObj; diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index f234d06c6c..4b97e34767 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -57,24 +57,24 @@ _mesa_is_bufferobj(const struct gl_buffer_object *obj) extern void -_mesa_init_buffer_objects( GLcontext *ctx ); +_mesa_init_buffer_objects( struct gl_context *ctx ); extern void -_mesa_free_buffer_objects( GLcontext *ctx ); +_mesa_free_buffer_objects( struct gl_context *ctx ); extern void -_mesa_update_default_objects_buffer_objects(GLcontext *ctx); +_mesa_update_default_objects_buffer_objects(struct gl_context *ctx); extern struct gl_buffer_object * -_mesa_lookup_bufferobj(GLcontext *ctx, GLuint buffer); +_mesa_lookup_bufferobj(struct gl_context *ctx, GLuint buffer); extern void _mesa_initialize_buffer_object( struct gl_buffer_object *obj, GLuint name, GLenum target ); extern void -_mesa_reference_buffer_object(GLcontext *ctx, +_mesa_reference_buffer_object(struct gl_context *ctx, struct gl_buffer_object **ptr, struct gl_buffer_object *bufObj); @@ -85,12 +85,12 @@ _mesa_validate_pbo_access(GLuint dimensions, GLenum format, GLenum type, const GLvoid *ptr); extern const GLvoid * -_mesa_map_pbo_source(GLcontext *ctx, +_mesa_map_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack, const GLvoid *src); extern const GLvoid * -_mesa_map_validate_pbo_source(GLcontext *ctx, +_mesa_map_validate_pbo_source(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -98,16 +98,16 @@ _mesa_map_validate_pbo_source(GLcontext *ctx, const char *where); extern void -_mesa_unmap_pbo_source(GLcontext *ctx, +_mesa_unmap_pbo_source(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack); extern void * -_mesa_map_pbo_dest(GLcontext *ctx, +_mesa_map_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack, GLvoid *dest); extern GLvoid * -_mesa_map_validate_pbo_dest(GLcontext *ctx, +_mesa_map_validate_pbo_dest(struct gl_context *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, @@ -115,7 +115,7 @@ _mesa_map_validate_pbo_dest(GLcontext *ctx, const char *where); extern void -_mesa_unmap_pbo_dest(GLcontext *ctx, +_mesa_unmap_pbo_dest(struct gl_context *ctx, const struct gl_pixelstore_attrib *pack); diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index fb30b59960..86446311fe 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -50,7 +50,7 @@ * \return bitmask of BUFFER_BIT_* flags */ static GLbitfield -supported_buffer_bitmask(const GLcontext *ctx, const struct gl_framebuffer *fb) +supported_buffer_bitmask(const struct gl_context *ctx, const struct gl_framebuffer *fb) { GLbitfield mask = 0x0; @@ -355,7 +355,7 @@ _mesa_DrawBuffersARB(GLsizei n, const GLenum *buffers) * BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT). */ void -_mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers, +_mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers, const GLbitfield *destMask) { struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -452,7 +452,7 @@ _mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers, * \param bufferIndex the numerical index corresponding to 'buffer' */ void -_mesa_readbuffer(GLcontext *ctx, GLenum buffer, GLint bufferIndex) +_mesa_readbuffer(struct gl_context *ctx, GLenum buffer, GLint bufferIndex) { struct gl_framebuffer *fb = ctx->ReadBuffer; diff --git a/src/mesa/main/buffers.h b/src/mesa/main/buffers.h index 8a7e7b5c1f..36d6c8b660 100644 --- a/src/mesa/main/buffers.h +++ b/src/mesa/main/buffers.h @@ -43,11 +43,11 @@ extern void GLAPIENTRY _mesa_DrawBuffersARB(GLsizei n, const GLenum *buffers); extern void -_mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers, +_mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers, const GLbitfield *destMask); extern void -_mesa_readbuffer(GLcontext *ctx, GLenum buffer, GLint bufferIndex); +_mesa_readbuffer(struct gl_context *ctx, GLenum buffer, GLint bufferIndex); extern void GLAPIENTRY _mesa_ReadBuffer( GLenum mode ); diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c index 49d86b3b1f..b011da04b4 100644 --- a/src/mesa/main/clear.c +++ b/src/mesa/main/clear.c @@ -100,7 +100,7 @@ _mesa_ClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) * * \param mask bit-mask indicating the buffers to be cleared. * - * Flushes the vertices and verifies the parameter. If __GLcontextRec::NewState + * Flushes the vertices and verifies the parameter. If __struct gl_contextRec::NewState * is set then calls _mesa_update_state() to update gl_frame_buffer::_Xmin, * etc. If the rasterization mode is set to GL_RENDER then requests the driver * to clear the buffers, via the dd_function_table::Clear callback. @@ -191,7 +191,7 @@ _mesa_Clear( GLbitfield mask ) * Return INVALID_MASK if the drawbuffer value is invalid. */ static GLbitfield -make_color_buffer_mask(GLcontext *ctx, GLint drawbuffer) +make_color_buffer_mask(struct gl_context *ctx, GLint drawbuffer) { const struct gl_renderbuffer_attachment *att = ctx->DrawBuffer->Attachment; GLbitfield mask = 0x0; diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c index 5c2697d40a..6295dc88de 100644 --- a/src/mesa/main/colortab.c +++ b/src/mesa/main/colortab.c @@ -176,7 +176,7 @@ set_component_sizes( struct gl_color_table *table ) * \param [rgba]Bias - RGBA bias factors */ static void -store_colortable_entries(GLcontext *ctx, struct gl_color_table *table, +store_colortable_entries(struct gl_context *ctx, struct gl_color_table *table, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data, GLfloat rScale, GLfloat rBias, diff --git a/src/mesa/main/condrender.c b/src/mesa/main/condrender.c index 8d9a91d547..25b3dd678d 100644 --- a/src/mesa/main/condrender.c +++ b/src/mesa/main/condrender.c @@ -117,7 +117,7 @@ _mesa_EndConditionalRender(void) * \return GL_TRUE if we should render, GL_FALSE if we should discard */ GLboolean -_mesa_check_conditional_render(GLcontext *ctx) +_mesa_check_conditional_render(struct gl_context *ctx) { struct gl_query_object *q = ctx->Query.CondRenderQuery; diff --git a/src/mesa/main/condrender.h b/src/mesa/main/condrender.h index d55e9805fe..cf6d4ca289 100644 --- a/src/mesa/main/condrender.h +++ b/src/mesa/main/condrender.h @@ -39,7 +39,7 @@ extern void APIENTRY _mesa_EndConditionalRender(void); extern GLboolean -_mesa_check_conditional_render(GLcontext *ctx); +_mesa_check_conditional_render(struct gl_context *ctx); #endif /* CONDRENDER_H */ diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 00132514d7..1625e4c501 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -137,7 +137,7 @@ #endif #include "glsl_parser_extras.h" - +#include <stdbool.h> #ifndef MESA_VERBOSE @@ -163,7 +163,7 @@ GLfloat _mesa_ubyte_to_float_color_tab[256]; * We have to finish any pending rendering. */ void -_mesa_notifySwapBuffers(__GLcontext *ctx) +_mesa_notifySwapBuffers(struct gl_context *ctx) { if (MESA_VERBOSE & VERBOSE_SWAPBUFFERS) _mesa_debug(ctx, "SwapBuffers\n"); @@ -180,7 +180,7 @@ _mesa_notifySwapBuffers(__GLcontext *ctx) /*@{*/ /** - * Allocates a GLvisual structure and initializes it via + * Allocates a struct gl_config structure and initializes it via * _mesa_initialize_visual(). * * \param dbFlag double buffering @@ -198,12 +198,12 @@ _mesa_notifySwapBuffers(__GLcontext *ctx) * \param alphaBits same as above. * \param numSamples not really used. * - * \return pointer to new GLvisual or NULL if requested parameters can't be + * \return pointer to new struct gl_config or NULL if requested parameters can't be * met. * * \note Need to add params for level and numAuxBuffers (at least) */ -GLvisual * +struct gl_config * _mesa_create_visual( GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -218,7 +218,7 @@ _mesa_create_visual( GLboolean dbFlag, GLint accumAlphaBits, GLint numSamples ) { - GLvisual *vis = (GLvisual *) calloc(1, sizeof(GLvisual)); + struct gl_config *vis = (struct gl_config *) calloc(1, sizeof(struct gl_config)); if (vis) { if (!_mesa_initialize_visual(vis, dbFlag, stereoFlag, redBits, greenBits, blueBits, alphaBits, @@ -235,15 +235,15 @@ _mesa_create_visual( GLboolean dbFlag, /** * Makes some sanity checks and fills in the fields of the - * GLvisual object with the given parameters. If the caller needs - * to set additional fields, he should just probably init the whole GLvisual + * struct gl_config object with the given parameters. If the caller needs + * to set additional fields, he should just probably init the whole struct gl_config * object himself. * \return GL_TRUE on success, or GL_FALSE on failure. * * \sa _mesa_create_visual() above for the parameter description. */ GLboolean -_mesa_initialize_visual( GLvisual *vis, +_mesa_initialize_visual( struct gl_config *vis, GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -296,7 +296,6 @@ _mesa_initialize_visual( GLvisual *vis, vis->numAuxBuffers = 0; vis->level = 0; - vis->pixmapMode = 0; vis->sampleBuffers = numSamples > 0 ? 1 : 0; vis->samples = numSamples; @@ -312,7 +311,7 @@ _mesa_initialize_visual( GLvisual *vis, * Frees the visual structure. */ void -_mesa_destroy_visual( GLvisual *vis ) +_mesa_destroy_visual( struct gl_config *vis ) { free(vis); } @@ -378,7 +377,7 @@ _glthread_DECLARE_STATIC_MUTEX(OneTimeLock); * \sa _math_init(). */ static void -one_time_init( GLcontext *ctx ) +one_time_init( struct gl_context *ctx ) { static GLboolean alreadyCalled = GL_FALSE; (void) ctx; @@ -445,7 +444,7 @@ one_time_init( GLcontext *ctx ) * Initialize fields of gl_current_attrib (aka ctx->Current.*) */ static void -_mesa_init_current(GLcontext *ctx) +_mesa_init_current(struct gl_context *ctx) { GLuint i; @@ -527,7 +526,7 @@ init_program_limits(GLenum type, struct gl_program_constants *prog) * some of these values (such as number of texture units). */ static void -_mesa_init_constants(GLcontext *ctx) +_mesa_init_constants(struct gl_context *ctx) { assert(ctx); @@ -633,7 +632,7 @@ _mesa_init_constants(GLcontext *ctx) * Only called the first time a context is bound. */ static void -check_context_limits(GLcontext *ctx) +check_context_limits(struct gl_context *ctx) { /* check that we don't exceed the size of various bitfields */ assert(VERT_RESULT_MAX <= @@ -708,7 +707,7 @@ check_context_limits(GLcontext *ctx) * functions for the more complex data structures. */ static GLboolean -init_attrib_groups(GLcontext *ctx) +init_attrib_groups(struct gl_context *ctx) { assert(ctx); @@ -776,7 +775,7 @@ init_attrib_groups(GLcontext *ctx) * state. */ static GLboolean -update_default_objects(GLcontext *ctx) +update_default_objects(struct gl_context *ctx) { assert(ctx); @@ -828,7 +827,7 @@ _mesa_alloc_dispatch_table(int size) /** - * Initialize a GLcontext struct (rendering context). + * Initialize a struct gl_context struct (rendering context). * * This includes allocating all the other structs and arrays which hang off of * the context by pointers. @@ -855,10 +854,10 @@ _mesa_alloc_dispatch_table(int size) * \param driverContext pointer to driver-specific context data */ GLboolean -_mesa_initialize_context_for_api(GLcontext *ctx, +_mesa_initialize_context_for_api(struct gl_context *ctx, gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { @@ -950,11 +949,6 @@ _mesa_initialize_context_for_api(GLcontext *ctx, switch (ctx->API) { case API_OPENGL: - /* Neutral tnl module stuff */ - _mesa_init_exec_vtxfmt( ctx ); - ctx->TnlModule.Current = NULL; - ctx->TnlModule.SwapCount = 0; - #if FEATURE_dlist ctx->Save = _mesa_create_save_table(); if (!ctx->Save) { @@ -994,9 +988,9 @@ _mesa_initialize_context_for_api(GLcontext *ctx, } GLboolean -_mesa_initialize_context(GLcontext *ctx, - const GLvisual *visual, - GLcontext *share_list, +_mesa_initialize_context(struct gl_context *ctx, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { @@ -1009,33 +1003,33 @@ _mesa_initialize_context(GLcontext *ctx, } /** - * Allocate and initialize a GLcontext structure. + * Allocate and initialize a struct gl_context structure. * Note that the driver needs to pass in its dd_function_table here since * we need to at least call driverFunctions->NewTextureObject to initialize * the rendering context. * * \param api the GL API type to create the context for - * \param visual a GLvisual pointer (we copy the struct contents) + * \param visual a struct gl_config pointer (we copy the struct contents) * \param share_list another context to share display lists with or NULL * \param driverFunctions points to the dd_function_table into which the * driver has plugged in all its special functions. * \param driverContext points to the device driver's private context state * - * \return pointer to a new __GLcontextRec or NULL if error. + * \return pointer to a new __struct gl_contextRec or NULL if error. */ -GLcontext * +struct gl_context * _mesa_create_context_for_api(gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { - GLcontext *ctx; + struct gl_context *ctx; ASSERT(visual); /*ASSERT(driverContext);*/ - ctx = (GLcontext *) calloc(1, sizeof(GLcontext)); + ctx = (struct gl_context *) calloc(1, sizeof(struct gl_context)); if (!ctx) return NULL; @@ -1049,9 +1043,9 @@ _mesa_create_context_for_api(gl_api api, } } -GLcontext * -_mesa_create_context(const GLvisual *visual, - GLcontext *share_list, +struct gl_context * +_mesa_create_context(const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext) { @@ -1064,12 +1058,12 @@ _mesa_create_context(const GLvisual *visual, /** * Free the data associated with the given context. * - * But doesn't free the GLcontext struct itself. + * But doesn't free the struct gl_context struct itself. * * \sa _mesa_initialize_context() and init_attrib_groups(). */ void -_mesa_free_context_data( GLcontext *ctx ) +_mesa_free_context_data( struct gl_context *ctx ) { if (!_mesa_get_current_context()){ /* No current context, but we may need one in order to delete @@ -1143,14 +1137,14 @@ _mesa_free_context_data( GLcontext *ctx ) /** - * Destroy a GLcontext structure. + * Destroy a struct gl_context structure. * * \param ctx GL context. * - * Calls _mesa_free_context_data() and frees the GLcontext structure itself. + * Calls _mesa_free_context_data() and frees the struct gl_context structure itself. */ void -_mesa_destroy_context( GLcontext *ctx ) +_mesa_destroy_context( struct gl_context *ctx ) { if (ctx) { _mesa_free_context_data(ctx); @@ -1173,7 +1167,7 @@ _mesa_destroy_context( GLcontext *ctx ) * structures. */ void -_mesa_copy_context( const GLcontext *src, GLcontext *dst, GLuint mask ) +_mesa_copy_context( const struct gl_context *src, struct gl_context *dst, GLuint mask ) { if (mask & GL_ACCUM_BUFFER_BIT) { /* OK to memcpy */ @@ -1292,10 +1286,10 @@ _mesa_copy_context( const GLcontext *src, GLcontext *dst, GLuint mask ) * \return GL_TRUE if compatible, GL_FALSE otherwise. */ static GLboolean -check_compatible(const GLcontext *ctx, const GLframebuffer *buffer) +check_compatible(const struct gl_context *ctx, const struct gl_framebuffer *buffer) { - const GLvisual *ctxvis = &ctx->Visual; - const GLvisual *bufvis = &buffer->Visual; + const struct gl_config *ctxvis = &ctx->Visual; + const struct gl_config *bufvis = &buffer->Visual; if (ctxvis == bufvis) return GL_TRUE; @@ -1341,7 +1335,7 @@ check_compatible(const GLcontext *ctx, const GLframebuffer *buffer) * Really, the device driver should totally take care of this. */ static void -initialize_framebuffer_size(GLcontext *ctx, GLframebuffer *fb) +initialize_framebuffer_size(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint width, height; if (ctx->Driver.GetBufferSize) { @@ -1358,7 +1352,7 @@ initialize_framebuffer_size(GLcontext *ctx, GLframebuffer *fb) * Initialize the size if the given width and height are non-zero. */ void -_mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height) +_mesa_check_init_viewport(struct gl_context *ctx, GLuint width, GLuint height) { if (!ctx->ViewportInitialized && width > 0 && height > 0) { /* Note: set flag here, before calling _mesa_set_viewport(), to prevent @@ -1386,8 +1380,8 @@ _mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height) * \param readBuffer the reading framebuffer */ GLboolean -_mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer, - GLframebuffer *readBuffer ) +_mesa_make_current( struct gl_context *newCtx, struct gl_framebuffer *drawBuffer, + struct gl_framebuffer *readBuffer ) { if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(newCtx, "_mesa_make_current()\n"); @@ -1525,7 +1519,7 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer, * be deleted if nobody else is sharing them. */ GLboolean -_mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare) +_mesa_share_state(struct gl_context *ctx, struct gl_context *ctxToShare) { if (ctx && ctxToShare && ctx->Shared && ctxToShare->Shared) { struct gl_shared_state *oldSharedState = ctx->Shared; @@ -1556,10 +1550,10 @@ _mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare) * context. If you need speed, see the #GET_CURRENT_CONTEXT macro in * context.h. */ -GLcontext * +struct gl_context * _mesa_get_current_context( void ) { - return (GLcontext *) _glapi_get_context(); + return (struct gl_context *) _glapi_get_context(); } @@ -1573,10 +1567,10 @@ _mesa_get_current_context( void ) * * \return pointer to dispatch_table. * - * Simply returns __GLcontextRec::CurrentDispatch. + * Simply returns __struct gl_contextRec::CurrentDispatch. */ struct _glapi_table * -_mesa_get_dispatch(GLcontext *ctx) +_mesa_get_dispatch(struct gl_context *ctx) { return ctx->CurrentDispatch; } @@ -1602,7 +1596,7 @@ _mesa_get_dispatch(GLcontext *ctx) * This is called via _mesa_error(). */ void -_mesa_record_error(GLcontext *ctx, GLenum error) +_mesa_record_error(struct gl_context *ctx, GLenum error) { if (!ctx) return; @@ -1622,7 +1616,7 @@ _mesa_record_error(GLcontext *ctx, GLenum error) * Flush commands and wait for completion. */ void -_mesa_finish(GLcontext *ctx) +_mesa_finish(struct gl_context *ctx) { FLUSH_CURRENT( ctx, 0 ); if (ctx->Driver.Finish) { @@ -1635,7 +1629,7 @@ _mesa_finish(GLcontext *ctx) * Flush commands. */ void -_mesa_flush(GLcontext *ctx) +_mesa_flush(struct gl_context *ctx) { FLUSH_CURRENT( ctx, 0 ); if (ctx->Driver.Flush) { @@ -1681,7 +1675,7 @@ _mesa_Flush(void) * Otherwise we default to MUL/MAD. */ void -_mesa_set_mvp_with_dp4( GLcontext *ctx, +_mesa_set_mvp_with_dp4( struct gl_context *ctx, GLboolean flag ) { ctx->mvp_with_dp4 = flag; @@ -1697,15 +1691,21 @@ _mesa_set_mvp_with_dp4( GLcontext *ctx, * \return GL_TRUE if OK to render, GL_FALSE if not */ GLboolean -_mesa_valid_to_render(GLcontext *ctx, const char *where) +_mesa_valid_to_render(struct gl_context *ctx, const char *where) { + bool vert_from_glsl_shader = false; + bool geom_from_glsl_shader = false; + bool frag_from_glsl_shader = false; + /* This depends on having up to date derived state (shaders) */ if (ctx->NewState) _mesa_update_state(ctx); if (ctx->Shader.CurrentProgram) { + struct gl_shader_program *const prog = ctx->Shader.CurrentProgram; + /* using shaders */ - if (!ctx->Shader.CurrentProgram->LinkStatus) { + if (!prog->LinkStatus) { _mesa_error(ctx, GL_INVALID_OPERATION, "%s(shader not linked)", where); return GL_FALSE; @@ -1713,25 +1713,46 @@ _mesa_valid_to_render(GLcontext *ctx, const char *where) #if 0 /* not normally enabled */ { char errMsg[100]; - if (!_mesa_validate_shader_program(ctx, ctx->Shader.CurrentProgram, - errMsg)) { + if (!_mesa_validate_shader_program(ctx, prog, errMsg)) { _mesa_warning(ctx, "Shader program %u is invalid: %s", - ctx->Shader.CurrentProgram->Name, errMsg); + prog->Name, errMsg); } } #endif + + /* Figure out which shader stages are provided by the GLSL program. For + * any stages that are not provided, the corresponding assembly shader + * target will be validated below. + */ + vert_from_glsl_shader = + prog->_LinkedShaders[MESA_SHADER_VERTEX] != NULL; + geom_from_glsl_shader = + prog->_LinkedShaders[MESA_SHADER_GEOMETRY] != NULL; + frag_from_glsl_shader = + prog->_LinkedShaders[MESA_SHADER_FRAGMENT] != NULL; } - else { - if (ctx->VertexProgram.Enabled && !ctx->VertexProgram._Enabled) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(vertex program not valid)", where); - return GL_FALSE; - } - if (ctx->FragmentProgram.Enabled && !ctx->FragmentProgram._Enabled) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(fragment program not valid)", where); - return GL_FALSE; - } + + + /* Any shader stages that are not supplied by the GLSL shader and have + * assembly shaders enabled must now be validated. + */ + if (!vert_from_glsl_shader + && ctx->VertexProgram.Enabled && !ctx->VertexProgram._Enabled) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "%s(vertex program not valid)", where); + return GL_FALSE; + } + + /* FINISHME: If GL_NV_geometry_program4 is ever supported, the current + * FINISHME: geometry program should validated here. + */ + (void) geom_from_glsl_shader; + + if (!frag_from_glsl_shader + && ctx->FragmentProgram.Enabled && !ctx->FragmentProgram._Enabled) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "%s(fragment program not valid)", where); + return GL_FALSE; } if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h index c61da62826..42d98a33a8 100644 --- a/src/mesa/main/context.h +++ b/src/mesa/main/context.h @@ -29,16 +29,16 @@ * * There are three large Mesa data types/classes which are meant to be * used by device drivers: - * - GLcontext: this contains the Mesa rendering state - * - GLvisual: this describes the color buffer (RGB vs. ci), whether or not + * - struct gl_context: this contains the Mesa rendering state + * - struct gl_config: this describes the color buffer (RGB vs. ci), whether or not * there's a depth buffer, stencil buffer, etc. - * - GLframebuffer: contains pointers to the depth buffer, stencil buffer, + * - struct gl_framebuffer: contains pointers to the depth buffer, stencil buffer, * accum buffer and alpha buffers. * * These types should be encapsulated by corresponding device driver * data types. See xmesa.h and xmesaP.h for an example. * - * In OOP terms, GLcontext, GLvisual, and GLframebuffer are base classes + * In OOP terms, struct gl_context, struct gl_config, and struct gl_framebuffer are base classes * which the device driver must derive from. * * The following functions create and destroy these data types. @@ -59,7 +59,7 @@ struct _glapi_table; /** \name Visual-related functions */ /*@{*/ -extern GLvisual * +extern struct gl_config * _mesa_create_visual( GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -75,7 +75,7 @@ _mesa_create_visual( GLboolean dbFlag, GLint numSamples ); extern GLboolean -_mesa_initialize_visual( GLvisual *v, +_mesa_initialize_visual( struct gl_config *v, GLboolean dbFlag, GLboolean stereoFlag, GLint redBits, @@ -91,7 +91,7 @@ _mesa_initialize_visual( GLvisual *v, GLint numSamples ); extern void -_mesa_destroy_visual( GLvisual *vis ); +_mesa_destroy_visual( struct gl_config *vis ); /*@}*/ @@ -99,78 +99,78 @@ _mesa_destroy_visual( GLvisual *vis ); /** \name Context-related functions */ /*@{*/ -extern GLcontext * -_mesa_create_context( const GLvisual *visual, - GLcontext *share_list, +extern struct gl_context * +_mesa_create_context( const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext ); extern GLboolean -_mesa_initialize_context( GLcontext *ctx, - const GLvisual *visual, - GLcontext *share_list, +_mesa_initialize_context( struct gl_context *ctx, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext ); -extern GLcontext * +extern struct gl_context * _mesa_create_context_for_api(gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext); extern GLboolean -_mesa_initialize_context_for_api(GLcontext *ctx, +_mesa_initialize_context_for_api(struct gl_context *ctx, gl_api api, - const GLvisual *visual, - GLcontext *share_list, + const struct gl_config *visual, + struct gl_context *share_list, const struct dd_function_table *driverFunctions, void *driverContext); extern void -_mesa_free_context_data( GLcontext *ctx ); +_mesa_free_context_data( struct gl_context *ctx ); extern void -_mesa_destroy_context( GLcontext *ctx ); +_mesa_destroy_context( struct gl_context *ctx ); extern void -_mesa_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask); +_mesa_copy_context(const struct gl_context *src, struct gl_context *dst, GLuint mask); extern void -_mesa_check_init_viewport(GLcontext *ctx, GLuint width, GLuint height); +_mesa_check_init_viewport(struct gl_context *ctx, GLuint width, GLuint height); extern GLboolean -_mesa_make_current( GLcontext *ctx, GLframebuffer *drawBuffer, - GLframebuffer *readBuffer ); +_mesa_make_current( struct gl_context *ctx, struct gl_framebuffer *drawBuffer, + struct gl_framebuffer *readBuffer ); extern GLboolean -_mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare); +_mesa_share_state(struct gl_context *ctx, struct gl_context *ctxToShare); -extern GLcontext * +extern struct gl_context * _mesa_get_current_context(void); /*@}*/ extern void -_mesa_init_get_hash(GLcontext *ctx); +_mesa_init_get_hash(struct gl_context *ctx); extern void -_mesa_notifySwapBuffers(__GLcontext *gc); +_mesa_notifySwapBuffers(struct gl_context *gc); extern struct _glapi_table * -_mesa_get_dispatch(GLcontext *ctx); +_mesa_get_dispatch(struct gl_context *ctx); void -_mesa_set_mvp_with_dp4( GLcontext *ctx, +_mesa_set_mvp_with_dp4( struct gl_context *ctx, GLboolean flag ); extern GLboolean -_mesa_valid_to_render(GLcontext *ctx, const char *where); +_mesa_valid_to_render(struct gl_context *ctx, const char *where); @@ -178,14 +178,14 @@ _mesa_valid_to_render(GLcontext *ctx, const char *where); /*@{*/ extern void -_mesa_record_error( GLcontext *ctx, GLenum error ); +_mesa_record_error( struct gl_context *ctx, GLenum error ); extern void -_mesa_finish(GLcontext *ctx); +_mesa_finish(struct gl_context *ctx); extern void -_mesa_flush(GLcontext *ctx); +_mesa_flush(struct gl_context *ctx); extern void GLAPIENTRY @@ -211,7 +211,7 @@ _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. + * __struct gl_contextRec::NewState with \p newstate. */ #define FLUSH_VERTICES(ctx, newstate) \ do { \ @@ -230,7 +230,7 @@ do { \ * * Checks if dd_function_table::NeedFlush is marked to flush current state, * and calls dd_function_table::FlushVertices if so. Marks - * __GLcontextRec::NewState with \p newstate. + * __struct gl_contextRec::NewState with \p newstate. */ #define FLUSH_CURRENT(ctx, newstate) \ do { \ diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 46d26cf901..c9f0facdaf 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -70,7 +70,7 @@ struct dd_function_table { * Only the GL_RENDERER query must be implemented. Otherwise, NULL can be * returned. */ - const GLubyte * (*GetString)( GLcontext *ctx, GLenum name ); + const GLubyte * (*GetString)( struct gl_context *ctx, GLenum name ); /** * Notify the driver after Mesa has made some internal state changes. @@ -78,7 +78,7 @@ struct dd_function_table { * This is in addition to any state change callbacks Mesa may already have * made. */ - void (*UpdateState)( GLcontext *ctx, GLbitfield new_state ); + void (*UpdateState)( struct gl_context *ctx, GLbitfield new_state ); /** * Get the width and height of the named buffer/window. @@ -86,49 +86,49 @@ struct dd_function_table { * Mesa uses this to determine when the driver's window size has changed. * XXX OBSOLETE: this function will be removed in the future. */ - void (*GetBufferSize)( GLframebuffer *buffer, + void (*GetBufferSize)( struct gl_framebuffer *buffer, GLuint *width, GLuint *height ); /** * Resize the given framebuffer to the given size. * XXX OBSOLETE: this function will be removed in the future. */ - void (*ResizeBuffers)( GLcontext *ctx, GLframebuffer *fb, + void (*ResizeBuffers)( struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height); /** * Called whenever an error is generated. - * __GLcontextRec::ErrorValue contains the error value. + * __struct gl_contextRec::ErrorValue contains the error value. */ - void (*Error)( GLcontext *ctx ); + void (*Error)( struct gl_context *ctx ); /** * This is called whenever glFinish() is called. */ - void (*Finish)( GLcontext *ctx ); + void (*Finish)( struct gl_context *ctx ); /** * This is called whenever glFlush() is called. */ - void (*Flush)( GLcontext *ctx ); + void (*Flush)( struct gl_context *ctx ); /** * Clear the color/depth/stencil/accum buffer(s). * \param buffers a bitmask of BUFFER_BIT_* flags indicating which * renderbuffers need to be cleared. */ - void (*Clear)( GLcontext *ctx, GLbitfield buffers ); + void (*Clear)( struct gl_context *ctx, GLbitfield buffers ); /** * Execute glAccum command. */ - void (*Accum)( GLcontext *ctx, GLenum op, GLfloat value ); + void (*Accum)( struct gl_context *ctx, GLenum op, GLfloat value ); /** * Execute glRasterPos, updating the ctx->Current.Raster fields */ - void (*RasterPos)( GLcontext *ctx, const GLfloat v[4] ); + void (*RasterPos)( struct gl_context *ctx, const GLfloat v[4] ); /** * \name Image-related functions @@ -139,7 +139,7 @@ struct dd_function_table { * Called by glDrawPixels(). * \p unpack describes how to unpack the source image data. */ - void (*DrawPixels)( GLcontext *ctx, + void (*DrawPixels)( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -148,7 +148,7 @@ struct dd_function_table { /** * Called by glReadPixels(). */ - void (*ReadPixels)( GLcontext *ctx, + void (*ReadPixels)( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -157,14 +157,14 @@ struct dd_function_table { /** * Called by glCopyPixels(). */ - void (*CopyPixels)( GLcontext *ctx, GLint srcx, GLint srcy, + void (*CopyPixels)( struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type ); /** * Called by glBitmap(). */ - void (*Bitmap)( GLcontext *ctx, + void (*Bitmap)( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ); @@ -183,7 +183,7 @@ struct dd_function_table { * functions. The driver should examine \p internalFormat and return a * gl_format value. */ - GLuint (*ChooseTextureFormat)( GLcontext *ctx, GLint internalFormat, + GLuint (*ChooseTextureFormat)( struct gl_context *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType ); /** @@ -203,7 +203,7 @@ struct dd_function_table { * * Drivers should call a fallback routine from texstore.c if needed. */ - void (*TexImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -216,7 +216,7 @@ struct dd_function_table { * * \sa dd_function_table::TexImage1D. */ - void (*TexImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -229,7 +229,7 @@ struct dd_function_table { * * \sa dd_function_table::TexImage1D. */ - void (*TexImage3D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -258,7 +258,7 @@ struct dd_function_table { * * The driver should use a fallback routine from texstore.c if needed. */ - void (*TexSubImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexSubImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels, @@ -271,7 +271,7 @@ struct dd_function_table { * * \sa dd_function_table::TexSubImage1D. */ - void (*TexSubImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexSubImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -285,7 +285,7 @@ struct dd_function_table { * * \sa dd_function_table::TexSubImage1D. */ - void (*TexSubImage3D)( GLcontext *ctx, GLenum target, GLint level, + void (*TexSubImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLint depth, GLenum format, GLenum type, @@ -297,7 +297,7 @@ struct dd_function_table { /** * Called by glGetTexImage(). */ - void (*GetTexImage)( GLcontext *ctx, GLenum target, GLint level, + void (*GetTexImage)( struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage ); @@ -307,7 +307,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border ); @@ -316,7 +316,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); @@ -325,7 +325,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexSubImage1D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexSubImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); /** @@ -333,7 +333,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexSubImage2D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexSubImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); @@ -342,7 +342,7 @@ struct dd_function_table { * * Drivers should use a fallback routine from texstore.c if needed. */ - void (*CopyTexSubImage3D)( GLcontext *ctx, GLenum target, GLint level, + void (*CopyTexSubImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); @@ -350,7 +350,7 @@ struct dd_function_table { /** * Called by glGenerateMipmap() or when GL_GENERATE_MIPMAP_SGIS is enabled. */ - void (*GenerateMipmap)(GLcontext *ctx, GLenum target, + void (*GenerateMipmap)(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj); /** @@ -359,7 +359,7 @@ struct dd_function_table { * * \return GL_TRUE if the proxy test passes, or GL_FALSE if the test fails. */ - GLboolean (*TestProxyTexImage)(GLcontext *ctx, GLenum target, + GLboolean (*TestProxyTexImage)(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, @@ -387,7 +387,7 @@ struct dd_function_table { * \a retainInternalCopy is returned by this function and indicates whether * core Mesa should keep an internal copy of the texture image. */ - void (*CompressedTexImage1D)( GLcontext *ctx, GLenum target, + void (*CompressedTexImage1D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data, @@ -398,7 +398,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage1D. */ - void (*CompressedTexImage2D)( GLcontext *ctx, GLenum target, + void (*CompressedTexImage2D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -409,7 +409,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage3D. */ - void (*CompressedTexImage3D)( GLcontext *ctx, GLenum target, + void (*CompressedTexImage3D)( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, @@ -434,7 +434,7 @@ struct dd_function_table { * \param texImage is the target texture image. It will have the texture \p * width, \p height, \p depth, \p border and \p internalFormat information. */ - void (*CompressedTexSubImage1D)(GLcontext *ctx, GLenum target, GLint level, + void (*CompressedTexSubImage1D)(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data, @@ -445,7 +445,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage3D. */ - void (*CompressedTexSubImage2D)(GLcontext *ctx, GLenum target, GLint level, + void (*CompressedTexSubImage2D)(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLint height, GLenum format, @@ -457,7 +457,7 @@ struct dd_function_table { * * \sa dd_function_table::CompressedTexImage3D. */ - void (*CompressedTexSubImage3D)(GLcontext *ctx, GLenum target, GLint level, + void (*CompressedTexSubImage3D)(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLint height, GLint depth, GLenum format, @@ -469,7 +469,7 @@ struct dd_function_table { /** * Called by glGetCompressedTexImage. */ - void (*GetCompressedTexImage)(GLcontext *ctx, GLenum target, GLint level, + void (*GetCompressedTexImage)(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage); @@ -484,7 +484,7 @@ struct dd_function_table { /** * Called by glBindTexture(). */ - void (*BindTexture)( GLcontext *ctx, GLenum target, + void (*BindTexture)( struct gl_context *ctx, GLenum target, struct gl_texture_object *tObj ); /** @@ -492,7 +492,7 @@ struct dd_function_table { * A new gl_texture_object should be returned. The driver should * attach to it any device-specific info it needs. */ - struct gl_texture_object * (*NewTextureObject)( GLcontext *ctx, GLuint name, + struct gl_texture_object * (*NewTextureObject)( struct gl_context *ctx, GLuint name, GLenum target ); /** * Called when a texture object is about to be deallocated. @@ -500,22 +500,22 @@ struct dd_function_table { * Driver should delete the gl_texture_object object and anything * hanging off of it. */ - void (*DeleteTexture)( GLcontext *ctx, struct gl_texture_object *tObj ); + void (*DeleteTexture)( struct gl_context *ctx, struct gl_texture_object *tObj ); /** * Called to allocate a new texture image object. */ - struct gl_texture_image * (*NewTextureImage)( GLcontext *ctx ); + struct gl_texture_image * (*NewTextureImage)( struct gl_context *ctx ); /** * Called to free tImage->Data. */ - void (*FreeTexImageData)( GLcontext *ctx, struct gl_texture_image *tImage ); + void (*FreeTexImageData)( struct gl_context *ctx, struct gl_texture_image *tImage ); /** Map texture image data into user space */ - void (*MapTexture)( GLcontext *ctx, struct gl_texture_object *tObj ); + void (*MapTexture)( struct gl_context *ctx, struct gl_texture_object *tObj ); /** Unmap texture images from user space */ - void (*UnmapTexture)( GLcontext *ctx, struct gl_texture_object *tObj ); + void (*UnmapTexture)( struct gl_context *ctx, struct gl_texture_object *tObj ); /** * Note: no context argument. This function doesn't initially look @@ -533,7 +533,7 @@ struct dd_function_table { /** * Called by glAreTextureResident(). */ - GLboolean (*IsTextureResident)( GLcontext *ctx, + GLboolean (*IsTextureResident)( struct gl_context *ctx, struct gl_texture_object *t ); /** @@ -542,7 +542,7 @@ struct dd_function_table { * If \p tObj is NULL then the shared texture palette * gl_texture_object::Palette is to be updated. */ - void (*UpdateTexturePalette)( GLcontext *ctx, + void (*UpdateTexturePalette)( struct gl_context *ctx, struct gl_texture_object *tObj ); /*@}*/ @@ -551,11 +551,11 @@ struct dd_function_table { * \name Imaging functionality */ /*@{*/ - void (*CopyColorTable)( GLcontext *ctx, + void (*CopyColorTable)( struct gl_context *ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); - void (*CopyColorSubTable)( GLcontext *ctx, + void (*CopyColorSubTable)( struct gl_context *ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width ); /*@}*/ @@ -566,21 +566,21 @@ struct dd_function_table { */ /*@{*/ /** Bind a vertex/fragment program */ - void (*BindProgram)(GLcontext *ctx, GLenum target, struct gl_program *prog); + void (*BindProgram)(struct gl_context *ctx, GLenum target, struct gl_program *prog); /** Allocate a new program */ - struct gl_program * (*NewProgram)(GLcontext *ctx, GLenum target, GLuint id); + struct gl_program * (*NewProgram)(struct gl_context *ctx, GLenum target, GLuint id); /** Delete a program */ - void (*DeleteProgram)(GLcontext *ctx, struct gl_program *prog); + void (*DeleteProgram)(struct gl_context *ctx, struct gl_program *prog); /** * Notify driver that a program string (and GPU code) has been specified * or modified. Return GL_TRUE or GL_FALSE to indicate if the program is * supported by the driver. */ - GLboolean (*ProgramStringNotify)(GLcontext *ctx, GLenum target, + GLboolean (*ProgramStringNotify)(struct gl_context *ctx, GLenum target, struct gl_program *prog); /** Query if program can be loaded onto hardware */ - GLboolean (*IsProgramNative)(GLcontext *ctx, GLenum target, + GLboolean (*IsProgramNative)(struct gl_context *ctx, GLenum target, struct gl_program *prog); /*@}*/ @@ -597,14 +597,14 @@ struct dd_function_table { * have CompileShader() called, so if lowering passes are done they * need to also be performed in LinkShader(). */ - GLboolean (*CompileShader)(GLcontext *ctx, struct gl_shader *shader); + GLboolean (*CompileShader)(struct gl_context *ctx, struct gl_shader *shader); /** * Called when a shader program is linked. * * This gives drivers an opportunity to clone the IR and make their * own transformations on it for the purposes of code generation. */ - GLboolean (*LinkShader)(GLcontext *ctx, struct gl_shader_program *shader); + GLboolean (*LinkShader)(struct gl_context *ctx, struct gl_shader_program *shader); /*@}*/ /** @@ -618,102 +618,102 @@ struct dd_function_table { */ /*@{*/ /** Specify the alpha test function */ - void (*AlphaFunc)(GLcontext *ctx, GLenum func, GLfloat ref); + void (*AlphaFunc)(struct gl_context *ctx, GLenum func, GLfloat ref); /** Set the blend color */ - void (*BlendColor)(GLcontext *ctx, const GLfloat color[4]); + void (*BlendColor)(struct gl_context *ctx, const GLfloat color[4]); /** Set the blend equation */ - void (*BlendEquationSeparate)(GLcontext *ctx, GLenum modeRGB, GLenum modeA); + void (*BlendEquationSeparate)(struct gl_context *ctx, GLenum modeRGB, GLenum modeA); /** Specify pixel arithmetic */ - void (*BlendFuncSeparate)(GLcontext *ctx, + void (*BlendFuncSeparate)(struct gl_context *ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA); /** Specify clear values for the color buffers */ - void (*ClearColor)(GLcontext *ctx, const GLfloat color[4]); + void (*ClearColor)(struct gl_context *ctx, const GLfloat color[4]); /** Specify the clear value for the depth buffer */ - void (*ClearDepth)(GLcontext *ctx, GLclampd d); + void (*ClearDepth)(struct gl_context *ctx, GLclampd d); /** Specify the clear value for the stencil buffer */ - void (*ClearStencil)(GLcontext *ctx, GLint s); + void (*ClearStencil)(struct gl_context *ctx, GLint s); /** Specify a plane against which all geometry is clipped */ - void (*ClipPlane)(GLcontext *ctx, GLenum plane, const GLfloat *equation ); + void (*ClipPlane)(struct gl_context *ctx, GLenum plane, const GLfloat *equation ); /** Enable and disable writing of frame buffer color components */ - void (*ColorMask)(GLcontext *ctx, GLboolean rmask, GLboolean gmask, + void (*ColorMask)(struct gl_context *ctx, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask ); - void (*ColorMaskIndexed)(GLcontext *ctx, GLuint buf, GLboolean rmask, + void (*ColorMaskIndexed)(struct gl_context *ctx, GLuint buf, GLboolean rmask, GLboolean gmask, GLboolean bmask, GLboolean amask); /** Cause a material color to track the current color */ - void (*ColorMaterial)(GLcontext *ctx, GLenum face, GLenum mode); + void (*ColorMaterial)(struct gl_context *ctx, GLenum face, GLenum mode); /** Specify whether front- or back-facing facets can be culled */ - void (*CullFace)(GLcontext *ctx, GLenum mode); + void (*CullFace)(struct gl_context *ctx, GLenum mode); /** Define front- and back-facing polygons */ - void (*FrontFace)(GLcontext *ctx, GLenum mode); + void (*FrontFace)(struct gl_context *ctx, GLenum mode); /** Specify the value used for depth buffer comparisons */ - void (*DepthFunc)(GLcontext *ctx, GLenum func); + void (*DepthFunc)(struct gl_context *ctx, GLenum func); /** Enable or disable writing into the depth buffer */ - void (*DepthMask)(GLcontext *ctx, GLboolean flag); + void (*DepthMask)(struct gl_context *ctx, GLboolean flag); /** Specify mapping of depth values from NDC to window coordinates */ - void (*DepthRange)(GLcontext *ctx, GLclampd nearval, GLclampd farval); + void (*DepthRange)(struct gl_context *ctx, GLclampd nearval, GLclampd farval); /** Specify the current buffer for writing */ - void (*DrawBuffer)( GLcontext *ctx, GLenum buffer ); + void (*DrawBuffer)( struct gl_context *ctx, GLenum buffer ); /** Specify the buffers for writing for fragment programs*/ - void (*DrawBuffers)( GLcontext *ctx, GLsizei n, const GLenum *buffers ); + void (*DrawBuffers)( struct gl_context *ctx, GLsizei n, const GLenum *buffers ); /** Enable or disable server-side gl capabilities */ - void (*Enable)(GLcontext *ctx, GLenum cap, GLboolean state); + void (*Enable)(struct gl_context *ctx, GLenum cap, GLboolean state); /** Specify fog parameters */ - void (*Fogfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); + void (*Fogfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params); /** Specify implementation-specific hints */ - void (*Hint)(GLcontext *ctx, GLenum target, GLenum mode); + void (*Hint)(struct gl_context *ctx, GLenum target, GLenum mode); /** Set light source parameters. * Note: for GL_POSITION and GL_SPOT_DIRECTION, params will have already * been transformed to eye-space. */ - void (*Lightfv)(GLcontext *ctx, GLenum light, + void (*Lightfv)(struct gl_context *ctx, GLenum light, GLenum pname, const GLfloat *params ); /** Set the lighting model parameters */ - void (*LightModelfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); + void (*LightModelfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params); /** Specify the line stipple pattern */ - void (*LineStipple)(GLcontext *ctx, GLint factor, GLushort pattern ); + void (*LineStipple)(struct gl_context *ctx, GLint factor, GLushort pattern ); /** Specify the width of rasterized lines */ - void (*LineWidth)(GLcontext *ctx, GLfloat width); + void (*LineWidth)(struct gl_context *ctx, GLfloat width); /** Specify a logical pixel operation for color index rendering */ - void (*LogicOpcode)(GLcontext *ctx, GLenum opcode); - void (*PointParameterfv)(GLcontext *ctx, GLenum pname, + void (*LogicOpcode)(struct gl_context *ctx, GLenum opcode); + void (*PointParameterfv)(struct gl_context *ctx, GLenum pname, const GLfloat *params); /** Specify the diameter of rasterized points */ - void (*PointSize)(GLcontext *ctx, GLfloat size); + void (*PointSize)(struct gl_context *ctx, GLfloat size); /** Select a polygon rasterization mode */ - void (*PolygonMode)(GLcontext *ctx, GLenum face, GLenum mode); + void (*PolygonMode)(struct gl_context *ctx, GLenum face, GLenum mode); /** Set the scale and units used to calculate depth values */ - void (*PolygonOffset)(GLcontext *ctx, GLfloat factor, GLfloat units); + void (*PolygonOffset)(struct gl_context *ctx, GLfloat factor, GLfloat units); /** Set the polygon stippling pattern */ - void (*PolygonStipple)(GLcontext *ctx, const GLubyte *mask ); + void (*PolygonStipple)(struct gl_context *ctx, const GLubyte *mask ); /* Specifies the current buffer for reading */ - void (*ReadBuffer)( GLcontext *ctx, GLenum buffer ); + void (*ReadBuffer)( struct gl_context *ctx, GLenum buffer ); /** Set rasterization mode */ - void (*RenderMode)(GLcontext *ctx, GLenum mode ); + void (*RenderMode)(struct gl_context *ctx, GLenum mode ); /** Define the scissor box */ - void (*Scissor)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); + void (*Scissor)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h); /** Select flat or smooth shading */ - void (*ShadeModel)(GLcontext *ctx, GLenum mode); + void (*ShadeModel)(struct gl_context *ctx, GLenum mode); /** OpenGL 2.0 two-sided StencilFunc */ - void (*StencilFuncSeparate)(GLcontext *ctx, GLenum face, GLenum func, + void (*StencilFuncSeparate)(struct gl_context *ctx, GLenum face, GLenum func, GLint ref, GLuint mask); /** OpenGL 2.0 two-sided StencilMask */ - void (*StencilMaskSeparate)(GLcontext *ctx, GLenum face, GLuint mask); + void (*StencilMaskSeparate)(struct gl_context *ctx, GLenum face, GLuint mask); /** OpenGL 2.0 two-sided StencilOp */ - void (*StencilOpSeparate)(GLcontext *ctx, GLenum face, GLenum fail, + void (*StencilOpSeparate)(struct gl_context *ctx, GLenum face, GLenum fail, GLenum zfail, GLenum zpass); /** Control the generation of texture coordinates */ - void (*TexGen)(GLcontext *ctx, GLenum coord, GLenum pname, + void (*TexGen)(struct gl_context *ctx, GLenum coord, GLenum pname, const GLfloat *params); /** Set texture environment parameters */ - void (*TexEnv)(GLcontext *ctx, GLenum target, GLenum pname, + void (*TexEnv)(struct gl_context *ctx, GLenum target, GLenum pname, const GLfloat *param); /** Set texture parameters */ - void (*TexParameter)(GLcontext *ctx, GLenum target, + void (*TexParameter)(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params); /** Set the viewport */ - void (*Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); + void (*Viewport)(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h); /*@}*/ @@ -721,30 +721,30 @@ struct dd_function_table { * \name Vertex/pixel buffer object functions */ /*@{*/ - void (*BindBuffer)( GLcontext *ctx, GLenum target, + void (*BindBuffer)( struct gl_context *ctx, GLenum target, struct gl_buffer_object *obj ); - struct gl_buffer_object * (*NewBufferObject)( GLcontext *ctx, GLuint buffer, + struct gl_buffer_object * (*NewBufferObject)( struct gl_context *ctx, GLuint buffer, GLenum target ); - void (*DeleteBuffer)( GLcontext *ctx, struct gl_buffer_object *obj ); + void (*DeleteBuffer)( struct gl_context *ctx, struct gl_buffer_object *obj ); - GLboolean (*BufferData)( GLcontext *ctx, GLenum target, GLsizeiptrARB size, + GLboolean (*BufferData)( struct gl_context *ctx, GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage, struct gl_buffer_object *obj ); - void (*BufferSubData)( GLcontext *ctx, GLenum target, GLintptrARB offset, + void (*BufferSubData)( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data, struct gl_buffer_object *obj ); - void (*GetBufferSubData)( GLcontext *ctx, GLenum target, + void (*GetBufferSubData)( struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data, struct gl_buffer_object *obj ); - void * (*MapBuffer)( GLcontext *ctx, GLenum target, GLenum access, + void * (*MapBuffer)( struct gl_context *ctx, GLenum target, GLenum access, struct gl_buffer_object *obj ); - void (*CopyBufferSubData)( GLcontext *ctx, + void (*CopyBufferSubData)( struct gl_context *ctx, struct gl_buffer_object *src, struct gl_buffer_object *dst, GLintptr readOffset, GLintptr writeOffset, @@ -752,15 +752,15 @@ struct dd_function_table { /* May return NULL if MESA_MAP_NOWAIT_BIT is set in access: */ - void * (*MapBufferRange)( GLcontext *ctx, GLenum target, GLintptr offset, + void * (*MapBufferRange)( struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, struct gl_buffer_object *obj); - void (*FlushMappedBufferRange)(GLcontext *ctx, GLenum target, + void (*FlushMappedBufferRange)(struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, struct gl_buffer_object *obj); - GLboolean (*UnmapBuffer)( GLcontext *ctx, GLenum target, + GLboolean (*UnmapBuffer)( struct gl_context *ctx, GLenum target, struct gl_buffer_object *obj ); /*@}*/ @@ -769,38 +769,38 @@ struct dd_function_table { */ /*@{*/ /* variations on ObjectPurgeable */ - GLenum (*BufferObjectPurgeable)( GLcontext *ctx, struct gl_buffer_object *obj, GLenum option ); - GLenum (*RenderObjectPurgeable)( GLcontext *ctx, struct gl_renderbuffer *obj, GLenum option ); - GLenum (*TextureObjectPurgeable)( GLcontext *ctx, struct gl_texture_object *obj, GLenum option ); + GLenum (*BufferObjectPurgeable)( struct gl_context *ctx, struct gl_buffer_object *obj, GLenum option ); + GLenum (*RenderObjectPurgeable)( struct gl_context *ctx, struct gl_renderbuffer *obj, GLenum option ); + GLenum (*TextureObjectPurgeable)( struct gl_context *ctx, struct gl_texture_object *obj, GLenum option ); /* variations on ObjectUnpurgeable */ - GLenum (*BufferObjectUnpurgeable)( GLcontext *ctx, struct gl_buffer_object *obj, GLenum option ); - GLenum (*RenderObjectUnpurgeable)( GLcontext *ctx, struct gl_renderbuffer *obj, GLenum option ); - GLenum (*TextureObjectUnpurgeable)( GLcontext *ctx, struct gl_texture_object *obj, GLenum option ); + GLenum (*BufferObjectUnpurgeable)( struct gl_context *ctx, struct gl_buffer_object *obj, GLenum option ); + GLenum (*RenderObjectUnpurgeable)( struct gl_context *ctx, struct gl_renderbuffer *obj, GLenum option ); + GLenum (*TextureObjectUnpurgeable)( struct gl_context *ctx, struct gl_texture_object *obj, GLenum option ); /*@}*/ /** * \name Functions for GL_EXT_framebuffer_{object,blit}. */ /*@{*/ - struct gl_framebuffer * (*NewFramebuffer)(GLcontext *ctx, GLuint name); - struct gl_renderbuffer * (*NewRenderbuffer)(GLcontext *ctx, GLuint name); - void (*BindFramebuffer)(GLcontext *ctx, GLenum target, + struct gl_framebuffer * (*NewFramebuffer)(struct gl_context *ctx, GLuint name); + struct gl_renderbuffer * (*NewRenderbuffer)(struct gl_context *ctx, GLuint name); + void (*BindFramebuffer)(struct gl_context *ctx, GLenum target, struct gl_framebuffer *drawFb, struct gl_framebuffer *readFb); - void (*FramebufferRenderbuffer)(GLcontext *ctx, + void (*FramebufferRenderbuffer)(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb); - void (*RenderTexture)(GLcontext *ctx, + void (*RenderTexture)(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att); - void (*FinishRenderTexture)(GLcontext *ctx, + void (*FinishRenderTexture)(struct gl_context *ctx, struct gl_renderbuffer_attachment *att); - void (*ValidateFramebuffer)(GLcontext *ctx, + void (*ValidateFramebuffer)(struct gl_context *ctx, struct gl_framebuffer *fb); /*@}*/ - void (*BlitFramebuffer)(GLcontext *ctx, + void (*BlitFramebuffer)(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); @@ -809,12 +809,12 @@ struct dd_function_table { * \name Query objects */ /*@{*/ - struct gl_query_object * (*NewQueryObject)(GLcontext *ctx, GLuint id); - void (*DeleteQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*BeginQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*EndQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*CheckQuery)(GLcontext *ctx, struct gl_query_object *q); - void (*WaitQuery)(GLcontext *ctx, struct gl_query_object *q); + struct gl_query_object * (*NewQueryObject)(struct gl_context *ctx, GLuint id); + void (*DeleteQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*BeginQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*EndQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*CheckQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*WaitQuery)(struct gl_context *ctx, struct gl_query_object *q); /*@}*/ @@ -822,21 +822,21 @@ struct dd_function_table { * \name Vertex Array objects */ /*@{*/ - struct gl_array_object * (*NewArrayObject)(GLcontext *ctx, GLuint id); - void (*DeleteArrayObject)(GLcontext *ctx, struct gl_array_object *obj); - void (*BindArrayObject)(GLcontext *ctx, struct gl_array_object *obj); + struct gl_array_object * (*NewArrayObject)(struct gl_context *ctx, GLuint id); + void (*DeleteArrayObject)(struct gl_context *ctx, struct gl_array_object *obj); + void (*BindArrayObject)(struct gl_context *ctx, struct gl_array_object *obj); /*@}*/ /** * \name GLSL-related functions (ARB extensions and OpenGL 2.x) */ /*@{*/ - struct gl_shader *(*NewShader)(GLcontext *ctx, GLuint name, GLenum type); - void (*DeleteShader)(GLcontext *ctx, struct gl_shader *shader); - struct gl_shader_program *(*NewShaderProgram)(GLcontext *ctx, GLuint name); - void (*DeleteShaderProgram)(GLcontext *ctx, + struct gl_shader *(*NewShader)(struct gl_context *ctx, GLuint name, GLenum type); + void (*DeleteShader)(struct gl_context *ctx, struct gl_shader *shader); + struct gl_shader_program *(*NewShaderProgram)(struct gl_context *ctx, GLuint name); + void (*DeleteShaderProgram)(struct gl_context *ctx, struct gl_shader_program *shProg); - void (*UseProgram)(GLcontext *ctx, struct gl_shader_program *shProg); + void (*UseProgram)(struct gl_context *ctx, struct gl_shader_program *shProg); /*@}*/ @@ -862,7 +862,7 @@ struct dd_function_table { * This must be non-NULL if a driver installs a custom T&L module and sets * the dd_function_table::NeedValidate bitmask, but may be NULL otherwise. */ - void (*ValidateTnlModule)( GLcontext *ctx, GLuint new_state ); + void (*ValidateTnlModule)( struct gl_context *ctx, GLuint new_state ); #define PRIM_OUTSIDE_BEGIN_END (GL_POLYGON+1) @@ -889,7 +889,7 @@ struct dd_function_table { #define FLUSH_UPDATE_CURRENT 0x2 /** * Set by the driver-supplied T&L engine whenever vertices are buffered - * between glBegin()/glEnd() objects or __GLcontextRec::Current is not + * between glBegin()/glEnd() objects or __struct gl_contextRec::Current is not * updated. * * The dd_function_table::FlushVertices call below may be used to resolve @@ -902,32 +902,32 @@ struct dd_function_table { /* Called prior to any of the GLvertexformat functions being * called. Paired with Driver.FlushVertices(). */ - void (*BeginVertices)( GLcontext *ctx ); + void (*BeginVertices)( struct gl_context *ctx ); /** * If inside glBegin()/glEnd(), it should ASSERT(0). Otherwise, if * FLUSH_STORED_VERTICES bit in \p flags is set flushes any buffered * vertices, if FLUSH_UPDATE_CURRENT bit is set updates - * __GLcontextRec::Current and gl_light_attrib::Material + * __struct gl_contextRec::Current and gl_light_attrib::Material * * Note that the default T&L engine never clears the * FLUSH_UPDATE_CURRENT bit, even after performing the update. */ - void (*FlushVertices)( GLcontext *ctx, GLuint flags ); - void (*SaveFlushVertices)( GLcontext *ctx ); + void (*FlushVertices)( struct gl_context *ctx, GLuint flags ); + void (*SaveFlushVertices)( struct gl_context *ctx ); /** * Give the driver the opportunity to hook in its own vtxfmt for * compiling optimized display lists. This is called on each valid * glBegin() during list compilation. */ - GLboolean (*NotifySaveBegin)( GLcontext *ctx, GLenum mode ); + GLboolean (*NotifySaveBegin)( struct gl_context *ctx, GLenum mode ); /** * Notify driver that the special derived value _NeedEyeCoords has * changed. */ - void (*LightingSpaceChange)( GLcontext *ctx ); + void (*LightingSpaceChange)( struct gl_context *ctx ); /** * Called by glNewList(). @@ -935,64 +935,64 @@ struct dd_function_table { * Let the T&L component know what is going on with display lists * in time to make changes to dispatch tables, etc. */ - void (*NewList)( GLcontext *ctx, GLuint list, GLenum mode ); + void (*NewList)( struct gl_context *ctx, GLuint list, GLenum mode ); /** * Called by glEndList(). * * \sa dd_function_table::NewList. */ - void (*EndList)( GLcontext *ctx ); + void (*EndList)( struct gl_context *ctx ); /** * Called by glCallList(s). * * Notify the T&L component before and after calling a display list. */ - void (*BeginCallList)( GLcontext *ctx, + void (*BeginCallList)( struct gl_context *ctx, struct gl_display_list *dlist ); /** * Called by glEndCallList(). * * \sa dd_function_table::BeginCallList. */ - void (*EndCallList)( GLcontext *ctx ); + void (*EndCallList)( struct gl_context *ctx ); /** * \name GL_ARB_sync interfaces */ /*@{*/ - struct gl_sync_object * (*NewSyncObject)(GLcontext *, GLenum); - void (*FenceSync)(GLcontext *, struct gl_sync_object *, GLenum, GLbitfield); - void (*DeleteSyncObject)(GLcontext *, struct gl_sync_object *); - void (*CheckSync)(GLcontext *, struct gl_sync_object *); - void (*ClientWaitSync)(GLcontext *, struct gl_sync_object *, + struct gl_sync_object * (*NewSyncObject)(struct gl_context *, GLenum); + void (*FenceSync)(struct gl_context *, struct gl_sync_object *, GLenum, GLbitfield); + void (*DeleteSyncObject)(struct gl_context *, struct gl_sync_object *); + void (*CheckSync)(struct gl_context *, struct gl_sync_object *); + void (*ClientWaitSync)(struct gl_context *, struct gl_sync_object *, GLbitfield, GLuint64); - void (*ServerWaitSync)(GLcontext *, struct gl_sync_object *, + void (*ServerWaitSync)(struct gl_context *, struct gl_sync_object *, GLbitfield, GLuint64); /*@}*/ /** GL_NV_conditional_render */ - void (*BeginConditionalRender)(GLcontext *ctx, struct gl_query_object *q, + void (*BeginConditionalRender)(struct gl_context *ctx, struct gl_query_object *q, GLenum mode); - void (*EndConditionalRender)(GLcontext *ctx, struct gl_query_object *q); + void (*EndConditionalRender)(struct gl_context *ctx, struct gl_query_object *q); /** * \name GL_OES_draw_texture interface */ /*@{*/ - void (*DrawTex)(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, + void (*DrawTex)(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); /*@}*/ /** * \name GL_OES_EGL_image interface */ - void (*EGLImageTargetTexture2D)(GLcontext *ctx, GLenum target, + void (*EGLImageTargetTexture2D)(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLeglImageOES image_handle); - void (*EGLImageTargetRenderbufferStorage)(GLcontext *ctx, + void (*EGLImageTargetRenderbufferStorage)(struct gl_context *ctx, struct gl_renderbuffer *rb, void *image_handle); @@ -1000,18 +1000,18 @@ struct dd_function_table { * \name GL_EXT_transform_feedback interface */ struct gl_transform_feedback_object * - (*NewTransformFeedback)(GLcontext *ctx, GLuint name); - void (*DeleteTransformFeedback)(GLcontext *ctx, + (*NewTransformFeedback)(struct gl_context *ctx, GLuint name); + void (*DeleteTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*BeginTransformFeedback)(GLcontext *ctx, GLenum mode, + void (*BeginTransformFeedback)(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj); - void (*EndTransformFeedback)(GLcontext *ctx, + void (*EndTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*PauseTransformFeedback)(GLcontext *ctx, + void (*PauseTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*ResumeTransformFeedback)(GLcontext *ctx, + void (*ResumeTransformFeedback)(struct gl_context *ctx, struct gl_transform_feedback_object *obj); - void (*DrawTransformFeedback)(GLcontext *ctx, GLenum mode, + void (*DrawTransformFeedback)(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj); }; diff --git a/src/mesa/main/debug.c b/src/mesa/main/debug.c index 4205c7a4b7..a7e65f8d3a 100644 --- a/src/mesa/main/debug.c +++ b/src/mesa/main/debug.c @@ -233,7 +233,7 @@ static void add_debug_flags( const char *debug ) void -_mesa_init_debug( GLcontext *ctx ) +_mesa_init_debug( struct gl_context *ctx ) { char *c; @@ -578,7 +578,7 @@ _mesa_dump_stencil_buffer(const char *filename) * Quick and dirty function to "print" a texture to stdout. */ void -_mesa_print_texture(GLcontext *ctx, const struct gl_texture_image *img) +_mesa_print_texture(struct gl_context *ctx, const struct gl_texture_image *img) { #if CHAN_TYPE != GL_UNSIGNED_BYTE _mesa_problem(NULL, "PrintTexture not supported"); diff --git a/src/mesa/main/debug.h b/src/mesa/main/debug.h index b517cc8259..e3bb4dfe81 100644 --- a/src/mesa/main/debug.h +++ b/src/mesa/main/debug.h @@ -45,7 +45,7 @@ extern void _mesa_print_tri_caps( const char *name, GLuint flags ); extern void _mesa_print_enable_flags( const char *msg, GLuint flags ); extern void _mesa_print_state( const char *msg, GLuint state ); extern void _mesa_print_info( void ); -extern void _mesa_init_debug( GLcontext *ctx ); +extern void _mesa_init_debug( struct gl_context *ctx ); #else @@ -79,6 +79,6 @@ extern void _mesa_dump_stencil_buffer(const char *filename); extern void -_mesa_print_texture(GLcontext *ctx, const struct gl_texture_image *img); +_mesa_print_texture(struct gl_context *ctx, const struct gl_texture_image *img); #endif diff --git a/src/mesa/main/depth.c b/src/mesa/main/depth.c index f187205b97..c5a910e144 100644 --- a/src/mesa/main/depth.c +++ b/src/mesa/main/depth.c @@ -153,7 +153,7 @@ _mesa_DepthBoundsEXT( GLclampd zmin, GLclampd zmax ) * Initialize the depth buffer attribute group in the given context. */ void -_mesa_init_depth(GLcontext *ctx) +_mesa_init_depth(struct gl_context *ctx) { ctx->Depth.Test = GL_FALSE; ctx->Depth.Clear = 1.0; diff --git a/src/mesa/main/depth.h b/src/mesa/main/depth.h index dcc0b4637a..d61d3b121b 100644 --- a/src/mesa/main/depth.h +++ b/src/mesa/main/depth.h @@ -50,7 +50,7 @@ extern void GLAPIENTRY _mesa_DepthBoundsEXT( GLclampd zmin, GLclampd zmax ); extern void -_mesa_init_depth( GLcontext * ctx ); +_mesa_init_depth( struct gl_context * ctx ); #else diff --git a/src/mesa/main/depthstencil.c b/src/mesa/main/depthstencil.c index dbaa841645..c5466dc9fc 100644 --- a/src/mesa/main/depthstencil.c +++ b/src/mesa/main/depthstencil.c @@ -46,7 +46,7 @@ static void * -nop_get_pointer(GLcontext *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) +nop_get_pointer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { (void) ctx; (void) rb; @@ -73,7 +73,7 @@ delete_wrapper(struct gl_renderbuffer *rb) * Realloc storage for wrapper. */ static GLboolean -alloc_wrapper_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +alloc_wrapper_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { /* just pass this on to the wrapped renderbuffer */ @@ -103,7 +103,7 @@ alloc_wrapper_storage(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void -get_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +get_row_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, GLint x, GLint y, void *values) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -130,7 +130,7 @@ get_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -get_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +get_values_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, const GLint x[], const GLint y[], void *values) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -155,7 +155,7 @@ get_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +put_row_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -206,7 +206,7 @@ put_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_mono_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +put_mono_row_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { struct gl_renderbuffer *dsrb = z24rb->Wrapped; @@ -260,7 +260,7 @@ put_mono_row_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, +put_values_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -313,7 +313,7 @@ put_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, GLuint count, } static void -put_mono_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, +put_mono_values_z24(struct gl_context *ctx, struct gl_renderbuffer *z24rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -348,7 +348,7 @@ put_mono_values_z24(GLcontext *ctx, struct gl_renderbuffer *z24rb, * \return new depth renderbuffer */ struct gl_renderbuffer * -_mesa_new_z24_renderbuffer_wrapper(GLcontext *ctx, +_mesa_new_z24_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb) { struct gl_renderbuffer *z24rb; @@ -396,7 +396,7 @@ _mesa_new_z24_renderbuffer_wrapper(GLcontext *ctx, */ static void -get_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +get_row_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, GLint x, GLint y, void *values) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -423,7 +423,7 @@ get_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -get_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +get_values_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, const GLint x[], const GLint y[], void *values) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -448,7 +448,7 @@ get_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_row_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -499,7 +499,7 @@ put_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_mono_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_mono_row_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { struct gl_renderbuffer *dsrb = s8rb->Wrapped; @@ -550,7 +550,7 @@ put_mono_row_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_values_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -603,7 +603,7 @@ put_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, } static void -put_mono_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, +put_mono_values_s8(struct gl_context *ctx, struct gl_renderbuffer *s8rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -637,7 +637,7 @@ put_mono_values_s8(GLcontext *ctx, struct gl_renderbuffer *s8rb, GLuint count, * \return new stencil renderbuffer */ struct gl_renderbuffer * -_mesa_new_s8_renderbuffer_wrapper(GLcontext *ctx, struct gl_renderbuffer *dsrb) +_mesa_new_s8_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb) { struct gl_renderbuffer *s8rb; @@ -698,7 +698,7 @@ _mesa_new_s8_renderbuffer_wrapper(GLcontext *ctx, struct gl_renderbuffer *dsrb) * (either 8-bit or 32-bit) */ void -_mesa_extract_stencil(GLcontext *ctx, +_mesa_extract_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb) { @@ -747,7 +747,7 @@ _mesa_extract_stencil(GLcontext *ctx, * \param stencilRb the source stencil buffer (either 8-bit or 32-bit) */ void -_mesa_insert_stencil(GLcontext *ctx, +_mesa_insert_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb) { @@ -803,7 +803,7 @@ _mesa_insert_stencil(GLcontext *ctx, * \param stencilRb the stencil renderbuffer to promote */ void -_mesa_promote_stencil(GLcontext *ctx, struct gl_renderbuffer *stencilRb) +_mesa_promote_stencil(struct gl_context *ctx, struct gl_renderbuffer *stencilRb) { const GLsizei width = stencilRb->Width; const GLsizei height = stencilRb->Height; diff --git a/src/mesa/main/depthstencil.h b/src/mesa/main/depthstencil.h index afbac77f0e..4db5868263 100644 --- a/src/mesa/main/depthstencil.h +++ b/src/mesa/main/depthstencil.h @@ -29,29 +29,29 @@ #include "mtypes.h" extern struct gl_renderbuffer * -_mesa_new_z24_renderbuffer_wrapper(GLcontext *ctx, +_mesa_new_z24_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb); extern struct gl_renderbuffer * -_mesa_new_s8_renderbuffer_wrapper(GLcontext *ctx, +_mesa_new_s8_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb); extern void -_mesa_extract_stencil(GLcontext *ctx, +_mesa_extract_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb); extern void -_mesa_insert_stencil(GLcontext *ctx, +_mesa_insert_stencil(struct gl_context *ctx, struct gl_renderbuffer *dsRb, struct gl_renderbuffer *stencilRb); extern void -_mesa_promote_stencil(GLcontext *ctx, struct gl_renderbuffer *stencilRb); +_mesa_promote_stencil(struct gl_context *ctx, struct gl_renderbuffer *stencilRb); #endif /* DEPTHSTENCIL_H */ diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 3a730f0e40..f513f31c56 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -52,7 +52,6 @@ #include "hash.h" #include "image.h" #include "light.h" -#include "dlist.h" #include "macros.h" #include "queryobj.h" #include "teximage.h" @@ -78,9 +77,9 @@ struct gl_list_instruction { GLuint Size; - void (*Execute)( GLcontext *ctx, void *data ); - void (*Destroy)( GLcontext *ctx, void *data ); - void (*Print)( GLcontext *ctx, void *data ); + void (*Execute)( struct gl_context *ctx, void *data ); + void (*Destroy)( struct gl_context *ctx, void *data ); + void (*Print)( struct gl_context *ctx, void *data ); }; @@ -497,7 +496,7 @@ make_list(GLuint name, GLuint count) * Lookup function to just encapsulate casting. */ static INLINE struct gl_display_list * -lookup_list(GLcontext *ctx, GLuint list) +lookup_list(struct gl_context *ctx, GLuint list) { return (struct gl_display_list *) _mesa_HashLookup(ctx->Shared->DisplayList, list); @@ -514,7 +513,7 @@ is_ext_opcode(OpCode opcode) /** Destroy an extended opcode instruction */ static GLint -ext_opcode_destroy(GLcontext *ctx, Node *node) +ext_opcode_destroy(struct gl_context *ctx, Node *node) { const GLint i = node[0].opcode - OPCODE_EXT_0; GLint step; @@ -526,7 +525,7 @@ ext_opcode_destroy(GLcontext *ctx, Node *node) /** Execute an extended opcode instruction */ static GLint -ext_opcode_execute(GLcontext *ctx, Node *node) +ext_opcode_execute(struct gl_context *ctx, Node *node) { const GLint i = node[0].opcode - OPCODE_EXT_0; GLint step; @@ -538,7 +537,7 @@ ext_opcode_execute(GLcontext *ctx, Node *node) /** Print an extended opcode instruction */ static GLint -ext_opcode_print(GLcontext *ctx, Node *node) +ext_opcode_print(struct gl_context *ctx, Node *node) { const GLint i = node[0].opcode - OPCODE_EXT_0; GLint step; @@ -553,7 +552,7 @@ ext_opcode_print(GLcontext *ctx, Node *node) * \param dlist - display list pointer */ void -_mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist) +_mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist) { Node *n, *block; GLboolean done; @@ -731,7 +730,7 @@ _mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist) * \param list - display list number */ static void -destroy_list(GLcontext *ctx, GLuint list) +destroy_list(struct gl_context *ctx, GLuint list) { struct gl_display_list *dlist; @@ -815,7 +814,7 @@ translate_id(GLsizei n, GLenum type, const GLvoid * list) * If we run out of memory, GL_OUT_OF_MEMORY will be recorded. */ static GLvoid * -unpack_image(GLcontext *ctx, GLuint dimensions, +unpack_image(struct gl_context *ctx, GLuint dimensions, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels, const struct gl_pixelstore_attrib *unpack) @@ -867,7 +866,7 @@ unpack_image(GLcontext *ctx, GLuint dimensions, * \return pointer to allocated memory (the opcode space) */ static Node * -dlist_alloc(GLcontext *ctx, OpCode opcode, GLuint bytes) +dlist_alloc(struct gl_context *ctx, OpCode opcode, GLuint bytes) { const GLuint numNodes = 1 + (bytes + sizeof(Node) - 1) / sizeof(Node); Node *n; @@ -918,7 +917,7 @@ dlist_alloc(GLcontext *ctx, OpCode opcode, GLuint bytes) * opcode). */ void * -_mesa_dlist_alloc(GLcontext *ctx, GLuint opcode, GLuint bytes) +_mesa_dlist_alloc(struct gl_context *ctx, GLuint opcode, GLuint bytes) { Node *n = dlist_alloc(ctx, (OpCode) opcode, bytes); if (n) @@ -939,11 +938,11 @@ _mesa_dlist_alloc(GLcontext *ctx, GLuint opcode, GLuint bytes) * \return the new opcode number or -1 if error */ GLint -_mesa_dlist_alloc_opcode(GLcontext *ctx, +_mesa_dlist_alloc_opcode(struct gl_context *ctx, GLuint size, - void (*execute) (GLcontext *, void *), - void (*destroy) (GLcontext *, void *), - void (*print) (GLcontext *, void *)) + void (*execute) (struct gl_context *, void *), + void (*destroy) (struct gl_context *, void *), + void (*print) (struct gl_context *, void *)) { if (ctx->ListExt->NumOpcodes < MAX_DLIST_EXT_OPCODES) { const GLuint i = ctx->ListExt->NumOpcodes++; @@ -968,7 +967,7 @@ _mesa_dlist_alloc_opcode(GLcontext *ctx, * \return pointer to start of instruction space */ static INLINE Node * -alloc_instruction(GLcontext *ctx, OpCode opcode, GLuint nparams) +alloc_instruction(struct gl_context *ctx, OpCode opcode, GLuint nparams) { return dlist_alloc(ctx, opcode, nparams * sizeof(Node)); } @@ -1133,7 +1132,7 @@ save_BlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) } } -static void invalidate_saved_current_state( GLcontext *ctx ) +static void invalidate_saved_current_state( struct gl_context *ctx ) { GLint i; @@ -6796,7 +6795,7 @@ save_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, * command that provoked the error. I don't see this as a problem. */ static void -save_error(GLcontext *ctx, GLenum error, const char *s) +save_error(struct gl_context *ctx, GLenum error, const char *s) { Node *n; n = alloc_instruction(ctx, OPCODE_ERROR, 2); @@ -6811,7 +6810,7 @@ save_error(GLcontext *ctx, GLenum error, const char *s) * Compile an error into current display list. */ void -_mesa_compile_error(GLcontext *ctx, GLenum error, const char *s) +_mesa_compile_error(struct gl_context *ctx, GLenum error, const char *s) { if (ctx->CompileFlag) save_error(ctx, error, s); @@ -6824,7 +6823,7 @@ _mesa_compile_error(GLcontext *ctx, GLenum error, const char *s) * Test if ID names a display list. */ static GLboolean -islist(GLcontext *ctx, GLuint list) +islist(struct gl_context *ctx, GLuint list) { if (list > 0 && lookup_list(ctx, list)) { return GL_TRUE; @@ -6848,7 +6847,7 @@ islist(GLcontext *ctx, GLuint list) * \param list - display list number */ static void -execute_list(GLcontext *ctx, GLuint list) +execute_list(struct gl_context *ctx, GLuint list) { struct gl_display_list *dlist; Node *n; @@ -9578,7 +9577,7 @@ enum_string(GLenum k) * TODO: many commands aren't handled yet. */ static void GLAPIENTRY -print_list(GLcontext *ctx, GLuint list) +print_list(struct gl_context *ctx, GLuint list) { struct gl_display_list *dlist; Node *n; @@ -9970,7 +9969,7 @@ void _mesa_init_dlist_dispatch(struct _glapi_table *disp) * Initialize display list state for given context. */ void -_mesa_init_display_list(GLcontext *ctx) +_mesa_init_display_list(struct gl_context *ctx) { static GLboolean tableInitialized = GL_FALSE; @@ -10000,7 +9999,7 @@ _mesa_init_display_list(GLcontext *ctx) void -_mesa_free_display_list_data(GLcontext *ctx) +_mesa_free_display_list_data(struct gl_context *ctx) { free(ctx->ListExt); ctx->ListExt = NULL; diff --git a/src/mesa/main/dlist.h b/src/mesa/main/dlist.h index 86bb132e56..24241a4bd4 100644 --- a/src/mesa/main/dlist.h +++ b/src/mesa/main/dlist.h @@ -49,16 +49,16 @@ extern void GLAPIENTRY _mesa_CallList( GLuint list ); extern void GLAPIENTRY _mesa_CallLists( GLsizei n, GLenum type, const GLvoid *lists ); -extern void _mesa_compile_error( GLcontext *ctx, GLenum error, const char *s ); +extern void _mesa_compile_error( struct gl_context *ctx, GLenum error, const char *s ); -extern void *_mesa_dlist_alloc(GLcontext *ctx, GLuint opcode, GLuint sz); +extern void *_mesa_dlist_alloc(struct gl_context *ctx, GLuint opcode, GLuint sz); -extern GLint _mesa_dlist_alloc_opcode( GLcontext *ctx, GLuint sz, - void (*execute)( GLcontext *, void * ), - void (*destroy)( GLcontext *, void * ), - void (*print)( GLcontext *, void * ) ); +extern GLint _mesa_dlist_alloc_opcode( struct gl_context *ctx, GLuint sz, + void (*execute)( struct gl_context *, void * ), + void (*destroy)( struct gl_context *, void * ), + void (*print)( struct gl_context *, void * ) ); -extern void _mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist); +extern void _mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist); extern void _mesa_save_vtxfmt_init( GLvertexformat *vfmt ); @@ -76,7 +76,7 @@ extern void _mesa_init_dlist_dispatch(struct _glapi_table *disp); #define _MESA_INIT_DLIST_VTXFMT(vfmt, impl) do { } while (0) static INLINE void -_mesa_delete_list(GLcontext *ctx, struct gl_display_list *dlist) +_mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist) { /* there should be no list to delete */ ASSERT_NO_FEATURE(); @@ -95,9 +95,9 @@ _mesa_init_dlist_dispatch(struct _glapi_table *disp) #endif /* FEATURE_dlist */ -extern void _mesa_init_display_list( GLcontext * ctx ); +extern void _mesa_init_display_list( struct gl_context * ctx ); -extern void _mesa_free_display_list_data(GLcontext *ctx); +extern void _mesa_free_display_list_data(struct gl_context *ctx); #endif /* DLIST_H */ diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c index bf36a7e7a4..ac92a3fb08 100644 --- a/src/mesa/main/drawpix.c +++ b/src/mesa/main/drawpix.c @@ -43,7 +43,7 @@ * \return GL_TRUE if valid, GL_FALSE otherwise */ static GLboolean -valid_fragment_program(GLcontext *ctx) +valid_fragment_program(struct gl_context *ctx) { return !(ctx->FragmentProgram.Enabled && !ctx->FragmentProgram._Enabled); } diff --git a/src/mesa/main/drawtex.c b/src/mesa/main/drawtex.c index c2ad5f2386..b9afc9974e 100644 --- a/src/mesa/main/drawtex.c +++ b/src/mesa/main/drawtex.c @@ -30,7 +30,7 @@ static void -draw_texture(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, +draw_texture(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) { if (!ctx->Extensions.OES_draw_texture) { diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index b2be44830a..5a5b199df3 100644 --- a/src/mesa/main/enable.c +++ b/src/mesa/main/enable.c @@ -50,7 +50,7 @@ * Helper to enable/disable client-side state. */ static void -client_state(GLcontext *ctx, GLenum cap, GLboolean state) +client_state(struct gl_context *ctx, GLenum cap, GLboolean state) { struct gl_array_object *arrayObj = ctx->Array.ArrayObj; GLuint flag; @@ -207,7 +207,7 @@ _mesa_DisableClientState( GLenum cap ) * higher than the number of supported coordinate units. And we'll return NULL. */ static struct gl_texture_unit * -get_texcoord_unit(GLcontext *ctx) +get_texcoord_unit(struct gl_context *ctx) { if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) { _mesa_error(ctx, GL_INVALID_OPERATION, "glEnable/Disable(texcoord unit)"); @@ -225,7 +225,7 @@ get_texcoord_unit(GLcontext *ctx) * \return GL_TRUE if state is changing or GL_FALSE if no change */ static GLboolean -enable_texture(GLcontext *ctx, GLboolean state, GLbitfield texBit) +enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit) { struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); const GLbitfield newenabled = state @@ -253,7 +253,7 @@ enable_texture(GLcontext *ctx, GLboolean state, GLbitfield texBit) * dd_function_table::Enable. */ void -_mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state) +_mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state) { if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "%s %s (newstate is %x)\n", @@ -1005,7 +1005,7 @@ _mesa_Disable( GLenum cap ) * Enable/disable an indexed state var. */ void -_mesa_set_enablei(GLcontext *ctx, GLenum cap, GLuint index, GLboolean state) +_mesa_set_enablei(struct gl_context *ctx, GLenum cap, GLuint index, GLboolean state) { ASSERT(state == 0 || state == 1); switch (cap) { @@ -1095,7 +1095,7 @@ _mesa_IsEnabledIndexed( GLenum cap, GLuint index ) * Helper function to determine whether a texture target is enabled. */ static GLboolean -is_texture_enabled(GLcontext *ctx, GLbitfield bit) +is_texture_enabled(struct gl_context *ctx, GLbitfield bit) { const struct gl_texture_unit *const texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; diff --git a/src/mesa/main/enable.h b/src/mesa/main/enable.h index 24e3181a8b..69e52b1cb2 100644 --- a/src/mesa/main/enable.h +++ b/src/mesa/main/enable.h @@ -36,7 +36,7 @@ extern void -_mesa_set_enable( GLcontext* ctx, GLenum cap, GLboolean state ); +_mesa_set_enable( struct gl_context* ctx, GLenum cap, GLboolean state ); extern void GLAPIENTRY _mesa_Disable( GLenum cap ); @@ -48,7 +48,7 @@ extern GLboolean GLAPIENTRY _mesa_IsEnabled( GLenum cap ); extern void -_mesa_set_enablei(GLcontext *ctx, GLenum cap, GLuint index, GLboolean state); +_mesa_set_enablei(struct gl_context *ctx, GLenum cap, GLuint index, GLboolean state); extern void GLAPIENTRY _mesa_DisableIndexed( GLenum cap, GLuint index ); diff --git a/src/mesa/main/eval.c b/src/mesa/main/eval.c index bd2e1177fd..c607e6a26a 100644 --- a/src/mesa/main/eval.c +++ b/src/mesa/main/eval.c @@ -100,7 +100,7 @@ GLuint _mesa_evaluator_components( GLenum target ) * Return pointer to the gl_1d_map struct for the named target. */ static struct gl_1d_map * -get_1d_map( GLcontext *ctx, GLenum target ) +get_1d_map( struct gl_context *ctx, GLenum target ) { switch (target) { case GL_MAP1_VERTEX_3: @@ -150,7 +150,7 @@ get_1d_map( GLcontext *ctx, GLenum target ) * Return pointer to the gl_2d_map struct for the named target. */ static struct gl_2d_map * -get_2d_map( GLcontext *ctx, GLenum target ) +get_2d_map( struct gl_context *ctx, GLenum target ) { switch (target) { case GL_MAP2_VERTEX_3: @@ -880,7 +880,7 @@ init_2d_map( struct gl_2d_map *map, int n, const float *initial ) } -void _mesa_init_eval( GLcontext *ctx ) +void _mesa_init_eval( struct gl_context *ctx ) { int i; @@ -952,7 +952,7 @@ void _mesa_init_eval( GLcontext *ctx ) } -void _mesa_free_eval_data( GLcontext *ctx ) +void _mesa_free_eval_data( struct gl_context *ctx ) { int i; diff --git a/src/mesa/main/eval.h b/src/mesa/main/eval.h index ffd1bab76d..bd908f00cd 100644 --- a/src/mesa/main/eval.h +++ b/src/mesa/main/eval.h @@ -57,7 +57,7 @@ extern GLuint _mesa_evaluator_components( GLenum target ); -extern void gl_free_control_points( GLcontext *ctx, +extern void gl_free_control_points( struct gl_context *ctx, GLenum target, GLfloat *data ); @@ -103,8 +103,8 @@ _mesa_init_eval_dispatch(struct _glapi_table *disp) #endif /* FEATURE_evaluators */ -extern void _mesa_init_eval( GLcontext *ctx ); -extern void _mesa_free_eval_data( GLcontext *ctx ); +extern void _mesa_init_eval( struct gl_context *ctx ); +extern void _mesa_free_eval_data( struct gl_context *ctx ); #endif /* EVAL_H */ diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 9b723ef74b..bc8cbef132 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -52,12 +52,12 @@ static const struct { { ON, "GL_ARB_draw_buffers", F(ARB_draw_buffers) }, { OFF, "GL_ARB_draw_elements_base_vertex", F(ARB_draw_elements_base_vertex) }, { OFF, "GL_ARB_draw_instanced", F(ARB_draw_instanced) }, + { OFF, "GL_ARB_explicit_attrib_location", F(ARB_explicit_attrib_location) }, { OFF, "GL_ARB_fragment_coord_conventions", F(ARB_fragment_coord_conventions) }, { OFF, "GL_ARB_fragment_program", F(ARB_fragment_program) }, { OFF, "GL_ARB_fragment_program_shadow", F(ARB_fragment_program_shadow) }, { OFF, "GL_ARB_fragment_shader", F(ARB_fragment_shader) }, { OFF, "GL_ARB_framebuffer_object", F(ARB_framebuffer_object) }, - { OFF, "GL_ARB_explicit_attrib_location", F(ARB_explicit_attrib_location) }, /* TODO: reenable this when the new GLSL compiler actually supports them */ /* { OFF, "GL_ARB_geometry_shader4", F(ARB_geometry_shader4) }, */ { OFF, "GL_ARB_half_float_pixel", F(ARB_half_float_pixel) }, @@ -75,6 +75,7 @@ static const struct { { OFF, "GL_ARB_sampler_objects", F(ARB_sampler_objects) }, { OFF, "GL_ARB_seamless_cube_map", F(ARB_seamless_cube_map) }, { OFF, "GL_ARB_shader_objects", F(ARB_shader_objects) }, + { OFF, "GL_ARB_shader_stencil_export", F(ARB_shader_stencil_export) }, { OFF, "GL_ARB_shading_language_100", F(ARB_shading_language_100) }, { OFF, "GL_ARB_shadow", F(ARB_shadow) }, { OFF, "GL_ARB_shadow_ambient", F(ARB_shadow_ambient) }, @@ -82,6 +83,7 @@ static const struct { { OFF, "GL_ARB_texture_border_clamp", F(ARB_texture_border_clamp) }, { OFF, "GL_ARB_texture_buffer_object", F(ARB_texture_buffer_object) }, { ON, "GL_ARB_texture_compression", F(ARB_texture_compression) }, + { OFF, "GL_ARB_texture_compression_rgtc", F(ARB_texture_compression_rgtc) }, { OFF, "GL_ARB_texture_cube_map", F(ARB_texture_cube_map) }, { OFF, "GL_ARB_texture_env_add", F(EXT_texture_env_add) }, { OFF, "GL_ARB_texture_env_combine", F(ARB_texture_env_combine) }, @@ -147,7 +149,7 @@ static const struct { { ON, "GL_EXT_texture3D", F(EXT_texture3D) }, { OFF, "GL_EXT_texture_array", F(EXT_texture_array) }, { OFF, "GL_EXT_texture_compression_s3tc", F(EXT_texture_compression_s3tc) }, - { OFF, "GL_EXT_texture_compression_rgtc", F(EXT_texture_compression_rgtc) }, + { OFF, "GL_EXT_texture_compression_rgtc", F(ARB_texture_compression_rgtc) }, { OFF, "GL_EXT_texture_cube_map", F(ARB_texture_cube_map) }, { ON, "GL_EXT_texture_edge_clamp", F(SGIS_texture_edge_clamp) }, { OFF, "GL_EXT_texture_env_add", F(EXT_texture_env_add) }, @@ -210,6 +212,7 @@ static const struct { { ON, "GL_SGIS_texture_lod", F(SGIS_texture_lod) }, { ON, "GL_SUN_multi_draw_arrays", F(EXT_multi_draw_arrays) }, { OFF, "GL_S3_s3tc", F(S3_s3tc) }, + { OFF, "GL_EXT_texture_format_BGRA8888", F(EXT_texture_format_BGRA8888) }, #if FEATURE_OES_EGL_image { OFF, "GL_OES_EGL_image", F(OES_EGL_image) }, #endif @@ -225,13 +228,14 @@ static const struct { * This is a convenience function used by the XMesa, OSMesa, GGI drivers, etc. */ void -_mesa_enable_sw_extensions(GLcontext *ctx) +_mesa_enable_sw_extensions(struct gl_context *ctx) { /*ctx->Extensions.ARB_copy_buffer = GL_TRUE;*/ ctx->Extensions.ARB_depth_clamp = GL_TRUE; ctx->Extensions.ARB_depth_texture = GL_TRUE; /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ ctx->Extensions.ARB_draw_elements_base_vertex = GL_TRUE; + ctx->Extensions.ARB_explicit_attrib_location = GL_TRUE; ctx->Extensions.ARB_fragment_coord_conventions = GL_TRUE; #if FEATURE_ARB_fragment_program ctx->Extensions.ARB_fragment_program = GL_TRUE; @@ -270,6 +274,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx) /*ctx->Extensions.ARB_texture_float = GL_TRUE;*/ ctx->Extensions.ARB_texture_mirrored_repeat = GL_TRUE; ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; + ctx->Extensions.ARB_texture_rg = GL_TRUE; ctx->Extensions.ARB_vertex_array_object = GL_TRUE; #if FEATURE_ARB_vertex_program ctx->Extensions.ARB_vertex_program = GL_TRUE; @@ -383,7 +388,7 @@ _mesa_enable_sw_extensions(GLcontext *ctx) * Enable common EXT extensions in the ARB_imaging subset. */ void -_mesa_enable_imaging_extensions(GLcontext *ctx) +_mesa_enable_imaging_extensions(struct gl_context *ctx) { ctx->Extensions.EXT_blend_color = GL_TRUE; ctx->Extensions.EXT_blend_logic_op = GL_TRUE; @@ -398,7 +403,7 @@ _mesa_enable_imaging_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_1_3_extensions(GLcontext *ctx) +_mesa_enable_1_3_extensions(struct gl_context *ctx) { /*ctx->Extensions.ARB_multisample = GL_TRUE;*/ ctx->Extensions.ARB_multitexture = GL_TRUE; @@ -418,7 +423,7 @@ _mesa_enable_1_3_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_1_4_extensions(GLcontext *ctx) +_mesa_enable_1_4_extensions(struct gl_context *ctx) { ctx->Extensions.ARB_depth_texture = GL_TRUE; ctx->Extensions.ARB_shadow = GL_TRUE; @@ -444,7 +449,7 @@ _mesa_enable_1_4_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_1_5_extensions(GLcontext *ctx) +_mesa_enable_1_5_extensions(struct gl_context *ctx) { ctx->Extensions.ARB_occlusion_query = GL_TRUE; /*ctx->Extensions.ARB_vertex_buffer_object = GL_TRUE;*/ @@ -457,7 +462,7 @@ _mesa_enable_1_5_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_2_0_extensions(GLcontext *ctx) +_mesa_enable_2_0_extensions(struct gl_context *ctx) { /*ctx->Extensions.ARB_draw_buffers = GL_TRUE;*/ #if FEATURE_ARB_fragment_shader @@ -484,7 +489,7 @@ _mesa_enable_2_0_extensions(GLcontext *ctx) * A convenience function to be called by drivers. */ void -_mesa_enable_2_1_extensions(GLcontext *ctx) +_mesa_enable_2_1_extensions(struct gl_context *ctx) { #if FEATURE_EXT_pixel_buffer_object ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; @@ -500,7 +505,7 @@ _mesa_enable_2_1_extensions(GLcontext *ctx) * \return GL_TRUE for success, GL_FALSE if invalid extension name */ static GLboolean -set_extension( GLcontext *ctx, const char *name, GLboolean state ) +set_extension( struct gl_context *ctx, const char *name, GLboolean state ) { GLboolean *base = (GLboolean *) &ctx->Extensions; GLuint i; @@ -529,7 +534,7 @@ set_extension( GLcontext *ctx, const char *name, GLboolean state ) * Typically called by drivers. */ void -_mesa_enable_extension( GLcontext *ctx, const char *name ) +_mesa_enable_extension( struct gl_context *ctx, const char *name ) { if (!set_extension(ctx, name, GL_TRUE)) _mesa_problem(ctx, "Trying to enable unknown extension: %s", name); @@ -541,7 +546,7 @@ _mesa_enable_extension( GLcontext *ctx, const char *name ) * XXX is this really needed??? */ void -_mesa_disable_extension( GLcontext *ctx, const char *name ) +_mesa_disable_extension( struct gl_context *ctx, const char *name ) { if (!set_extension(ctx, name, GL_FALSE)) _mesa_problem(ctx, "Trying to disable unknown extension: %s", name); @@ -552,7 +557,7 @@ _mesa_disable_extension( GLcontext *ctx, const char *name ) * Check if the i-th extension is enabled. */ static GLboolean -extension_enabled(GLcontext *ctx, GLuint index) +extension_enabled(struct gl_context *ctx, GLuint index) { const GLboolean *base = (const GLboolean *) &ctx->Extensions; if (!default_extensions[index].flag_offset || @@ -569,7 +574,7 @@ extension_enabled(GLcontext *ctx, GLuint index) * Test if the named extension is enabled in this context. */ GLboolean -_mesa_extension_is_enabled( GLcontext *ctx, const char *name ) +_mesa_extension_is_enabled( struct gl_context *ctx, const char *name ) { GLuint i; @@ -611,7 +616,7 @@ append(const char *a, const char *b) * Return a string of the unknown/leftover names. */ static const char * -get_extension_override( GLcontext *ctx ) +get_extension_override( struct gl_context *ctx ) { const char *envExt = _mesa_getenv("MESA_EXTENSION_OVERRIDE"); char *extraExt = NULL; @@ -662,7 +667,7 @@ get_extension_override( GLcontext *ctx ) * To be called during context initialization. */ void -_mesa_init_extensions( GLcontext *ctx ) +_mesa_init_extensions( struct gl_context *ctx ) { GLboolean *base = (GLboolean *) &ctx->Extensions; GLuint i; @@ -681,7 +686,7 @@ _mesa_init_extensions( GLcontext *ctx ) * glGetString(GL_EXTENSIONS) is called. */ static GLubyte * -compute_extensions( GLcontext *ctx ) +compute_extensions( struct gl_context *ctx ) { const char *extraExt = get_extension_override(ctx); GLuint extStrLen = 0; @@ -748,7 +753,7 @@ append_extension(GLubyte **str, const char *ext) static size_t -make_extension_string_es1(const GLcontext *ctx, GLubyte *str) +make_extension_string_es1(const struct gl_context *ctx, GLubyte *str) { size_t len = 0; @@ -830,7 +835,7 @@ make_extension_string_es1(const GLcontext *ctx, GLubyte *str) static GLubyte * -compute_extensions_es1(const GLcontext *ctx) +compute_extensions_es1(const struct gl_context *ctx) { GLubyte *s; unsigned int len; @@ -845,7 +850,7 @@ compute_extensions_es1(const GLcontext *ctx) } static size_t -make_extension_string_es2(const GLcontext *ctx, GLubyte *str) +make_extension_string_es2(const struct gl_context *ctx, GLubyte *str) { size_t len = 0; @@ -892,11 +897,14 @@ make_extension_string_es2(const GLcontext *ctx, GLubyte *str) len += append_extension(&str, "GL_OES_EGL_image"); #endif + if (ctx->Extensions.EXT_texture_format_BGRA8888) + len += append_extension(&str, "GL_EXT_texture_format_BGRA8888"); + return len; } static GLubyte * -compute_extensions_es2(GLcontext *ctx) +compute_extensions_es2(struct gl_context *ctx) { GLubyte *s; unsigned int len; @@ -912,7 +920,7 @@ compute_extensions_es2(GLcontext *ctx) GLubyte * -_mesa_make_extension_string(GLcontext *ctx) +_mesa_make_extension_string(struct gl_context *ctx) { switch (ctx->API) { case API_OPENGL: @@ -931,7 +939,7 @@ _mesa_make_extension_string(GLcontext *ctx) * Return number of enabled extensions. */ GLuint -_mesa_get_extension_count(GLcontext *ctx) +_mesa_get_extension_count(struct gl_context *ctx) { GLuint i; @@ -956,7 +964,7 @@ _mesa_get_extension_count(GLcontext *ctx) * Return name of i-th enabled extension */ const GLubyte * -_mesa_get_enabled_extension(GLcontext *ctx, GLuint index) +_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index) { GLuint i; diff --git a/src/mesa/main/extensions.h b/src/mesa/main/extensions.h index a25472440d..6eb8539396 100644 --- a/src/mesa/main/extensions.h +++ b/src/mesa/main/extensions.h @@ -40,35 +40,35 @@ #if _HAVE_FULL_GL -extern void _mesa_enable_sw_extensions(GLcontext *ctx); +extern void _mesa_enable_sw_extensions(struct gl_context *ctx); -extern void _mesa_enable_imaging_extensions(GLcontext *ctx); +extern void _mesa_enable_imaging_extensions(struct gl_context *ctx); -extern void _mesa_enable_1_3_extensions(GLcontext *ctx); +extern void _mesa_enable_1_3_extensions(struct gl_context *ctx); -extern void _mesa_enable_1_4_extensions(GLcontext *ctx); +extern void _mesa_enable_1_4_extensions(struct gl_context *ctx); -extern void _mesa_enable_1_5_extensions(GLcontext *ctx); +extern void _mesa_enable_1_5_extensions(struct gl_context *ctx); -extern void _mesa_enable_2_0_extensions(GLcontext *ctx); +extern void _mesa_enable_2_0_extensions(struct gl_context *ctx); -extern void _mesa_enable_2_1_extensions(GLcontext *ctx); +extern void _mesa_enable_2_1_extensions(struct gl_context *ctx); -extern void _mesa_enable_extension(GLcontext *ctx, const char *name); +extern void _mesa_enable_extension(struct gl_context *ctx, const char *name); -extern void _mesa_disable_extension(GLcontext *ctx, const char *name); +extern void _mesa_disable_extension(struct gl_context *ctx, const char *name); -extern GLboolean _mesa_extension_is_enabled(GLcontext *ctx, const char *name); +extern GLboolean _mesa_extension_is_enabled(struct gl_context *ctx, const char *name); -extern void _mesa_init_extensions(GLcontext *ctx); +extern void _mesa_init_extensions(struct gl_context *ctx); -extern GLubyte *_mesa_make_extension_string(GLcontext *ctx); +extern GLubyte *_mesa_make_extension_string(struct gl_context *ctx); extern GLuint -_mesa_get_extension_count(GLcontext *ctx); +_mesa_get_extension_count(struct gl_context *ctx); extern const GLubyte * -_mesa_get_enabled_extension(GLcontext *ctx, GLuint index); +_mesa_get_enabled_extension(struct gl_context *ctx, GLuint index); #else diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 5201f50252..3dc78f2bf5 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -95,7 +95,7 @@ delete_dummy_framebuffer(struct gl_framebuffer *fb) void -_mesa_init_fbobjects(GLcontext *ctx) +_mesa_init_fbobjects(struct gl_context *ctx) { _glthread_INIT_MUTEX(DummyFramebuffer.Mutex); _glthread_INIT_MUTEX(DummyRenderbuffer.Mutex); @@ -115,7 +115,7 @@ _mesa_get_incomplete_framebuffer(void) * Helper routine for getting a gl_renderbuffer. */ struct gl_renderbuffer * -_mesa_lookup_renderbuffer(GLcontext *ctx, GLuint id) +_mesa_lookup_renderbuffer(struct gl_context *ctx, GLuint id) { struct gl_renderbuffer *rb; @@ -132,7 +132,7 @@ _mesa_lookup_renderbuffer(GLcontext *ctx, GLuint id) * Helper routine for getting a gl_framebuffer. */ struct gl_framebuffer * -_mesa_lookup_framebuffer(GLcontext *ctx, GLuint id) +_mesa_lookup_framebuffer(struct gl_context *ctx, GLuint id) { struct gl_framebuffer *fb; @@ -166,7 +166,7 @@ invalidate_framebuffer(struct gl_framebuffer *fb) * the depth buffer attachment point. */ struct gl_renderbuffer_attachment * -_mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_get_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment) { GLuint i; @@ -216,7 +216,7 @@ _mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb, * window-system framebuffer (not user-created framebuffer objects). */ static struct gl_renderbuffer_attachment * -_mesa_get_fb0_attachment(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_get_fb0_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment) { assert(fb->Name == 0); @@ -255,7 +255,7 @@ _mesa_get_fb0_attachment(GLcontext *ctx, struct gl_framebuffer *fb, * point. Update reference counts, etc. */ void -_mesa_remove_attachment(GLcontext *ctx, struct gl_renderbuffer_attachment *att) +_mesa_remove_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) { if (att->Type == GL_TEXTURE) { ASSERT(att->Texture); @@ -281,7 +281,7 @@ _mesa_remove_attachment(GLcontext *ctx, struct gl_renderbuffer_attachment *att) * The previous binding, if any, will be removed first. */ void -_mesa_set_texture_attachment(GLcontext *ctx, +_mesa_set_texture_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att, struct gl_texture_object *texObj, @@ -322,7 +322,7 @@ _mesa_set_texture_attachment(GLcontext *ctx, * The previous binding, if any, will be removed first. */ void -_mesa_set_renderbuffer_attachment(GLcontext *ctx, +_mesa_set_renderbuffer_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att, struct gl_renderbuffer *rb) { @@ -340,7 +340,7 @@ _mesa_set_renderbuffer_attachment(GLcontext *ctx, * Attach a renderbuffer object to a framebuffer object. */ void -_mesa_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb) { struct gl_renderbuffer_attachment *att; @@ -406,7 +406,7 @@ fbo_incomplete(const char *msg, int index) * if GL_STENCIL, this is a stencil component attachment point. */ static void -test_attachment_completeness(const GLcontext *ctx, GLenum format, +test_attachment_completeness(const struct gl_context *ctx, GLenum format, struct gl_renderbuffer_attachment *att) { assert(format == GL_COLOR || format == GL_DEPTH || format == GL_STENCIL); @@ -451,7 +451,11 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format, if (baseFormat != GL_RGB && baseFormat != GL_RGBA && (!ctx->Extensions.ARB_framebuffer_object || - baseFormat != GL_ALPHA)) { + baseFormat != GL_ALPHA) && + (!ctx->Extensions.ARB_texture_rg || + baseFormat != GL_RED) && + (!ctx->Extensions.ARB_texture_rg || + baseFormat != GL_RG)) { att_incomplete("bad format"); att->Complete = GL_FALSE; return; @@ -559,7 +563,7 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format, * framebuffer is complete. */ void -_mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb) +_mesa_test_framebuffer_completeness(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint numImages; GLenum intFormat = GL_NONE; /* color buffers' internal format */ @@ -631,7 +635,9 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb) numImages++; if (f != GL_RGB && f != GL_RGBA && f != GL_DEPTH_COMPONENT && f != GL_DEPTH_STENCIL_EXT - && (!ctx->Extensions.ARB_framebuffer_object || f != GL_ALPHA)) { + && (!ctx->Extensions.ARB_framebuffer_object || f != GL_ALPHA) + && (!ctx->Extensions.ARB_texture_rg || f != GL_RED) + && (!ctx->Extensions.ARB_texture_rg || f != GL_RG)) { fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT; fbo_incomplete("texture attachment incomplete", -1); return; @@ -827,7 +833,7 @@ _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer) * The spec calls for unbinding. */ static void -detach_renderbuffer(GLcontext *ctx, +detach_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer *rb) { @@ -928,7 +934,7 @@ _mesa_GenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers) * we'll also return GL_RED and GL_RG. */ GLenum -_mesa_base_fbo_format(GLcontext *ctx, GLenum internalFormat) +_mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat) { switch (internalFormat) { case GL_ALPHA: @@ -1281,7 +1287,7 @@ _mesa_IsFramebufferEXT(GLuint framebuffer) * attachments. */ static void -check_begin_texture_render(GLcontext *ctx, struct gl_framebuffer *fb) +check_begin_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint i; ASSERT(ctx->Driver.RenderTexture); @@ -1306,7 +1312,7 @@ check_begin_texture_render(GLcontext *ctx, struct gl_framebuffer *fb) * notify the device driver that the texture image may have changed. */ static void -check_end_texture_render(GLcontext *ctx, struct gl_framebuffer *fb) +check_end_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb) { if (fb->Name == 0) return; /* can't render to texture with winsys framebuffers */ @@ -1600,7 +1606,7 @@ _mesa_CheckFramebufferStatusEXT(GLenum target) * Common code called by glFramebufferTexture1D/2D/3DEXT(). */ static void -framebuffer_texture(GLcontext *ctx, const char *caller, GLenum target, +framebuffer_texture(struct gl_context *ctx, const char *caller, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) { diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index 9850ee9aa2..9e18e538a6 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -29,47 +29,47 @@ #include "mtypes.h" extern void -_mesa_init_fbobjects(GLcontext *ctx); +_mesa_init_fbobjects(struct gl_context *ctx); extern struct gl_framebuffer * _mesa_get_incomplete_framebuffer(void); extern struct gl_renderbuffer * -_mesa_lookup_renderbuffer(GLcontext *ctx, GLuint id); +_mesa_lookup_renderbuffer(struct gl_context *ctx, GLuint id); extern struct gl_framebuffer * -_mesa_lookup_framebuffer(GLcontext *ctx, GLuint id); +_mesa_lookup_framebuffer(struct gl_context *ctx, GLuint id); extern struct gl_renderbuffer_attachment * -_mesa_get_attachment(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_get_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment); extern void -_mesa_remove_attachment(GLcontext *ctx, +_mesa_remove_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att); extern void -_mesa_set_texture_attachment(GLcontext *ctx, +_mesa_set_texture_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att, struct gl_texture_object *texObj, GLenum texTarget, GLuint level, GLuint zoffset); extern void -_mesa_set_renderbuffer_attachment(GLcontext *ctx, +_mesa_set_renderbuffer_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att, struct gl_renderbuffer *rb); extern void -_mesa_framebuffer_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb); extern void -_mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb); +_mesa_test_framebuffer_completeness(struct gl_context *ctx, struct gl_framebuffer *fb); extern GLenum -_mesa_base_fbo_format(GLcontext *ctx, GLenum internalFormat); +_mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat); extern GLboolean GLAPIENTRY _mesa_IsRenderbufferEXT(GLuint renderbuffer); diff --git a/src/mesa/main/feedback.c b/src/mesa/main/feedback.c index c72b91280e..ffdecaecc2 100644 --- a/src/mesa/main/feedback.c +++ b/src/mesa/main/feedback.c @@ -116,7 +116,7 @@ _mesa_PassThrough( GLfloat token ) * Put a vertex into the feedback buffer. */ void -_mesa_feedback_vertex(GLcontext *ctx, +_mesa_feedback_vertex(struct gl_context *ctx, const GLfloat win[4], const GLfloat color[4], const GLfloat texcoord[4]) @@ -159,7 +159,7 @@ _mesa_feedback_vertex(GLcontext *ctx, * \note this function can't be put in a display list. * * Verifies we're not in selection mode, flushes the vertices and initialize - * the fields in __GLcontextRec::Select with the given buffer. + * the fields in __struct gl_contextRec::Select with the given buffer. */ static void GLAPIENTRY _mesa_SelectBuffer( GLsizei size, GLuint *buffer ) @@ -192,7 +192,7 @@ _mesa_SelectBuffer( GLsizei size, GLuint *buffer ) * increments the pointer. */ static INLINE void -write_record(GLcontext *ctx, GLuint value) +write_record(struct gl_context *ctx, GLuint value) { if (ctx->Select.BufferCount < ctx->Select.BufferSize) { ctx->Select.Buffer[ctx->Select.BufferCount] = value; @@ -211,7 +211,7 @@ write_record(GLcontext *ctx, GLuint value) * gl_selection::HitMaxZ. */ void -_mesa_update_hitflag(GLcontext *ctx, GLfloat z) +_mesa_update_hitflag(struct gl_context *ctx, GLfloat z) { ctx->Select.HitFlag = GL_TRUE; if (z < ctx->Select.HitMinZ) { @@ -235,7 +235,7 @@ _mesa_update_hitflag(GLcontext *ctx, GLfloat z) * \sa gl_selection. */ static void -write_hit_record(GLcontext *ctx) +write_hit_record(struct gl_context *ctx) { GLuint i; GLuint zmin, zmax, zscale = (~0u); @@ -266,7 +266,7 @@ write_hit_record(GLcontext *ctx) * * Verifies we are in select mode and resets the name stack depth and resets * the hit record data in gl_selection. Marks new render mode in - * __GLcontextRec::NewState. + * __struct gl_contextRec::NewState. */ static void GLAPIENTRY _mesa_InitNames( void ) @@ -297,7 +297,7 @@ _mesa_InitNames( void ) * Flushes vertices. If there is a hit flag writes it (via write_hit_record()), * and replace the top-most name in the stack. * - * sa __GLcontextRec::Select. + * sa __struct gl_contextRec::Select. */ static void GLAPIENTRY _mesa_LoadName( GLuint name ) @@ -336,7 +336,7 @@ _mesa_LoadName( GLuint name ) * Flushes vertices. If there is a hit flag writes it (via write_hit_record()), * and adds the name to the top of the name stack. * - * sa __GLcontextRec::Select. + * sa __struct gl_contextRec::Select. */ static void GLAPIENTRY _mesa_PushName( GLuint name ) @@ -367,7 +367,7 @@ _mesa_PushName( GLuint name ) * Flushes vertices. If there is a hit flag writes it (via write_hit_record()), * and removes top-most name in the name stack. * - * sa __GLcontextRec::Select. + * sa __struct gl_contextRec::Select. */ static void GLAPIENTRY _mesa_PopName( void ) @@ -409,7 +409,7 @@ _mesa_PopName( void ) * Flushes the vertices and do the necessary cleanup according to the previous * rasterization mode, such as writing the hit record or resent the select * buffer index when exiting the select mode. Updates - * __GLcontextRec::RenderMode and notifies the driver via the + * __struct gl_contextRec::RenderMode and notifies the driver via the * dd_function_table::RenderMode callback. */ static GLint GLAPIENTRY @@ -519,7 +519,7 @@ _mesa_init_feedback_dispatch(struct _glapi_table *disp) /** * Initialize context feedback data. */ -void _mesa_init_feedback( GLcontext * ctx ) +void _mesa_init_feedback( struct gl_context * ctx ) { /* Feedback */ ctx->Feedback.Type = GL_2D; /* TODO: verify */ diff --git a/src/mesa/main/feedback.h b/src/mesa/main/feedback.h index c6354b97bc..f9fbbce70b 100644 --- a/src/mesa/main/feedback.h +++ b/src/mesa/main/feedback.h @@ -33,14 +33,14 @@ #if FEATURE_feedback extern void -_mesa_feedback_vertex( GLcontext *ctx, +_mesa_feedback_vertex( struct gl_context *ctx, const GLfloat win[4], const GLfloat color[4], const GLfloat texcoord[4] ); static INLINE void -_mesa_feedback_token( GLcontext *ctx, GLfloat token ) +_mesa_feedback_token( struct gl_context *ctx, GLfloat token ) { if (ctx->Feedback.Count < ctx->Feedback.BufferSize) { ctx->Feedback.Buffer[ctx->Feedback.Count] = token; @@ -50,7 +50,7 @@ _mesa_feedback_token( GLcontext *ctx, GLfloat token ) extern void -_mesa_update_hitflag( GLcontext *ctx, GLfloat z ); +_mesa_update_hitflag( struct gl_context *ctx, GLfloat z ); extern void @@ -61,7 +61,7 @@ _mesa_init_feedback_dispatch(struct _glapi_table *disp); #include "main/compiler.h" static INLINE void -_mesa_feedback_vertex( GLcontext *ctx, +_mesa_feedback_vertex( struct gl_context *ctx, const GLfloat win[4], const GLfloat color[4], const GLfloat texcoord[4] ) @@ -72,14 +72,14 @@ _mesa_feedback_vertex( GLcontext *ctx, static INLINE void -_mesa_feedback_token( GLcontext *ctx, GLfloat token ) +_mesa_feedback_token( struct gl_context *ctx, GLfloat token ) { /* render mode is always GL_RENDER */ ASSERT_NO_FEATURE(); } static INLINE void -_mesa_update_hitflag( GLcontext *ctx, GLfloat z ) +_mesa_update_hitflag( struct gl_context *ctx, GLfloat z ) { /* render mode is always GL_RENDER */ ASSERT_NO_FEATURE(); @@ -93,6 +93,6 @@ _mesa_init_feedback_dispatch(struct _glapi_table *disp) #endif /* FEATURE_feedback */ extern void -_mesa_init_feedback( GLcontext *ctx ); +_mesa_init_feedback( struct gl_context *ctx ); #endif /* FEEDBACK_H */ diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c index 92fec09bad..0f2c313c81 100644 --- a/src/mesa/main/ffvertex_prog.c +++ b/src/mesa/main/ffvertex_prog.c @@ -109,7 +109,7 @@ static GLuint translate_texgen( GLboolean enabled, GLenum mode ) -static GLboolean check_active_shininess( GLcontext *ctx, +static GLboolean check_active_shininess( struct gl_context *ctx, const struct state_key *key, GLuint side ) { @@ -129,7 +129,7 @@ static GLboolean check_active_shininess( GLcontext *ctx, } -static void make_state_key( GLcontext *ctx, struct state_key *key ) +static void make_state_key( struct gl_context *ctx, struct state_key *key ) { const struct gl_fragment_program *fp; GLuint i; @@ -1638,7 +1638,7 @@ create_new_program( const struct state_key *key, * XXX move this into core mesa (main/) */ struct gl_vertex_program * -_mesa_get_fixed_func_vertex_program(GLcontext *ctx) +_mesa_get_fixed_func_vertex_program(struct gl_context *ctx) { struct gl_vertex_program *prog; struct state_key key; diff --git a/src/mesa/main/ffvertex_prog.h b/src/mesa/main/ffvertex_prog.h index 38dc5fbb8d..72cd6ea115 100644 --- a/src/mesa/main/ffvertex_prog.h +++ b/src/mesa/main/ffvertex_prog.h @@ -33,7 +33,7 @@ #include "main/mtypes.h" struct gl_vertex_program * -_mesa_get_fixed_func_vertex_program(GLcontext *ctx); +_mesa_get_fixed_func_vertex_program(struct gl_context *ctx); diff --git a/src/mesa/main/fog.c b/src/mesa/main/fog.c index 9f26c012d6..fd64bd1fd8 100644 --- a/src/mesa/main/fog.c +++ b/src/mesa/main/fog.c @@ -178,7 +178,7 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params ) /***** Initialization *****/ /**********************************************************************/ -void _mesa_init_fog( GLcontext * ctx ) +void _mesa_init_fog( struct gl_context * ctx ) { /* Fog group */ ctx->Fog.Enabled = GL_FALSE; diff --git a/src/mesa/main/fog.h b/src/mesa/main/fog.h index a14d19cdb3..7df4f0b673 100644 --- a/src/mesa/main/fog.h +++ b/src/mesa/main/fog.h @@ -54,7 +54,7 @@ _mesa_Fogfv(GLenum pname, const GLfloat *params ); extern void GLAPIENTRY _mesa_Fogiv(GLenum pname, const GLint *params ); -extern void _mesa_init_fog( GLcontext * ctx ); +extern void _mesa_init_fog( struct gl_context * ctx ); #else diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c index 9db9f1c56e..654ea038a5 100644 --- a/src/mesa/main/formats.c +++ b/src/mesa/main/formats.c @@ -321,6 +321,60 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] = 1, 1, 2 /* BlockWidth/Height,Bytes */ }, { + MESA_FORMAT_R8, + "MESA_FORMAT_R8", + GL_RED, + GL_UNSIGNED_NORMALIZED, + 8, 0, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 1 + }, + { + MESA_FORMAT_RG88, + "MESA_FORMAT_RG88", + GL_RG, + GL_UNSIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 2 + }, + { + MESA_FORMAT_RG88_REV, + "MESA_FORMAT_RG88_REV", + GL_RG, + GL_UNSIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 2 + }, + { + MESA_FORMAT_R16, + "MESA_FORMAT_R16", + GL_RED, + GL_UNSIGNED_NORMALIZED, + 16, 0, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 2 + }, + { + MESA_FORMAT_RG1616, + "MESA_FORMAT_RG1616", + GL_RG, + GL_UNSIGNED_NORMALIZED, + 16, 16, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 4 + }, + { + MESA_FORMAT_RG1616_REV, + "MESA_FORMAT_RG1616_REV", + GL_RG, + GL_UNSIGNED_NORMALIZED, + 16, 16, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 4 + }, + { MESA_FORMAT_Z24_S8, /* Name */ "MESA_FORMAT_Z24_S8", /* StrName */ GL_DEPTH_STENCIL, /* BaseFormat */ @@ -1073,6 +1127,22 @@ _mesa_test_formats(void) assert(info->LuminanceBits == 0); assert(info->IntensityBits == 0); } + else if (info->BaseFormat == GL_RG) { + assert(info->RedBits > 0); + assert(info->GreenBits > 0); + assert(info->BlueBits == 0); + assert(info->AlphaBits == 0); + assert(info->LuminanceBits == 0); + assert(info->IntensityBits == 0); + } + else if (info->BaseFormat == GL_RED) { + assert(info->RedBits > 0); + assert(info->GreenBits == 0); + assert(info->BlueBits == 0); + assert(info->AlphaBits == 0); + assert(info->LuminanceBits == 0); + assert(info->IntensityBits == 0); + } else if (info->BaseFormat == GL_LUMINANCE) { assert(info->RedBits == 0); assert(info->GreenBits == 0); @@ -1137,16 +1207,25 @@ _mesa_format_to_type_and_comps(gl_format format, case MESA_FORMAT_AL88: case MESA_FORMAT_AL88_REV: + case MESA_FORMAT_RG88: + case MESA_FORMAT_RG88_REV: *datatype = GL_UNSIGNED_BYTE; *comps = 2; return; case MESA_FORMAT_AL1616: case MESA_FORMAT_AL1616_REV: + case MESA_FORMAT_RG1616: + case MESA_FORMAT_RG1616_REV: *datatype = GL_UNSIGNED_SHORT; *comps = 2; return; + case MESA_FORMAT_R16: + *datatype = GL_UNSIGNED_SHORT; + *comps = 1; + return; + case MESA_FORMAT_RGB332: *datatype = GL_UNSIGNED_BYTE_3_3_2; *comps = 3; @@ -1156,6 +1235,7 @@ _mesa_format_to_type_and_comps(gl_format format, case MESA_FORMAT_L8: case MESA_FORMAT_I8: case MESA_FORMAT_CI8: + case MESA_FORMAT_R8: *datatype = GL_UNSIGNED_BYTE; *comps = 1; return; @@ -1259,11 +1339,11 @@ _mesa_format_to_type_and_comps(gl_format format, case MESA_FORMAT_SRGBA_DXT3: case MESA_FORMAT_SRGBA_DXT5: #endif +#endif /* XXX generate error instead? */ *datatype = GL_UNSIGNED_BYTE; *comps = 0; return; -#endif case MESA_FORMAT_RGBA_FLOAT32: *datatype = GL_FLOAT; diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index e9467f486b..7674d8eaa4 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -76,6 +76,12 @@ typedef enum MESA_FORMAT_CI8, /* CCCC CCCC */ MESA_FORMAT_YCBCR, /* YYYY YYYY UorV UorV */ MESA_FORMAT_YCBCR_REV, /* UorV UorV YYYY YYYY */ + MESA_FORMAT_R8, /* RRRR RRRR */ + MESA_FORMAT_RG88, /* RRRR RRRR GGGG GGGG */ + MESA_FORMAT_RG88_REV, /* GGGG GGGG RRRR RRRR */ + MESA_FORMAT_R16, /* RRRR RRRR RRRR RRRR */ + MESA_FORMAT_RG1616, /* RRRR RRRR RRRR RRRR GGGG GGGG GGGG GGGG */ + MESA_FORMAT_RG1616_REV, /* GGGG GGGG GGGG GGGG RRRR RRRR RRRR RRRR */ MESA_FORMAT_Z24_S8, /* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */ MESA_FORMAT_S8_Z24, /* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */ MESA_FORMAT_Z16, /* ZZZZ ZZZZ ZZZZ ZZZZ */ diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c index a98c09cfbf..af3b5dfcf9 100644 --- a/src/mesa/main/framebuffer.c +++ b/src/mesa/main/framebuffer.c @@ -83,7 +83,7 @@ compute_depth_max(struct gl_framebuffer *fb) * \sa _mesa_new_framebuffer */ struct gl_framebuffer * -_mesa_create_framebuffer(const GLvisual *visual) +_mesa_create_framebuffer(const struct gl_config *visual) { struct gl_framebuffer *fb = CALLOC_STRUCT(gl_framebuffer); assert(visual); @@ -102,7 +102,7 @@ _mesa_create_framebuffer(const GLvisual *visual) * \sa _mesa_create_framebuffer */ struct gl_framebuffer * -_mesa_new_framebuffer(GLcontext *ctx, GLuint name) +_mesa_new_framebuffer(struct gl_context *ctx, GLuint name) { struct gl_framebuffer *fb; (void) ctx; @@ -122,7 +122,7 @@ _mesa_new_framebuffer(GLcontext *ctx, GLuint name) */ void _mesa_initialize_window_framebuffer(struct gl_framebuffer *fb, - const GLvisual *visual) + const struct gl_config *visual) { assert(fb); assert(visual); @@ -281,7 +281,7 @@ _mesa_reference_framebuffer(struct gl_framebuffer **ptr, * without a currently bound rendering context. */ void -_mesa_resize_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_resize_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height) { GLuint i; @@ -359,7 +359,7 @@ _mesa_resize_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, * from device drivers (as was done in the past). */ void -_mesa_resizebuffers( GLcontext *ctx ) +_mesa_resizebuffers( struct gl_context *ctx ) { ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx ); @@ -372,7 +372,7 @@ _mesa_resizebuffers( GLcontext *ctx ) if (ctx->WinSysDrawBuffer) { GLuint newWidth, newHeight; - GLframebuffer *buffer = ctx->WinSysDrawBuffer; + struct gl_framebuffer *buffer = ctx->WinSysDrawBuffer; assert(buffer->Name == 0); @@ -389,7 +389,7 @@ _mesa_resizebuffers( GLcontext *ctx ) if (ctx->WinSysReadBuffer && ctx->WinSysReadBuffer != ctx->WinSysDrawBuffer) { GLuint newWidth, newHeight; - GLframebuffer *buffer = ctx->WinSysReadBuffer; + struct gl_framebuffer *buffer = ctx->WinSysReadBuffer; assert(buffer->Name == 0); @@ -429,7 +429,7 @@ _mesa_ResizeBuffersMESA( void ) * window-system framebuffes. */ static void -update_framebuffer_size(GLcontext *ctx, struct gl_framebuffer *fb) +update_framebuffer_size(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint minWidth = ~0, minHeight = ~0; GLuint i; @@ -464,7 +464,7 @@ update_framebuffer_size(GLcontext *ctx, struct gl_framebuffer *fb) * \param ctx the GL context. */ void -_mesa_update_draw_buffer_bounds(GLcontext *ctx) +_mesa_update_draw_buffer_bounds(struct gl_context *ctx) { struct gl_framebuffer *buffer = ctx->DrawBuffer; @@ -600,7 +600,7 @@ _mesa_update_framebuffer_visual(struct gl_framebuffer *fb) * \param attIndex indicates the renderbuffer to possibly wrap */ void -_mesa_update_depth_buffer(GLcontext *ctx, +_mesa_update_depth_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex) { @@ -641,7 +641,7 @@ _mesa_update_depth_buffer(GLcontext *ctx, * \param attIndex indicates the renderbuffer to possibly wrap */ void -_mesa_update_stencil_buffer(GLcontext *ctx, +_mesa_update_stencil_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex) { @@ -722,7 +722,7 @@ _mesa_update_stencil_buffer(GLcontext *ctx, * writing colors. */ static void -update_color_draw_buffers(GLcontext *ctx, struct gl_framebuffer *fb) +update_color_draw_buffers(struct gl_context *ctx, struct gl_framebuffer *fb) { GLuint output; @@ -746,7 +746,7 @@ update_color_draw_buffers(GLcontext *ctx, struct gl_framebuffer *fb) * Unlike the DrawBuffer, we can only read from one (or zero) color buffers. */ static void -update_color_read_buffer(GLcontext *ctx, struct gl_framebuffer *fb) +update_color_read_buffer(struct gl_context *ctx, struct gl_framebuffer *fb) { (void) ctx; if (fb->_ColorReadBufferIndex == -1 || @@ -781,7 +781,7 @@ update_color_read_buffer(GLcontext *ctx, struct gl_framebuffer *fb) * glRenderbufferStorageEXT. */ static void -update_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) +update_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb) { if (fb->Name == 0) { /* This is a window-system framebuffer */ @@ -823,7 +823,7 @@ update_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) * Update state related to the current draw/read framebuffers. */ void -_mesa_update_framebuffer(GLcontext *ctx) +_mesa_update_framebuffer(struct gl_context *ctx) { struct gl_framebuffer *drawFb; struct gl_framebuffer *readFb; @@ -846,7 +846,7 @@ _mesa_update_framebuffer(GLcontext *ctx) * \return GL_TRUE if buffer exists, GL_FALSE otherwise */ GLboolean -_mesa_source_buffer_exists(GLcontext *ctx, GLenum format) +_mesa_source_buffer_exists(struct gl_context *ctx, GLenum format) { const struct gl_renderbuffer_attachment *att = ctx->ReadBuffer->Attachment; @@ -922,7 +922,7 @@ _mesa_source_buffer_exists(GLcontext *ctx, GLenum format) * XXX could do some code merging w/ above function. */ GLboolean -_mesa_dest_buffer_exists(GLcontext *ctx, GLenum format) +_mesa_dest_buffer_exists(struct gl_context *ctx, GLenum format) { const struct gl_renderbuffer_attachment *att = ctx->DrawBuffer->Attachment; @@ -993,7 +993,7 @@ _mesa_dest_buffer_exists(GLcontext *ctx, GLenum format) * Used to answer the GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES query. */ GLenum -_mesa_get_color_read_format(GLcontext *ctx) +_mesa_get_color_read_format(struct gl_context *ctx) { switch (ctx->ReadBuffer->_ColorReadBuffer->Format) { case MESA_FORMAT_ARGB8888: @@ -1010,7 +1010,7 @@ _mesa_get_color_read_format(GLcontext *ctx) * Used to answer the GL_IMPLEMENTATION_COLOR_READ_TYPE_OES query. */ GLenum -_mesa_get_color_read_type(GLcontext *ctx) +_mesa_get_color_read_type(struct gl_context *ctx) { switch (ctx->ReadBuffer->_ColorReadBuffer->Format) { case MESA_FORMAT_ARGB8888: diff --git a/src/mesa/main/framebuffer.h b/src/mesa/main/framebuffer.h index 2e9844282f..13722ea457 100644 --- a/src/mesa/main/framebuffer.h +++ b/src/mesa/main/framebuffer.h @@ -29,14 +29,14 @@ #include "mtypes.h" extern struct gl_framebuffer * -_mesa_create_framebuffer(const GLvisual *visual); +_mesa_create_framebuffer(const struct gl_config *visual); extern struct gl_framebuffer * -_mesa_new_framebuffer(GLcontext *ctx, GLuint name); +_mesa_new_framebuffer(struct gl_context *ctx, GLuint name); extern void _mesa_initialize_window_framebuffer(struct gl_framebuffer *fb, - const GLvisual *visual); + const struct gl_config *visual); extern void _mesa_initialize_user_framebuffer(struct gl_framebuffer *fb, GLuint name); @@ -52,45 +52,45 @@ _mesa_reference_framebuffer(struct gl_framebuffer **ptr, struct gl_framebuffer *fb); extern void -_mesa_resize_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_resize_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height); extern void -_mesa_resizebuffers( GLcontext *ctx ); +_mesa_resizebuffers( struct gl_context *ctx ); extern void GLAPIENTRY _mesa_ResizeBuffersMESA( void ); extern void -_mesa_update_draw_buffer_bounds(GLcontext *ctx); +_mesa_update_draw_buffer_bounds(struct gl_context *ctx); extern void _mesa_update_framebuffer_visual(struct gl_framebuffer *fb); extern void -_mesa_update_depth_buffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_update_depth_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex); extern void -_mesa_update_stencil_buffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_update_stencil_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint attIndex); extern void -_mesa_update_framebuffer(GLcontext *ctx); +_mesa_update_framebuffer(struct gl_context *ctx); extern GLboolean -_mesa_source_buffer_exists(GLcontext *ctx, GLenum format); +_mesa_source_buffer_exists(struct gl_context *ctx, GLenum format); extern GLboolean -_mesa_dest_buffer_exists(GLcontext *ctx, GLenum format); +_mesa_dest_buffer_exists(struct gl_context *ctx, GLenum format); extern GLenum -_mesa_get_color_read_type(GLcontext *ctx); +_mesa_get_color_read_type(struct gl_context *ctx); extern GLenum -_mesa_get_color_read_format(GLcontext *ctx); +_mesa_get_color_read_format(struct gl_context *ctx); extern void _mesa_print_framebuffer(const struct gl_framebuffer *fb); diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index cb456fb64d..8224c15627 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -36,17 +36,17 @@ /* This is a table driven implemetation of the glGet*v() functions. * The basic idea is that most getters just look up an int somewhere - * in GLcontext and then convert it to a bool or float according to + * in struct gl_context and then convert it to a bool or float according to * which of glGetIntegerv() glGetBooleanv() etc is being called. * Instead of generating code to do this, we can just record the enum - * value and the offset into GLcontext in an array of structs. Then + * value and the offset into struct gl_context in an array of structs. Then * in glGet*(), we lookup the struct for the enum in question, and use * the offset to get the int we need. * * Sometimes we need to look up a float, a boolean, a bit in a * bitfield, a matrix or other types instead, so we need to track the - * type of the value in GLcontext. And sometimes the value isn't in - * GLcontext but in the drawbuffer, the array object, current texture + * type of the value in struct gl_context. And sometimes the value isn't in + * struct gl_context but in the drawbuffer, the array object, current texture * unit, or maybe it's a computed value. So we need to also track * where or how to find the value. Finally, we sometimes need to * check that one of a number of extensions are enabled, the GL @@ -165,7 +165,7 @@ union value { #define BUFFER_FIELD(field, type) \ LOC_BUFFER, type, offsetof(struct gl_framebuffer, field) #define CONTEXT_FIELD(field, type) \ - LOC_CONTEXT, type, offsetof(GLcontext, field) + LOC_CONTEXT, type, offsetof(struct gl_context, field) #define ARRAY_FIELD(field, type) \ LOC_ARRAY, type, offsetof(struct gl_array_object, field) #define CONST(value) \ @@ -371,7 +371,7 @@ static const struct value_desc values[] = { { GL_MAX_ELEMENTS_VERTICES, CONTEXT_INT(Const.MaxArrayLockSize), NO_EXTRA }, { GL_MAX_ELEMENTS_INDICES, CONTEXT_INT(Const.MaxArrayLockSize), NO_EXTRA }, { GL_MAX_TEXTURE_SIZE, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.MaxTextureLevels), NO_EXTRA }, + offsetof(struct gl_context, Const.MaxTextureLevels), NO_EXTRA }, { GL_MAX_VIEWPORT_DIMS, CONTEXT_INT2(Const.MaxViewportWidth), NO_EXTRA }, { GL_PACK_ALIGNMENT, CONTEXT_INT(Pack.Alignment), NO_EXTRA }, { GL_ALIASED_POINT_SIZE_RANGE, CONTEXT_FLOAT2(Const.MinPointSize), NO_EXTRA }, @@ -410,7 +410,7 @@ static const struct value_desc values[] = { { GL_TEXTURE_BINDING_CUBE_MAP_ARB, LOC_CUSTOM, TYPE_INT, TEXTURE_CUBE_INDEX, extra_ARB_texture_cube_map }, { GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.MaxCubeTextureLevels), + offsetof(struct gl_context, Const.MaxCubeTextureLevels), extra_ARB_texture_cube_map }, /* XXX: OES_texture_cube_map */ /* XXX: OES_blend_subtract */ @@ -522,7 +522,7 @@ static const struct value_desc values[] = { { GL_MAX_TEXTURE_STACK_DEPTH, CONST(MAX_TEXTURE_STACK_DEPTH), NO_EXTRA }, { GL_MODELVIEW_MATRIX, CONTEXT_MATRIX(ModelviewMatrixStack.Top), NO_EXTRA }, { GL_MODELVIEW_STACK_DEPTH, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, ModelviewMatrixStack.Depth), NO_EXTRA }, + offsetof(struct gl_context, ModelviewMatrixStack.Depth), NO_EXTRA }, { GL_NORMALIZE, CONTEXT_BOOL(Transform.Normalize), NO_EXTRA }, { GL_PACK_SKIP_IMAGES_EXT, CONTEXT_INT(Pack.SkipImages), NO_EXTRA }, { GL_PERSPECTIVE_CORRECTION_HINT, CONTEXT_ENUM(Hint.PerspectiveCorrection), NO_EXTRA }, @@ -535,7 +535,7 @@ static const struct value_desc values[] = { { GL_POINT_FADE_THRESHOLD_SIZE_EXT, CONTEXT_FLOAT(Point.Threshold), NO_EXTRA }, { GL_PROJECTION_MATRIX, CONTEXT_MATRIX(ProjectionMatrixStack.Top), NO_EXTRA }, { GL_PROJECTION_STACK_DEPTH, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, ProjectionMatrixStack.Depth), NO_EXTRA }, + offsetof(struct gl_context, ProjectionMatrixStack.Depth), NO_EXTRA }, { GL_RESCALE_NORMAL, CONTEXT_BOOL(Transform.RescaleNormals), NO_EXTRA }, { GL_SHADE_MODEL, CONTEXT_ENUM(Light.ShadeModel), NO_EXTRA }, { GL_TEXTURE_2D, LOC_CUSTOM, TYPE_BOOLEAN, 0, NO_EXTRA }, @@ -672,7 +672,7 @@ static const struct value_desc values[] = { /* OES_texture_3D */ { GL_TEXTURE_BINDING_3D, LOC_CUSTOM, TYPE_INT, TEXTURE_3D_INDEX, NO_EXTRA }, { GL_MAX_3D_TEXTURE_SIZE, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.Max3DTextureLevels), NO_EXTRA }, + offsetof(struct gl_context, Const.Max3DTextureLevels), NO_EXTRA }, /* GL_ARB_fragment_program/OES_standard_derivatives */ { GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB, @@ -683,11 +683,11 @@ static const struct value_desc values[] = { /* Enums unique to OpenGL ES 2.0 */ { 0, 0, TYPE_API_MASK, API_OPENGLES2_BIT, NO_EXTRA }, { GL_MAX_FRAGMENT_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.FragmentProgram.MaxUniformComponents), NO_EXTRA }, + offsetof(struct gl_context, Const.FragmentProgram.MaxUniformComponents), NO_EXTRA }, { GL_MAX_VARYING_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.MaxVarying), NO_EXTRA }, + offsetof(struct gl_context, Const.MaxVarying), NO_EXTRA }, { GL_MAX_VERTEX_UNIFORM_VECTORS, LOC_CUSTOM, TYPE_INT, - offsetof(GLcontext, Const.VertexProgram.MaxUniformComponents), NO_EXTRA }, + offsetof(struct gl_context, Const.VertexProgram.MaxUniformComponents), NO_EXTRA }, { GL_SHADER_COMPILER, CONST(1), NO_EXTRA }, /* OES_get_program_binary */ { GL_NUM_SHADER_BINARY_FORMATS, CONST(0), NO_EXTRA }, @@ -1256,7 +1256,7 @@ print_table_stats(void) * * \param the current context, for determining the API in question */ -void _mesa_init_get_hash(GLcontext *ctx) +void _mesa_init_get_hash(struct gl_context *ctx) { int i, hash, index, mask; int api_mask = 0, api_bit; @@ -1305,7 +1305,7 @@ void _mesa_init_get_hash(GLcontext *ctx) * \param v pointer to the tmp declared in the calling glGet*v() function */ static void -find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v) +find_custom_value(struct gl_context *ctx, const struct value_desc *d, union value *v) { struct gl_buffer_object *buffer_obj; struct gl_client_array *array; @@ -1583,7 +1583,7 @@ find_custom_value(GLcontext *ctx, const struct value_desc *d, union value *v) * otherwise GL_TRUE. */ static GLboolean -check_extra(GLcontext *ctx, const char *func, const struct value_desc *d) +check_extra(struct gl_context *ctx, const char *func, const struct value_desc *d) { const GLuint version = ctx->VersionMajor * 10 + ctx->VersionMinor; int total, enabled; diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c index 3910047fb5..bfa283f6a3 100644 --- a/src/mesa/main/getstring.c +++ b/src/mesa/main/getstring.c @@ -35,7 +35,7 @@ * Return the string for a glGetString(GL_SHADING_LANGUAGE_VERSION) query. */ static const GLubyte * -shading_language_version(GLcontext *ctx) +shading_language_version(struct gl_context *ctx) { switch (ctx->API) { case API_OPENGL: @@ -233,7 +233,7 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params ) * Returns the current GL error code, or GL_NO_ERROR. * \return current error code * - * Returns __GLcontextRec::ErrorValue. + * Returns __struct gl_contextRec::ErrorValue. */ GLenum GLAPIENTRY _mesa_GetError( void ) diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h index 45f7b55ad2..08ad5f3201 100644 --- a/src/mesa/main/glheader.h +++ b/src/mesa/main/glheader.h @@ -52,7 +52,6 @@ #define GL_GLEXT_PROTOTYPES #include "GL/gl.h" #include "GL/glext.h" -#include "GL/internal/glcore.h" /** @@ -140,6 +139,25 @@ typedef void *GLeglImageOES; */ #define MESA_GEOMETRY_PROGRAM 0x8c26 - +/* Several fields of struct gl_config can take these as values. Since + * GLX header files may not be available everywhere they need to be used, + * redefine them here. + */ +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 + +#define GLX_DONT_CARE 0xFFFFFFFF #endif /* GLHEADER_H */ diff --git a/src/mesa/main/hash.c b/src/mesa/main/hash.c index b624e6ecac..72d924dcc3 100644 --- a/src/mesa/main/hash.c +++ b/src/mesa/main/hash.c @@ -277,7 +277,7 @@ _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key) * \param table the hash table to delete * \param callback the callback function * \param userData arbitrary pointer to pass along to the callback - * (this is typically a GLcontext pointer) + * (this is typically a struct gl_context pointer) */ void _mesa_HashDeleteAll(struct _mesa_HashTable *table, @@ -313,7 +313,7 @@ _mesa_HashDeleteAll(struct _mesa_HashTable *table, * \param table the hash table to walk * \param callback the callback function * \param userData arbitrary pointer to pass along to the callback - * (this is typically a GLcontext pointer) + * (this is typically a struct gl_context pointer) */ void _mesa_HashWalk(const struct _mesa_HashTable *table, diff --git a/src/mesa/main/hint.c b/src/mesa/main/hint.c index 8902ae3776..878f10d4a4 100644 --- a/src/mesa/main/hint.c +++ b/src/mesa/main/hint.c @@ -130,7 +130,7 @@ _mesa_Hint( GLenum target, GLenum mode ) /***** Initialization *****/ /**********************************************************************/ -void _mesa_init_hint( GLcontext * ctx ) +void _mesa_init_hint( struct gl_context * ctx ) { /* Hint group */ ctx->Hint.PerspectiveCorrection = GL_DONT_CARE; diff --git a/src/mesa/main/hint.h b/src/mesa/main/hint.h index bfc3887107..66e78ad655 100644 --- a/src/mesa/main/hint.h +++ b/src/mesa/main/hint.h @@ -45,7 +45,7 @@ extern void GLAPIENTRY _mesa_Hint( GLenum target, GLenum mode ); extern void -_mesa_init_hint( GLcontext * ctx ); +_mesa_init_hint( struct gl_context * ctx ); #else diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index 029d2fef8a..2c3af332c0 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -286,6 +286,7 @@ _mesa_components_in_format( GLenum format ) return 1; case GL_LUMINANCE_ALPHA: case GL_LUMINANCE_ALPHA_INTEGER_EXT: + case GL_RG: return 2; case GL_RGB: case GL_RGB_INTEGER_EXT: @@ -398,7 +399,7 @@ _mesa_bytes_per_pixel( GLenum format, GLenum type ) * otherwise. */ GLboolean -_mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type ) +_mesa_is_legal_format_and_type( struct gl_context *ctx, GLenum format, GLenum type ) { switch (format) { case GL_COLOR_INDEX: @@ -442,6 +443,24 @@ _mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type ) default: return GL_FALSE; } + case GL_RG: + if (!ctx->Extensions.ARB_texture_rg) + return GL_FALSE; + + switch (type) { + case GL_BYTE: + case GL_UNSIGNED_BYTE: + case GL_SHORT: + case GL_UNSIGNED_SHORT: + case GL_INT: + case GL_UNSIGNED_INT: + case GL_FLOAT: + return GL_TRUE; + case GL_HALF_FLOAT_ARB: + return ctx->Extensions.ARB_half_float_pixel; + default: + return GL_FALSE; + } case GL_RGB: switch (type) { case GL_BYTE: @@ -596,6 +615,11 @@ _mesa_is_color_format(GLenum format) case GL_INTENSITY8: case GL_INTENSITY12: case GL_INTENSITY16: + case GL_R8: + case GL_R16: + case GL_RG: + case GL_RG8: + case GL_RG16: case 3: case GL_RGB: case GL_BGR: @@ -626,6 +650,10 @@ _mesa_is_color_format(GLenum format) case GL_LUMINANCE_ALPHA32F_ARB: case GL_INTENSITY16F_ARB: case GL_INTENSITY32F_ARB: + case GL_R16F: + case GL_R32F: + case GL_RG16F: + case GL_RG32F: case GL_RGB16F_ARB: case GL_RGB32F_ARB: case GL_RGBA16F_ARB: @@ -635,6 +663,8 @@ _mesa_is_color_format(GLenum format) case GL_COMPRESSED_LUMINANCE: case GL_COMPRESSED_LUMINANCE_ALPHA: case GL_COMPRESSED_INTENSITY: + case GL_COMPRESSED_RED: + case GL_COMPRESSED_RG: case GL_COMPRESSED_RGB: case GL_COMPRESSED_RGBA: case GL_RGB_S3TC: @@ -665,6 +695,10 @@ _mesa_is_color_format(GLenum format) case GL_COMPRESSED_SLUMINANCE_EXT: case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT: #endif /* FEATURE_EXT_texture_sRGB */ + case GL_COMPRESSED_RED_RGTC1: + case GL_COMPRESSED_SIGNED_RED_RGTC1: + case GL_COMPRESSED_RG_RGTC2: + case GL_COMPRESSED_SIGNED_RG_RGTC2: return GL_TRUE; /* signed texture formats */ case GL_RGBA_SNORM: @@ -835,7 +869,7 @@ _mesa_is_integer_format(GLenum format) * \return GL_TRUE if compressed, GL_FALSE if uncompressed */ GLboolean -_mesa_is_compressed_format(GLcontext *ctx, GLenum format) +_mesa_is_compressed_format(struct gl_context *ctx, GLenum format) { switch (format) { case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: @@ -857,6 +891,11 @@ _mesa_is_compressed_format(GLcontext *ctx, GLenum format) case GL_COMPRESSED_RGB_FXT1_3DFX: case GL_COMPRESSED_RGBA_FXT1_3DFX: return ctx->Extensions.TDFX_texture_compression_FXT1; + case GL_COMPRESSED_RED_RGTC1: + case GL_COMPRESSED_SIGNED_RED_RGTC1: + case GL_COMPRESSED_RG_RGTC2: + case GL_COMPRESSED_SIGNED_RG_RGTC2: + return ctx->Extensions.ARB_texture_compression_rgtc; default: return GL_FALSE; } @@ -1502,7 +1541,7 @@ _mesa_scale_and_bias_rgba(GLuint n, GLfloat rgba[][4], * Apply pixel mapping to an array of floating point RGBA pixels. */ void -_mesa_map_rgba( const GLcontext *ctx, GLuint n, GLfloat rgba[][4] ) +_mesa_map_rgba( const struct gl_context *ctx, GLuint n, GLfloat rgba[][4] ) { const GLfloat rscale = (GLfloat) (ctx->PixelMaps.RtoR.Size - 1); const GLfloat gscale = (GLfloat) (ctx->PixelMaps.GtoG.Size - 1); @@ -1585,6 +1624,25 @@ _mesa_lookup_rgba_float(const struct gl_color_table *table, rgba[i][ACOMP] = alpha;; } break; + case GL_RED: + /* replace RGB with RGB */ + for (i = 0; i < n; i++) { + GLint jR = IROUND(rgba[i][RCOMP] * scale); + jR = CLAMP(jR, 0, max); + rgba[i][RCOMP] = lut[jR * 3 + 0]; + } + break; + case GL_RG: + /* replace RG with RG */ + for (i = 0; i < n; i++) { + GLint jR = IROUND(rgba[i][RCOMP] * scale); + GLint jG = IROUND(rgba[i][GCOMP] * scale); + jR = CLAMP(jR, 0, max); + jG = CLAMP(jG, 0, max); + rgba[i][RCOMP] = lut[jR * 3 + 0]; + rgba[i][GCOMP] = lut[jG * 3 + 1]; + } + break; case GL_RGB: /* replace RGB with RGB */ for (i = 0; i < n; i++) { @@ -1771,7 +1829,7 @@ _mesa_lookup_rgba_ubyte(const struct gl_color_table *table, * Map color indexes to float rgba values. */ void -_mesa_map_ci_to_rgba( const GLcontext *ctx, GLuint n, +_mesa_map_ci_to_rgba( const struct gl_context *ctx, GLuint n, const GLuint index[], GLfloat rgba[][4] ) { GLuint rmask = ctx->PixelMaps.ItoR.Size - 1; @@ -1796,7 +1854,7 @@ _mesa_map_ci_to_rgba( const GLcontext *ctx, GLuint n, * Map ubyte color indexes to ubyte/RGBA values. */ void -_mesa_map_ci8_to_rgba8(const GLcontext *ctx, GLuint n, const GLubyte index[], +_mesa_map_ci8_to_rgba8(const struct gl_context *ctx, GLuint n, const GLubyte index[], GLubyte rgba[][4]) { GLuint rmask = ctx->PixelMaps.ItoR.Size - 1; @@ -1818,7 +1876,7 @@ _mesa_map_ci8_to_rgba8(const GLcontext *ctx, GLuint n, const GLubyte index[], void -_mesa_scale_and_bias_depth(const GLcontext *ctx, GLuint n, +_mesa_scale_and_bias_depth(const struct gl_context *ctx, GLuint n, GLfloat depthValues[]) { const GLfloat scale = ctx->Pixel.DepthScale; @@ -1832,7 +1890,7 @@ _mesa_scale_and_bias_depth(const GLcontext *ctx, GLuint n, void -_mesa_scale_and_bias_depth_uint(const GLcontext *ctx, GLuint n, +_mesa_scale_and_bias_depth_uint(const struct gl_context *ctx, GLuint n, GLuint depthValues[]) { const GLdouble max = (double) 0xffffffff; @@ -1851,7 +1909,7 @@ _mesa_scale_and_bias_depth_uint(const GLcontext *ctx, GLuint n, * as indicated by the transferOps bitmask */ void -_mesa_apply_rgba_transfer_ops(GLcontext *ctx, GLbitfield transferOps, +_mesa_apply_rgba_transfer_ops(struct gl_context *ctx, GLbitfield transferOps, GLuint n, GLfloat rgba[][4]) { /* scale & bias */ @@ -1884,7 +1942,7 @@ _mesa_apply_rgba_transfer_ops(GLcontext *ctx, GLbitfield transferOps, * Apply color index shift and offset to an array of pixels. */ static void -shift_and_offset_ci( const GLcontext *ctx, GLuint n, GLuint indexes[] ) +shift_and_offset_ci( const struct gl_context *ctx, GLuint n, GLuint indexes[] ) { GLint shift = ctx->Pixel.IndexShift; GLint offset = ctx->Pixel.IndexOffset; @@ -1914,7 +1972,7 @@ shift_and_offset_ci( const GLcontext *ctx, GLuint n, GLuint indexes[] ) * of color indexes; */ void -_mesa_apply_ci_transfer_ops(const GLcontext *ctx, GLbitfield transferOps, +_mesa_apply_ci_transfer_ops(const struct gl_context *ctx, GLbitfield transferOps, GLuint n, GLuint indexes[]) { if (transferOps & IMAGE_SHIFT_OFFSET_BIT) { @@ -1936,7 +1994,7 @@ _mesa_apply_ci_transfer_ops(const GLcontext *ctx, GLbitfield transferOps, * of stencil values. */ void -_mesa_apply_stencil_transfer_ops(const GLcontext *ctx, GLuint n, +_mesa_apply_stencil_transfer_ops(const struct gl_context *ctx, GLuint n, GLstencil stencil[]) { if (ctx->Pixel.IndexShift != 0 || ctx->Pixel.IndexOffset != 0) { @@ -1977,7 +2035,7 @@ _mesa_apply_stencil_transfer_ops(const GLcontext *ctx, GLuint n, * transfer ops are enabled. */ void -_mesa_pack_rgba_span_float(GLcontext *ctx, GLuint n, GLfloat rgba[][4], +_mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4], GLenum dstFormat, GLenum dstType, GLvoid *dstAddr, const struct gl_pixelstore_attrib *dstPacking, @@ -3201,6 +3259,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4], srcFormat == GL_LUMINANCE || srcFormat == GL_LUMINANCE_ALPHA || srcFormat == GL_INTENSITY || + srcFormat == GL_RG || srcFormat == GL_RGB || srcFormat == GL_BGR || srcFormat == GL_RGBA || @@ -3283,6 +3342,18 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4], redIndex = greenIndex = blueIndex = alphaIndex = 0; stride = 1; break; + case GL_RG: + case GL_RG_INTEGER: + redIndex = 0; + greenIndex = 1; + blueIndex = -1; + alphaIndex = -1; + rComp = 0; + gComp = 1; + bComp = 2; + aComp = 3; + stride = 2; + break; case GL_RGB: case GL_RGB_INTEGER: redIndex = 0; @@ -3841,7 +3912,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4], * XXX perhaps expand this to process whole images someday. */ void -_mesa_unpack_color_span_chan( GLcontext *ctx, +_mesa_unpack_color_span_chan( struct gl_context *ctx, GLuint n, GLenum dstFormat, GLchan dest[], GLenum srcFormat, GLenum srcType, const GLvoid *source, @@ -3852,6 +3923,8 @@ _mesa_unpack_color_span_chan( GLcontext *ctx, dstFormat == GL_LUMINANCE || dstFormat == GL_LUMINANCE_ALPHA || dstFormat == GL_INTENSITY || + dstFormat == GL_RED || + dstFormat == GL_RG || dstFormat == GL_RGB || dstFormat == GL_RGBA || dstFormat == GL_COLOR_INDEX); @@ -3863,6 +3936,7 @@ _mesa_unpack_color_span_chan( GLcontext *ctx, srcFormat == GL_LUMINANCE || srcFormat == GL_LUMINANCE_ALPHA || srcFormat == GL_INTENSITY || + srcFormat == GL_RG || srcFormat == GL_RGB || srcFormat == GL_BGR || srcFormat == GL_RGBA || @@ -4090,6 +4164,17 @@ _mesa_unpack_color_span_chan( GLcontext *ctx, dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; dstLuminanceIndex = -1; break; + case GL_RED: + dstRedIndex = 0; + dstGreenIndex = dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RG: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; case GL_RGB: dstRedIndex = 0; dstGreenIndex = 1; @@ -4177,7 +4262,7 @@ _mesa_unpack_color_span_chan( GLcontext *ctx, * instead of GLchan. */ void -_mesa_unpack_color_span_float( GLcontext *ctx, +_mesa_unpack_color_span_float( struct gl_context *ctx, GLuint n, GLenum dstFormat, GLfloat dest[], GLenum srcFormat, GLenum srcType, const GLvoid *source, @@ -4188,6 +4273,8 @@ _mesa_unpack_color_span_float( GLcontext *ctx, dstFormat == GL_LUMINANCE || dstFormat == GL_LUMINANCE_ALPHA || dstFormat == GL_INTENSITY || + dstFormat == GL_RED || + dstFormat == GL_RG || dstFormat == GL_RGB || dstFormat == GL_RGBA || dstFormat == GL_COLOR_INDEX); @@ -4199,6 +4286,7 @@ _mesa_unpack_color_span_float( GLcontext *ctx, srcFormat == GL_LUMINANCE || srcFormat == GL_LUMINANCE_ALPHA || srcFormat == GL_INTENSITY || + srcFormat == GL_RG || srcFormat == GL_RGB || srcFormat == GL_BGR || srcFormat == GL_RGBA || @@ -4315,6 +4403,17 @@ _mesa_unpack_color_span_float( GLcontext *ctx, dstRedIndex = dstGreenIndex = dstBlueIndex = dstAlphaIndex = -1; dstLuminanceIndex = -1; break; + case GL_RED: + dstRedIndex = 0; + dstGreenIndex = dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; + case GL_RG: + dstRedIndex = 0; + dstGreenIndex = 1; + dstBlueIndex = -1; + dstAlphaIndex = dstLuminanceIndex = dstIntensityIndex = -1; + break; case GL_RGB: dstRedIndex = 0; dstGreenIndex = 1; @@ -4399,7 +4498,7 @@ _mesa_unpack_color_span_float( GLcontext *ctx, * directly return GLbyte data, no transfer ops apply. */ void -_mesa_unpack_dudv_span_byte( GLcontext *ctx, +_mesa_unpack_dudv_span_byte( struct gl_context *ctx, GLuint n, GLenum dstFormat, GLbyte dest[], GLenum srcFormat, GLenum srcType, const GLvoid *source, @@ -4466,7 +4565,7 @@ _mesa_unpack_dudv_span_byte( GLcontext *ctx, * transferOps - the pixel transfer operations to apply */ void -_mesa_unpack_index_span( const GLcontext *ctx, GLuint n, +_mesa_unpack_index_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, @@ -4544,7 +4643,7 @@ _mesa_unpack_index_span( const GLcontext *ctx, GLuint n, void -_mesa_pack_index_span( const GLcontext *ctx, GLuint n, +_mesa_pack_index_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLuint *source, const struct gl_pixelstore_attrib *dstPacking, GLbitfield transferOps ) @@ -4674,7 +4773,7 @@ _mesa_pack_index_span( const GLcontext *ctx, GLuint n, * transferOps - apply offset/bias/lookup ops? */ void -_mesa_unpack_stencil_span( const GLcontext *ctx, GLuint n, +_mesa_unpack_stencil_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, @@ -4769,7 +4868,7 @@ _mesa_unpack_stencil_span( const GLcontext *ctx, GLuint n, void -_mesa_pack_stencil_span( const GLcontext *ctx, GLuint n, +_mesa_pack_stencil_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLstencil *source, const struct gl_pixelstore_attrib *dstPacking ) { @@ -4944,7 +5043,7 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n, * (ignored for GLfloat). */ void -_mesa_unpack_depth_span( const GLcontext *ctx, GLuint n, +_mesa_unpack_depth_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLuint depthMax, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking ) @@ -5143,7 +5242,7 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n, * Pack an array of depth values. The values are floats in [0,1]. */ void -_mesa_pack_depth_span( const GLcontext *ctx, GLuint n, GLvoid *dest, +_mesa_pack_depth_span( const struct gl_context *ctx, GLuint n, GLvoid *dest, GLenum dstType, const GLfloat *depthSpan, const struct gl_pixelstore_attrib *dstPacking ) { @@ -5259,7 +5358,7 @@ _mesa_pack_depth_span( const GLcontext *ctx, GLuint n, GLvoid *dest, * Pack depth and stencil values as GL_DEPTH_STENCIL/GL_UNSIGNED_INT_24_8. */ void -_mesa_pack_depth_stencil_span(const GLcontext *ctx, GLuint n, GLuint *dest, +_mesa_pack_depth_stencil_span(const struct gl_context *ctx, GLuint n, GLuint *dest, const GLfloat *depthVals, const GLstencil *stencilVals, const struct gl_pixelstore_attrib *dstPacking) @@ -5574,12 +5673,12 @@ _mesa_convert_colors(GLenum srcType, const GLvoid *src, * GL_FALSE if image was completely clipped away (draw nothing) */ GLboolean -_mesa_clip_drawpixels(const GLcontext *ctx, +_mesa_clip_drawpixels(const struct gl_context *ctx, GLint *destX, GLint *destY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *unpack) { - const GLframebuffer *buffer = ctx->DrawBuffer; + const struct gl_framebuffer *buffer = ctx->DrawBuffer; if (unpack->RowLength == 0) { unpack->RowLength = *width; @@ -5645,12 +5744,12 @@ _mesa_clip_drawpixels(const GLcontext *ctx, * GL_FALSE if image was completely clipped away (draw nothing) */ GLboolean -_mesa_clip_readpixels(const GLcontext *ctx, +_mesa_clip_readpixels(const struct gl_context *ctx, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *pack) { - const GLframebuffer *buffer = ctx->ReadBuffer; + const struct gl_framebuffer *buffer = ctx->ReadBuffer; if (pack->RowLength == 0) { pack->RowLength = *width; @@ -5695,7 +5794,7 @@ _mesa_clip_readpixels(const GLcontext *ctx, * \return GL_FALSE if region is totally clipped, GL_TRUE otherwise. */ GLboolean -_mesa_clip_copytexsubimage(const GLcontext *ctx, +_mesa_clip_copytexsubimage(const struct gl_context *ctx, GLint *destX, GLint *destY, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height) @@ -5838,7 +5937,7 @@ clip_left_or_bottom(GLint *srcX0, GLint *srcX1, * \return GL_TRUE if anything is left to draw, GL_FALSE if totally clipped */ GLboolean -_mesa_clip_blit(GLcontext *ctx, +_mesa_clip_blit(struct gl_context *ctx, GLint *srcX0, GLint *srcY0, GLint *srcX1, GLint *srcY1, GLint *dstX0, GLint *dstY0, GLint *dstX1, GLint *dstY1) { diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h index 672dbf2823..ed5ffa368c 100644 --- a/src/mesa/main/image.h +++ b/src/mesa/main/image.h @@ -52,7 +52,7 @@ extern GLint _mesa_bytes_per_pixel( GLenum format, GLenum type ); extern GLboolean -_mesa_is_legal_format_and_type( GLcontext *ctx, GLenum format, GLenum type ); +_mesa_is_legal_format_and_type( struct gl_context *ctx, GLenum format, GLenum type ); extern GLboolean _mesa_is_color_format(GLenum format); @@ -82,7 +82,7 @@ extern GLboolean _mesa_is_integer_format(GLenum format); extern GLboolean -_mesa_is_compressed_format(GLcontext *ctx, GLenum format); +_mesa_is_compressed_format(struct gl_context *ctx, GLenum format); extern GLvoid * _mesa_image_address( GLuint dimensions, @@ -161,7 +161,7 @@ _mesa_scale_and_bias_rgba(GLuint n, GLfloat rgba[][4], GLfloat bBias, GLfloat aBias); extern void -_mesa_map_rgba(const GLcontext *ctx, GLuint n, GLfloat rgba[][4]); +_mesa_map_rgba(const struct gl_context *ctx, GLuint n, GLfloat rgba[][4]); extern void _mesa_lookup_rgba_float(const struct gl_color_table *table, @@ -173,47 +173,47 @@ _mesa_lookup_rgba_ubyte(const struct gl_color_table *table, extern void -_mesa_map_ci_to_rgba(const GLcontext *ctx, +_mesa_map_ci_to_rgba(const struct gl_context *ctx, GLuint n, const GLuint index[], GLfloat rgba[][4]); extern void -_mesa_map_ci8_to_rgba8(const GLcontext *ctx, GLuint n, const GLubyte index[], +_mesa_map_ci8_to_rgba8(const struct gl_context *ctx, GLuint n, const GLubyte index[], GLubyte rgba[][4]); extern void -_mesa_scale_and_bias_depth(const GLcontext *ctx, GLuint n, +_mesa_scale_and_bias_depth(const struct gl_context *ctx, GLuint n, GLfloat depthValues[]); extern void -_mesa_scale_and_bias_depth_uint(const GLcontext *ctx, GLuint n, +_mesa_scale_and_bias_depth_uint(const struct gl_context *ctx, GLuint n, GLuint depthValues[]); extern void -_mesa_apply_rgba_transfer_ops(GLcontext *ctx, GLbitfield transferOps, +_mesa_apply_rgba_transfer_ops(struct gl_context *ctx, GLbitfield transferOps, GLuint n, GLfloat rgba[][4]); extern void -_mesa_apply_ci_transfer_ops(const GLcontext *ctx, GLbitfield transferOps, +_mesa_apply_ci_transfer_ops(const struct gl_context *ctx, GLbitfield transferOps, GLuint n, GLuint indexes[]); extern void -_mesa_apply_stencil_transfer_ops(const GLcontext *ctx, GLuint n, +_mesa_apply_stencil_transfer_ops(const struct gl_context *ctx, GLuint n, GLstencil stencil[]); extern void -_mesa_pack_rgba_span_float( GLcontext *ctx, GLuint n, GLfloat rgba[][4], +_mesa_pack_rgba_span_float( struct gl_context *ctx, GLuint n, GLfloat rgba[][4], GLenum dstFormat, GLenum dstType, GLvoid *dstAddr, const struct gl_pixelstore_attrib *dstPacking, GLbitfield transferOps ); extern void -_mesa_unpack_color_span_chan( GLcontext *ctx, +_mesa_unpack_color_span_chan( struct gl_context *ctx, GLuint n, GLenum dstFormat, GLchan dest[], GLenum srcFormat, GLenum srcType, const GLvoid *source, @@ -222,7 +222,7 @@ _mesa_unpack_color_span_chan( GLcontext *ctx, extern void -_mesa_unpack_color_span_float( GLcontext *ctx, +_mesa_unpack_color_span_float( struct gl_context *ctx, GLuint n, GLenum dstFormat, GLfloat dest[], GLenum srcFormat, GLenum srcType, const GLvoid *source, @@ -230,7 +230,7 @@ _mesa_unpack_color_span_float( GLcontext *ctx, GLbitfield transferOps ); extern void -_mesa_unpack_dudv_span_byte( GLcontext *ctx, +_mesa_unpack_dudv_span_byte( struct gl_context *ctx, GLuint n, GLenum dstFormat, GLbyte dest[], GLenum srcFormat, GLenum srcType, const GLvoid *source, @@ -238,7 +238,7 @@ _mesa_unpack_dudv_span_byte( GLcontext *ctx, GLbitfield transferOps ); extern void -_mesa_unpack_index_span( const GLcontext *ctx, GLuint n, +_mesa_unpack_index_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, @@ -246,39 +246,39 @@ _mesa_unpack_index_span( const GLcontext *ctx, GLuint n, extern void -_mesa_pack_index_span( const GLcontext *ctx, GLuint n, +_mesa_pack_index_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLuint *source, const struct gl_pixelstore_attrib *dstPacking, GLbitfield transferOps ); extern void -_mesa_unpack_stencil_span( const GLcontext *ctx, GLuint n, +_mesa_unpack_stencil_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking, GLbitfield transferOps ); extern void -_mesa_pack_stencil_span( const GLcontext *ctx, GLuint n, +_mesa_pack_stencil_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, const GLstencil *source, const struct gl_pixelstore_attrib *dstPacking ); extern void -_mesa_unpack_depth_span( const GLcontext *ctx, GLuint n, +_mesa_unpack_depth_span( const struct gl_context *ctx, GLuint n, GLenum dstType, GLvoid *dest, GLuint depthMax, GLenum srcType, const GLvoid *source, const struct gl_pixelstore_attrib *srcPacking ); extern void -_mesa_pack_depth_span( const GLcontext *ctx, GLuint n, GLvoid *dest, +_mesa_pack_depth_span( const struct gl_context *ctx, GLuint n, GLvoid *dest, GLenum dstType, const GLfloat *depthSpan, const struct gl_pixelstore_attrib *dstPacking ); extern void -_mesa_pack_depth_stencil_span(const GLcontext *ctx, GLuint n, GLuint *dest, +_mesa_pack_depth_stencil_span(const struct gl_context *ctx, GLuint n, GLuint *dest, const GLfloat *depthVals, const GLstencil *stencilVals, const struct gl_pixelstore_attrib *dstPacking); @@ -298,20 +298,20 @@ _mesa_convert_colors(GLenum srcType, const GLvoid *src, extern GLboolean -_mesa_clip_drawpixels(const GLcontext *ctx, +_mesa_clip_drawpixels(const struct gl_context *ctx, GLint *destX, GLint *destY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *unpack); extern GLboolean -_mesa_clip_readpixels(const GLcontext *ctx, +_mesa_clip_readpixels(const struct gl_context *ctx, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height, struct gl_pixelstore_attrib *pack); extern GLboolean -_mesa_clip_copytexsubimage(const GLcontext *ctx, +_mesa_clip_copytexsubimage(const struct gl_context *ctx, GLint *destX, GLint *destY, GLint *srcX, GLint *srcY, GLsizei *width, GLsizei *height); @@ -323,7 +323,7 @@ _mesa_clip_to_region(GLint xmin, GLint ymin, GLsizei *width, GLsizei *height ); extern GLboolean -_mesa_clip_blit(GLcontext *ctx, +_mesa_clip_blit(struct gl_context *ctx, GLint *srcX0, GLint *srcY0, GLint *srcX1, GLint *srcY1, GLint *dstX0, GLint *dstY0, GLint *dstX1, GLint *dstY1); diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c index 46e5c932d0..bcca4edc1a 100644 --- a/src/mesa/main/imports.c +++ b/src/mesa/main/imports.c @@ -882,7 +882,7 @@ error_string( GLenum error ) * previous errors which were accumulated. */ static void -flush_delayed_errors( GLcontext *ctx ) +flush_delayed_errors( struct gl_context *ctx ) { char s[MAXSTRING]; @@ -906,7 +906,7 @@ flush_delayed_errors( GLcontext *ctx ) * \param fmtString printf()-like format string. */ void -_mesa_warning( GLcontext *ctx, const char *fmtString, ... ) +_mesa_warning( struct gl_context *ctx, const char *fmtString, ... ) { char str[MAXSTRING]; va_list args; @@ -929,7 +929,7 @@ _mesa_warning( GLcontext *ctx, const char *fmtString, ... ) * \param fmtString problem description string. */ void -_mesa_problem( const GLcontext *ctx, const char *fmtString, ... ) +_mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) { va_list args; char str[MAXSTRING]; @@ -957,7 +957,7 @@ _mesa_problem( const GLcontext *ctx, const char *fmtString, ... ) * \param fmtString printf() style format string, followed by optional args */ void -_mesa_error( GLcontext *ctx, GLenum error, const char *fmtString, ... ) +_mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) { static GLint debug = -1; @@ -1014,7 +1014,7 @@ _mesa_error( GLcontext *ctx, GLenum error, const char *fmtString, ... ) * \param fmtString printf()-style format string, followed by optional args. */ void -_mesa_debug( const GLcontext *ctx, const char *fmtString, ... ) +_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) { #ifdef DEBUG char s[MAXSTRING]; diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h index 751f206501..30fc152389 100644 --- a/src/mesa/main/imports.h +++ b/src/mesa/main/imports.h @@ -568,17 +568,19 @@ _mesa_str_checksum(const char *str); extern int _mesa_snprintf( char *str, size_t size, const char *fmt, ... ) PRINTFLIKE(3, 4); +struct gl_context; + extern void -_mesa_warning( __GLcontext *gc, const char *fmtString, ... ) PRINTFLIKE(2, 3); +_mesa_warning( struct gl_context *gc, const char *fmtString, ... ) PRINTFLIKE(2, 3); extern void -_mesa_problem( const __GLcontext *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); +_mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); extern void -_mesa_error( __GLcontext *ctx, GLenum error, const char *fmtString, ... ) PRINTFLIKE(3, 4); +_mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) PRINTFLIKE(3, 4); extern void -_mesa_debug( const __GLcontext *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); +_mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); #if defined(_MSC_VER) && !defined(snprintf) diff --git a/src/mesa/main/light.c b/src/mesa/main/light.c index 43ae28c25a..c27cf1dd38 100644 --- a/src/mesa/main/light.c +++ b/src/mesa/main/light.c @@ -103,7 +103,7 @@ _mesa_ProvokingVertexEXT(GLenum mode) * Also, all error checking should have already been done. */ void -_mesa_light(GLcontext *ctx, GLuint lnum, GLenum pname, const GLfloat *params) +_mesa_light(struct gl_context *ctx, GLuint lnum, GLenum pname, const GLfloat *params) { struct gl_light *light; @@ -569,7 +569,7 @@ _mesa_LightModelf( GLenum pname, GLfloat param ) * of the targeted material values. */ GLuint -_mesa_material_bitmask( GLcontext *ctx, GLenum face, GLenum pname, +_mesa_material_bitmask( struct gl_context *ctx, GLenum face, GLenum pname, GLuint legal, const char *where ) { GLuint bitmask = 0; @@ -643,7 +643,7 @@ _mesa_copy_materials( struct gl_material *dst, /* Update derived values following a change in ctx->Light.Material */ void -_mesa_update_material( GLcontext *ctx, GLuint bitmask ) +_mesa_update_material( struct gl_context *ctx, GLuint bitmask ) { struct gl_light *light, *list = &ctx->Light.EnabledList; GLfloat (*mat)[4] = ctx->Light.Material.Attrib; @@ -728,7 +728,7 @@ _mesa_update_material( GLcontext *ctx, GLuint bitmask ) * set by glColorMaterial(). */ void -_mesa_update_color_material( GLcontext *ctx, const GLfloat color[4] ) +_mesa_update_color_material( struct gl_context *ctx, const GLfloat color[4] ) { GLuint bitmask = ctx->Light.ColorMaterialBitmask; struct gl_material *mat = &ctx->Light.Material; @@ -972,7 +972,7 @@ validate_spot_exp_table( struct gl_light *l ) * by keeping a MRU cache of shine tables for various shine values. */ void -_mesa_invalidate_shine_table( GLcontext *ctx, GLuint side ) +_mesa_invalidate_shine_table( struct gl_context *ctx, GLuint side ) { ASSERT(side < 2); if (ctx->_ShineTable[side]) @@ -982,7 +982,7 @@ _mesa_invalidate_shine_table( GLcontext *ctx, GLuint side ) static void -validate_shine_table( GLcontext *ctx, GLuint side, GLfloat shininess ) +validate_shine_table( struct gl_context *ctx, GLuint side, GLfloat shininess ) { struct gl_shine_tab *list = ctx->_ShineTabList; struct gl_shine_tab *s; @@ -1034,7 +1034,7 @@ validate_shine_table( GLcontext *ctx, GLuint side, GLfloat shininess ) void -_mesa_validate_all_lighting_tables( GLcontext *ctx ) +_mesa_validate_all_lighting_tables( struct gl_context *ctx ) { GLuint i; GLfloat shininess; @@ -1060,7 +1060,7 @@ _mesa_validate_all_lighting_tables( GLcontext *ctx ) * source and material ambient, diffuse and specular coefficients. */ void -_mesa_update_lighting( GLcontext *ctx ) +_mesa_update_lighting( struct gl_context *ctx ) { struct gl_light *light; ctx->Light._NeedEyeCoords = GL_FALSE; @@ -1123,7 +1123,7 @@ _mesa_update_lighting( GLcontext *ctx ) * Also update on lighting space changes. */ static void -compute_light_positions( GLcontext *ctx ) +compute_light_positions( struct gl_context *ctx ) { struct gl_light *light; static const GLfloat eye_z[3] = { 0, 0, 1 }; @@ -1210,7 +1210,7 @@ compute_light_positions( GLcontext *ctx ) static void -update_modelview_scale( GLcontext *ctx ) +update_modelview_scale( struct gl_context *ctx ) { ctx->_ModelViewInvScale = 1.0F; if (!_math_matrix_is_length_preserving(ctx->ModelviewMatrixStack.Top)) { @@ -1229,7 +1229,7 @@ update_modelview_scale( GLcontext *ctx ) * Bring up to date any state that relies on _NeedEyeCoords. */ void -_mesa_update_tnl_spaces( GLcontext *ctx, GLuint new_state ) +_mesa_update_tnl_spaces( struct gl_context *ctx, GLuint new_state ) { const GLuint oldneedeyecoords = ctx->_NeedEyeCoords; @@ -1278,7 +1278,7 @@ _mesa_update_tnl_spaces( GLcontext *ctx, GLuint new_state ) * light-in-modelspace optimization. It's also useful for debugging. */ void -_mesa_allow_light_in_model( GLcontext *ctx, GLboolean flag ) +_mesa_allow_light_in_model( struct gl_context *ctx, GLboolean flag ) { ctx->_ForceEyeCoords = !flag; ctx->NewState |= _NEW_POINT; /* one of the bits from @@ -1370,7 +1370,7 @@ init_material( struct gl_material *m ) * Initialize all lighting state for the given context. */ void -_mesa_init_lighting( GLcontext *ctx ) +_mesa_init_lighting( struct gl_context *ctx ) { GLuint i; @@ -1418,7 +1418,7 @@ _mesa_init_lighting( GLcontext *ctx ) * Deallocate malloc'd lighting state attached to given context. */ void -_mesa_free_lighting_data( GLcontext *ctx ) +_mesa_free_lighting_data( struct gl_context *ctx ) { struct gl_shine_tab *s, *tmps; diff --git a/src/mesa/main/light.h b/src/mesa/main/light.h index b3436114d4..021f5ea193 100644 --- a/src/mesa/main/light.h +++ b/src/mesa/main/light.h @@ -79,7 +79,7 @@ _mesa_GetMaterialiv( GLenum face, GLenum pname, GLint *params ); extern void -_mesa_light(GLcontext *ctx, GLuint lnum, GLenum pname, const GLfloat *params); +_mesa_light(struct gl_context *ctx, GLuint lnum, GLenum pname, const GLfloat *params); /* Lerp between adjacent values in the f(x) lookup table, giving a @@ -100,36 +100,36 @@ do { \ } while (0) -extern GLuint _mesa_material_bitmask( GLcontext *ctx, +extern GLuint _mesa_material_bitmask( struct gl_context *ctx, GLenum face, GLenum pname, GLuint legal, const char * ); extern void _mesa_invalidate_spot_exp_table( struct gl_light *l ); -extern void _mesa_invalidate_shine_table( GLcontext *ctx, GLuint i ); +extern void _mesa_invalidate_shine_table( struct gl_context *ctx, GLuint i ); -extern void _mesa_validate_all_lighting_tables( GLcontext *ctx ); +extern void _mesa_validate_all_lighting_tables( struct gl_context *ctx ); -extern void _mesa_update_lighting( GLcontext *ctx ); +extern void _mesa_update_lighting( struct gl_context *ctx ); -extern void _mesa_update_tnl_spaces( GLcontext *ctx, GLuint new_state ); +extern void _mesa_update_tnl_spaces( struct gl_context *ctx, GLuint new_state ); -extern void _mesa_update_material( GLcontext *ctx, +extern void _mesa_update_material( struct gl_context *ctx, GLuint bitmask ); extern void _mesa_copy_materials( struct gl_material *dst, const struct gl_material *src, GLuint bitmask ); -extern void _mesa_update_color_material( GLcontext *ctx, +extern void _mesa_update_color_material( struct gl_context *ctx, const GLfloat rgba[4] ); -extern void _mesa_init_lighting( GLcontext *ctx ); +extern void _mesa_init_lighting( struct gl_context *ctx ); -extern void _mesa_free_lighting_data( GLcontext *ctx ); +extern void _mesa_free_lighting_data( struct gl_context *ctx ); -extern void _mesa_allow_light_in_model( GLcontext *ctx, GLboolean flag ); +extern void _mesa_allow_light_in_model( struct gl_context *ctx, GLboolean flag ); #else #define _mesa_update_color_material( c, r ) ((void)0) diff --git a/src/mesa/main/lines.c b/src/mesa/main/lines.c index cc63a759ec..505f840ba5 100644 --- a/src/mesa/main/lines.c +++ b/src/mesa/main/lines.c @@ -102,11 +102,11 @@ _mesa_LineStipple( GLint factor, GLushort pattern ) * * \param ctx GL context. * - * Initializes __GLcontextRec::Line and line related constants in - * __GLcontextRec::Const. + * Initializes __struct gl_contextRec::Line and line related constants in + * __struct gl_contextRec::Const. */ void GLAPIENTRY -_mesa_init_line( GLcontext * ctx ) +_mesa_init_line( struct gl_context * ctx ) { ctx->Line.SmoothFlag = GL_FALSE; ctx->Line.StippleFlag = GL_FALSE; diff --git a/src/mesa/main/lines.h b/src/mesa/main/lines.h index 5a47e9858d..3accdd7800 100644 --- a/src/mesa/main/lines.h +++ b/src/mesa/main/lines.h @@ -43,6 +43,6 @@ extern void GLAPIENTRY _mesa_LineStipple( GLint factor, GLushort pattern ); extern void GLAPIENTRY -_mesa_init_line( GLcontext * ctx ); +_mesa_init_line( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/matrix.c b/src/mesa/main/matrix.c index 8ed718cd38..105d4a327f 100644 --- a/src/mesa/main/matrix.c +++ b/src/mesa/main/matrix.c @@ -59,7 +59,7 @@ * * Flushes vertices and validates parameters. Calls _math_matrix_frustum() with * the top matrix of the current matrix stack and sets - * __GLcontextRec::NewState. + * __struct gl_contextRec::NewState. */ void GLAPIENTRY _mesa_Frustum( GLdouble left, GLdouble right, @@ -101,7 +101,7 @@ _mesa_Frustum( GLdouble left, GLdouble right, * * Flushes vertices and validates parameters. Calls _math_matrix_ortho() with * the top matrix of the current matrix stack and sets - * __GLcontextRec::NewState. + * __struct gl_contextRec::NewState. */ void GLAPIENTRY _mesa_Ortho( GLdouble left, GLdouble right, @@ -139,7 +139,7 @@ _mesa_Ortho( GLdouble left, GLdouble right, * \sa glMatrixMode(). * * Flushes the vertices, validates the parameter and updates - * __GLcontextRec::CurrentStack and gl_transform_attrib::MatrixMode with the + * __struct gl_contextRec::CurrentStack and gl_transform_attrib::MatrixMode with the * specified matrix stack. */ void GLAPIENTRY @@ -231,7 +231,7 @@ _mesa_MatrixMode( GLenum mode ) * \sa glPushMatrix(). * * Verifies the current matrix stack is not full, and duplicates the top-most - * matrix in the stack. Marks __GLcontextRec::NewState with the stack dirty + * matrix in the stack. Marks __struct gl_contextRec::NewState with the stack dirty * flag. */ void GLAPIENTRY @@ -271,7 +271,7 @@ _mesa_PushMatrix( void ) * \sa glPopMatrix(). * * Flushes the vertices, verifies the current matrix stack is not empty, and - * moves the stack head down. Marks __GLcontextRec::NewState with the dirty + * moves the stack head down. Marks __struct gl_contextRec::NewState with the dirty * stack flag. */ void GLAPIENTRY @@ -309,7 +309,7 @@ _mesa_PopMatrix( void ) * \sa glLoadIdentity(). * * Flushes the vertices and calls _math_matrix_set_identity() with the top-most - * matrix in the current stack. Marks __GLcontextRec::NewState with the stack + * matrix in the current stack. Marks __struct gl_contextRec::NewState with the stack * dirty flag. */ void GLAPIENTRY @@ -334,7 +334,7 @@ _mesa_LoadIdentity( void ) * \sa glLoadMatrixf(). * * Flushes the vertices and calls _math_matrix_loadf() with the top-most matrix - * in the current stack and the given matrix. Marks __GLcontextRec::NewState + * in the current stack and the given matrix. Marks __struct gl_contextRec::NewState * with the dirty stack flag. */ void GLAPIENTRY @@ -365,7 +365,7 @@ _mesa_LoadMatrixf( const GLfloat *m ) * * Flushes the vertices and calls _math_matrix_mul_floats() with the top-most * matrix in the current stack and the given matrix. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_MultMatrixf( const GLfloat *m ) @@ -397,7 +397,7 @@ _mesa_MultMatrixf( const GLfloat *m ) * * Flushes the vertices and calls _math_matrix_rotate() with the top-most * matrix in the current stack and the given parameters. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_Rotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) @@ -422,7 +422,7 @@ _mesa_Rotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) * * Flushes the vertices and calls _math_matrix_scale() with the top-most * matrix in the current stack and the given parameters. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_Scalef( GLfloat x, GLfloat y, GLfloat z ) @@ -445,7 +445,7 @@ _mesa_Scalef( GLfloat x, GLfloat y, GLfloat z ) * * Flushes the vertices and calls _math_matrix_translate() with the top-most * matrix in the current stack and the given parameters. Marks - * __GLcontextRec::NewState with the dirty stack flag. + * __struct gl_contextRec::NewState with the dirty stack flag. */ void GLAPIENTRY _mesa_Translatef( GLfloat x, GLfloat y, GLfloat z ) @@ -559,13 +559,13 @@ _mesa_MultTransposeMatrixdARB( const GLdouble *m ) * Calls _math_matrix_analyse() with the top-matrix of the projection matrix * stack, and recomputes user clip positions if necessary. * - * \note This routine references __GLcontextRec::Tranform attribute values to + * \note This routine references __struct gl_contextRec::Tranform attribute values to * compute userclip positions in clip space, but is only called on * _NEW_PROJECTION. The _mesa_ClipPlane() function keeps these values up to - * date across changes to the __GLcontextRec::Transform attributes. + * date across changes to the __struct gl_contextRec::Transform attributes. */ static void -update_projection( GLcontext *ctx ) +update_projection( struct gl_context *ctx ) { _math_matrix_analyse( ctx->ProjectionMatrixStack.Top ); @@ -593,11 +593,11 @@ update_projection( GLcontext *ctx ) * \param ctx GL context. * * Multiplies the top matrices of the projection and model view stacks into - * __GLcontextRec::_ModelProjectMatrix via _math_matrix_mul_matrix() and + * __struct gl_contextRec::_ModelProjectMatrix via _math_matrix_mul_matrix() and * analyzes the resulting matrix via _math_matrix_analyse(). */ static void -calculate_model_project_matrix( GLcontext *ctx ) +calculate_model_project_matrix( struct gl_context *ctx ) { _math_matrix_mul_matrix( &ctx->_ModelProjectMatrix, ctx->ProjectionMatrixStack.Top, @@ -618,7 +618,7 @@ calculate_model_project_matrix( GLcontext *ctx ) * calculate_model_project_matrix() to recalculate the modelview-projection * matrix. */ -void _mesa_update_modelview_project( GLcontext *ctx, GLuint new_state ) +void _mesa_update_modelview_project( struct gl_context *ctx, GLuint new_state ) { if (new_state & _NEW_MODELVIEW) { _math_matrix_analyse( ctx->ModelviewMatrixStack.Top ); @@ -712,7 +712,7 @@ free_matrix_stack( struct gl_matrix_stack *stack ) * Initializes each of the matrix stacks and the combined modelview-projection * matrix. */ -void _mesa_init_matrix( GLcontext * ctx ) +void _mesa_init_matrix( struct gl_context * ctx ) { GLint i; @@ -742,7 +742,7 @@ void _mesa_init_matrix( GLcontext * ctx ) * Frees each of the matrix stacks and the combined modelview-projection * matrix. */ -void _mesa_free_matrix_data( GLcontext *ctx ) +void _mesa_free_matrix_data( struct gl_context *ctx ) { GLint i; @@ -765,7 +765,7 @@ void _mesa_free_matrix_data( GLcontext *ctx ) * * \todo Move this to a new file with other 'transform' routines. */ -void _mesa_init_transform( GLcontext *ctx ) +void _mesa_init_transform( struct gl_context *ctx ) { GLint i; diff --git a/src/mesa/main/matrix.h b/src/mesa/main/matrix.h index a53d1045c7..38fd235b11 100644 --- a/src/mesa/main/matrix.h +++ b/src/mesa/main/matrix.h @@ -97,16 +97,16 @@ _mesa_MultTransposeMatrixdARB( const GLdouble *m ); extern void -_mesa_init_matrix( GLcontext * ctx ); +_mesa_init_matrix( struct gl_context * ctx ); extern void -_mesa_init_transform( GLcontext *ctx ); +_mesa_init_transform( struct gl_context *ctx ); extern void -_mesa_free_matrix_data( GLcontext *ctx ); +_mesa_free_matrix_data( struct gl_context *ctx ); extern void -_mesa_update_modelview_project( GLcontext *ctx, GLuint newstate ); +_mesa_update_modelview_project( struct gl_context *ctx, GLuint newstate ); #endif diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c index 3d1a4c49c4..11d5a0519e 100644 --- a/src/mesa/main/mipmap.c +++ b/src/mesa/main/mipmap.c @@ -606,7 +606,7 @@ do_row_3D(GLenum datatype, GLuint comps, GLint srcWidth, FILTER_3D(0); } } - if ((datatype == GL_BYTE) && (comps == 4)) { + else if ((datatype == GL_BYTE) && (comps == 4)) { DECLARE_ROW_POINTERS(GLbyte, 4); for (i = j = 0, k = k0; i < (GLuint) dstWidth; @@ -1504,7 +1504,7 @@ next_mipmap_level_size(GLenum target, GLint border, * GL_TEXTURE_CUBE_MAP_POSITIVE/NEGATIVE_X/Y/Z; never GL_TEXTURE_CUBE_MAP. */ void -_mesa_generate_mipmap(GLcontext *ctx, GLenum target, +_mesa_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { const struct gl_texture_image *srcImage; diff --git a/src/mesa/main/mipmap.h b/src/mesa/main/mipmap.h index 22094c3437..4c7ee635ae 100644 --- a/src/mesa/main/mipmap.h +++ b/src/mesa/main/mipmap.h @@ -42,7 +42,7 @@ _mesa_generate_mipmap_level(GLenum target, extern void -_mesa_generate_mipmap(GLcontext *ctx, GLenum target, +_mesa_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj); diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 0a69bcc4e3..13aa66fc1e 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -123,10 +123,8 @@ struct gl_program_cache; struct gl_texture_format; struct gl_texture_image; struct gl_texture_object; +struct gl_context; struct st_context; -typedef struct __GLcontextRec GLcontext; -typedef struct __GLcontextModesRec GLvisual; -typedef struct gl_framebuffer GLframebuffer; /*@}*/ @@ -380,8 +378,9 @@ typedef enum typedef enum { FRAG_RESULT_DEPTH = 0, - FRAG_RESULT_COLOR = 1, - FRAG_RESULT_DATA0 = 2, + FRAG_RESULT_STENCIL = 1, + FRAG_RESULT_COLOR = 2, + FRAG_RESULT_DATA0 = 3, FRAG_RESULT_MAX = (FRAG_RESULT_DATA0 + MAX_DRAW_BUFFERS) } gl_frag_result; @@ -548,6 +547,60 @@ struct gl_shine_tab GLuint refcount; }; +struct gl_config { + GLboolean rgbMode; + GLboolean floatMode; + GLboolean colorIndexMode; + GLuint doubleBufferMode; + GLuint stereoMode; + + GLboolean haveAccumBuffer; + GLboolean haveDepthBuffer; + GLboolean haveStencilBuffer; + + GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ + GLuint redMask, greenMask, blueMask, alphaMask; + GLint rgbBits; /* total bits for rgb */ + GLint indexBits; /* total bits for colorindex */ + + GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; + GLint depthBits; + GLint stencilBits; + + GLint numAuxBuffers; + + GLint level; + + /* EXT_visual_rating / GLX 1.2 */ + GLint visualRating; + + /* EXT_visual_info / GLX 1.2 */ + GLint transparentPixel; + /* colors are floats scaled to ints */ + GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha; + GLint transparentIndex; + + /* ARB_multisample / SGIS_multisample */ + GLint sampleBuffers; + GLint samples; + + /* SGIX_pbuffer / GLX 1.3 */ + GLint maxPbufferWidth; + GLint maxPbufferHeight; + GLint maxPbufferPixels; + GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */ + GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */ + + /* OML_swap_method */ + GLint swapMethod; + + /* EXT_texture_from_pixmap */ + GLint bindToTextureRgb; + GLint bindToTextureRgba; + GLint bindToMipmapTexture; + GLint bindToTextureTargets; + GLint yInverted; +}; /** * Light source state. @@ -2064,11 +2117,12 @@ struct gl_shader_program /** * Per-stage shaders resulting from the first stage of linking. + * + * Set of linked shaders for this program. The array is accessed using the + * \c MESA_SHADER_* defines. Entries for non-existent stages will be + * \c NULL. */ - /*@{*/ - GLuint _NumLinkedShaders; - struct gl_shader *_LinkedShaders[2]; - /*@}*/ + struct gl_shader *_LinkedShaders[MESA_SHADER_TYPES]; }; @@ -2271,38 +2325,38 @@ struct gl_renderbuffer void (*Delete)(struct gl_renderbuffer *rb); /* Allocate new storage for this renderbuffer */ - GLboolean (*AllocStorage)(GLcontext *ctx, struct gl_renderbuffer *rb, + GLboolean (*AllocStorage)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height); /* Lock/Unlock are called before/after calling the Get/Put functions. * Not sure this is the right place for these yet. - void (*Lock)(GLcontext *ctx, struct gl_renderbuffer *rb); - void (*Unlock)(GLcontext *ctx, struct gl_renderbuffer *rb); + void (*Lock)(struct gl_context *ctx, struct gl_renderbuffer *rb); + void (*Unlock)(struct gl_context *ctx, struct gl_renderbuffer *rb); */ /* Return a pointer to the element/pixel at (x,y). * Should return NULL if the buffer memory can't be directly addressed. */ - void *(*GetPointer)(GLcontext *ctx, struct gl_renderbuffer *rb, + void *(*GetPointer)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y); /* Get/Read a row of values. * The values will be of format _BaseFormat and type DataType. */ - void (*GetRow)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*GetRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values); /* Get/Read values at arbitrary locations. * The values will be of format _BaseFormat and type DataType. */ - void (*GetValues)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*GetValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values); /* Put/Write a row of values. * The values will be of format _BaseFormat and type DataType. */ - void (*PutRow)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask); /* Put/Write a row of RGB values. This is a special-case routine that's @@ -2310,26 +2364,26 @@ struct gl_renderbuffer * a common case for glDrawPixels and some triangle routines. * The values will be of format GL_RGB and type DataType. */ - void (*PutRowRGB)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutRowRGB)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask); /* Put/Write a row of identical values. * The values will be of format _BaseFormat and type DataType. */ - void (*PutMonoRow)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutMonoRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask); /* Put/Write values at arbitrary locations. * The values will be of format _BaseFormat and type DataType. */ - void (*PutValues)(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, + void (*PutValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask); /* Put/Write identical values at arbitrary locations. * The values will be of format _BaseFormat and type DataType. */ - void (*PutMonoValues)(GLcontext *ctx, struct gl_renderbuffer *rb, + void (*PutMonoValues)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask); }; @@ -2386,7 +2440,7 @@ struct gl_framebuffer * The framebuffer's visual. Immutable if this is a window system buffer. * Computed from attachments if user-made FBO. */ - GLvisual Visual; + struct gl_config Visual; GLboolean Initialized; @@ -2587,6 +2641,7 @@ struct gl_extensions GLboolean ARB_sampler_objects; GLboolean ARB_seamless_cube_map; GLboolean ARB_shader_objects; + GLboolean ARB_shader_stencil_export; GLboolean ARB_shading_language_100; GLboolean ARB_shadow; GLboolean ARB_shadow_ambient; @@ -2594,6 +2649,7 @@ struct gl_extensions GLboolean ARB_texture_border_clamp; GLboolean ARB_texture_buffer_object; GLboolean ARB_texture_compression; + GLboolean ARB_texture_compression_rgtc; GLboolean ARB_texture_cube_map; GLboolean ARB_texture_env_combine; GLboolean ARB_texture_env_crossbar; @@ -2656,7 +2712,6 @@ struct gl_extensions GLboolean EXT_texture3D; GLboolean EXT_texture_array; GLboolean EXT_texture_compression_s3tc; - GLboolean EXT_texture_compression_rgtc; GLboolean EXT_texture_env_add; GLboolean EXT_texture_env_combine; GLboolean EXT_texture_env_dot3; @@ -2710,6 +2765,7 @@ struct gl_extensions GLboolean S3_s3tc; GLboolean OES_EGL_image; GLboolean OES_draw_texture; + GLboolean EXT_texture_format_BGRA8888; /** The extension string */ const GLubyte *String; /** Number of supported extensions */ @@ -2732,7 +2788,7 @@ struct gl_matrix_stack /** * \name Bits for image transfer operations - * \sa __GLcontextRec::ImageTransferState. + * \sa __struct gl_contextRec::ImageTransferState. */ /*@{*/ #define IMAGE_SCALE_BIAS_BIT 0x1 @@ -2752,34 +2808,34 @@ struct gl_matrix_stack * 4 unused flags. */ /*@{*/ -#define _NEW_MODELVIEW 0x1 /**< __GLcontextRec::ModelView */ -#define _NEW_PROJECTION 0x2 /**< __GLcontextRec::Projection */ -#define _NEW_TEXTURE_MATRIX 0x4 /**< __GLcontextRec::TextureMatrix */ -#define _NEW_ACCUM 0x10 /**< __GLcontextRec::Accum */ -#define _NEW_COLOR 0x20 /**< __GLcontextRec::Color */ -#define _NEW_DEPTH 0x40 /**< __GLcontextRec::Depth */ -#define _NEW_EVAL 0x80 /**< __GLcontextRec::Eval, __GLcontextRec::EvalMap */ -#define _NEW_FOG 0x100 /**< __GLcontextRec::Fog */ -#define _NEW_HINT 0x200 /**< __GLcontextRec::Hint */ -#define _NEW_LIGHT 0x400 /**< __GLcontextRec::Light */ -#define _NEW_LINE 0x800 /**< __GLcontextRec::Line */ -#define _NEW_PIXEL 0x1000 /**< __GLcontextRec::Pixel */ -#define _NEW_POINT 0x2000 /**< __GLcontextRec::Point */ -#define _NEW_POLYGON 0x4000 /**< __GLcontextRec::Polygon */ -#define _NEW_POLYGONSTIPPLE 0x8000 /**< __GLcontextRec::PolygonStipple */ -#define _NEW_SCISSOR 0x10000 /**< __GLcontextRec::Scissor */ -#define _NEW_STENCIL 0x20000 /**< __GLcontextRec::Stencil */ -#define _NEW_TEXTURE 0x40000 /**< __GLcontextRec::Texture */ -#define _NEW_TRANSFORM 0x80000 /**< __GLcontextRec::Transform */ -#define _NEW_VIEWPORT 0x100000 /**< __GLcontextRec::Viewport */ -#define _NEW_PACKUNPACK 0x200000 /**< __GLcontextRec::Pack, __GLcontextRec::Unpack */ -#define _NEW_ARRAY 0x400000 /**< __GLcontextRec::Array */ -#define _NEW_RENDERMODE 0x800000 /**< __GLcontextRec::RenderMode, __GLcontextRec::Feedback, __GLcontextRec::Select */ -#define _NEW_BUFFERS 0x1000000 /**< __GLcontextRec::Visual, __GLcontextRec::DrawBuffer, */ -#define _NEW_MULTISAMPLE 0x2000000 /**< __GLcontextRec::Multisample */ -#define _NEW_TRACK_MATRIX 0x4000000 /**< __GLcontextRec::VertexProgram */ -#define _NEW_PROGRAM 0x8000000 /**< __GLcontextRec::VertexProgram */ -#define _NEW_CURRENT_ATTRIB 0x10000000 /**< __GLcontextRec::Current */ +#define _NEW_MODELVIEW 0x1 /**< __struct gl_contextRec::ModelView */ +#define _NEW_PROJECTION 0x2 /**< __struct gl_contextRec::Projection */ +#define _NEW_TEXTURE_MATRIX 0x4 /**< __struct gl_contextRec::TextureMatrix */ +#define _NEW_ACCUM 0x10 /**< __struct gl_contextRec::Accum */ +#define _NEW_COLOR 0x20 /**< __struct gl_contextRec::Color */ +#define _NEW_DEPTH 0x40 /**< __struct gl_contextRec::Depth */ +#define _NEW_EVAL 0x80 /**< __struct gl_contextRec::Eval, __struct gl_contextRec::EvalMap */ +#define _NEW_FOG 0x100 /**< __struct gl_contextRec::Fog */ +#define _NEW_HINT 0x200 /**< __struct gl_contextRec::Hint */ +#define _NEW_LIGHT 0x400 /**< __struct gl_contextRec::Light */ +#define _NEW_LINE 0x800 /**< __struct gl_contextRec::Line */ +#define _NEW_PIXEL 0x1000 /**< __struct gl_contextRec::Pixel */ +#define _NEW_POINT 0x2000 /**< __struct gl_contextRec::Point */ +#define _NEW_POLYGON 0x4000 /**< __struct gl_contextRec::Polygon */ +#define _NEW_POLYGONSTIPPLE 0x8000 /**< __struct gl_contextRec::PolygonStipple */ +#define _NEW_SCISSOR 0x10000 /**< __struct gl_contextRec::Scissor */ +#define _NEW_STENCIL 0x20000 /**< __struct gl_contextRec::Stencil */ +#define _NEW_TEXTURE 0x40000 /**< __struct gl_contextRec::Texture */ +#define _NEW_TRANSFORM 0x80000 /**< __struct gl_contextRec::Transform */ +#define _NEW_VIEWPORT 0x100000 /**< __struct gl_contextRec::Viewport */ +#define _NEW_PACKUNPACK 0x200000 /**< __struct gl_contextRec::Pack, __struct gl_contextRec::Unpack */ +#define _NEW_ARRAY 0x400000 /**< __struct gl_contextRec::Array */ +#define _NEW_RENDERMODE 0x800000 /**< __struct gl_contextRec::RenderMode, __struct gl_contextRec::Feedback, __struct gl_contextRec::Select */ +#define _NEW_BUFFERS 0x1000000 /**< __struct gl_contextRec::Visual, __struct gl_contextRec::DrawBuffer, */ +#define _NEW_MULTISAMPLE 0x2000000 /**< __struct gl_contextRec::Multisample */ +#define _NEW_TRACK_MATRIX 0x4000000 /**< __struct gl_contextRec::VertexProgram */ +#define _NEW_PROGRAM 0x8000000 /**< __struct gl_contextRec::VertexProgram */ +#define _NEW_CURRENT_ATTRIB 0x10000000 /**< __struct gl_contextRec::Current */ #define _NEW_PROGRAM_CONSTANTS 0x20000000 #define _NEW_BUFFER_OBJECT 0x40000000 #define _NEW_ALL ~0 @@ -2822,7 +2878,7 @@ struct gl_matrix_stack /** * \name A bunch of flags that we think might be useful to drivers. * - * Set in the __GLcontextRec::_TriangleCaps bitfield. + * Set in the __struct gl_contextRec::_TriangleCaps bitfield. */ /*@{*/ #define DD_FLATSHADE 0x1 @@ -2887,32 +2943,6 @@ struct gl_matrix_stack #include "dd.h" -#define NUM_VERTEX_FORMAT_ENTRIES (sizeof(GLvertexformat) / sizeof(void *)) - -/** - * Core Mesa's support for tnl modules: - */ -struct gl_tnl_module -{ - /** - * Vertex format to be lazily swapped into current dispatch. - */ - const GLvertexformat *Current; - - /** - * \name Record of functions swapped out. - * On restore, only need to swap these functions back in. - */ - /*@{*/ - struct { - _glapi_proc * location; - _glapi_proc function; - } Swapped[NUM_VERTEX_FORMAT_ENTRIES]; - GLuint SwapCount; - /*@}*/ -}; - - /** * Display list flags. * Strictly this is a tnl-private concept, but it doesn't seem @@ -2990,9 +3020,9 @@ typedef enum { * Think of this as a base class from which device drivers will derive * sub classes. * - * The GLcontext typedef names this structure. + * The struct gl_context typedef names this structure. */ -struct __GLcontextRec +struct gl_context { /** State possibly shared with other contexts in the address space */ struct gl_shared_state *Shared; @@ -3005,11 +3035,11 @@ struct __GLcontextRec struct _glapi_table *CurrentDispatch; /**< == Save or Exec !! */ /*@}*/ - GLvisual Visual; - GLframebuffer *DrawBuffer; /**< buffer for writing */ - GLframebuffer *ReadBuffer; /**< buffer for reading */ - GLframebuffer *WinSysDrawBuffer; /**< set with MakeCurrent */ - GLframebuffer *WinSysReadBuffer; /**< set with MakeCurrent */ + struct gl_config Visual; + struct gl_framebuffer *DrawBuffer; /**< buffer for writing */ + struct gl_framebuffer *ReadBuffer; /**< buffer for reading */ + struct gl_framebuffer *WinSysDrawBuffer; /**< set with MakeCurrent */ + struct gl_framebuffer *WinSysReadBuffer; /**< set with MakeCurrent */ /** * Device driver function pointer table @@ -3176,9 +3206,6 @@ struct __GLcontextRec */ GLboolean mvp_with_dp4; - /** Core tnl module support */ - struct gl_tnl_module TnlModule; - /** * \name Hooks for module contexts. * diff --git a/src/mesa/main/multisample.c b/src/mesa/main/multisample.c index 01b68df7af..5487d45f56 100644 --- a/src/mesa/main/multisample.c +++ b/src/mesa/main/multisample.c @@ -50,7 +50,7 @@ _mesa_SampleCoverageARB(GLclampf value, GLboolean invert) * \param ctx the GL context. */ void -_mesa_init_multisample(GLcontext *ctx) +_mesa_init_multisample(struct gl_context *ctx) { ctx->Multisample.Enabled = GL_TRUE; ctx->Multisample.SampleAlphaToCoverage = GL_FALSE; diff --git a/src/mesa/main/multisample.h b/src/mesa/main/multisample.h index 998488ef42..c7cc432daa 100644 --- a/src/mesa/main/multisample.h +++ b/src/mesa/main/multisample.h @@ -33,7 +33,7 @@ _mesa_SampleCoverageARB(GLclampf value, GLboolean invert); extern void -_mesa_init_multisample(GLcontext *ctx); +_mesa_init_multisample(struct gl_context *ctx); #endif diff --git a/src/mesa/main/nvprogram.c b/src/mesa/main/nvprogram.c index 3a570b7dda..833bf916ec 100644 --- a/src/mesa/main/nvprogram.c +++ b/src/mesa/main/nvprogram.c @@ -511,7 +511,7 @@ _mesa_GetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer) } void -_mesa_emit_nv_temp_initialization(GLcontext *ctx, +_mesa_emit_nv_temp_initialization(struct gl_context *ctx, struct gl_program *program) { struct prog_instruction *inst; @@ -559,7 +559,7 @@ _mesa_emit_nv_temp_initialization(GLcontext *ctx, } void -_mesa_setup_nv_temporary_count(GLcontext *ctx, struct gl_program *program) +_mesa_setup_nv_temporary_count(struct gl_context *ctx, struct gl_program *program) { GLuint i; diff --git a/src/mesa/main/nvprogram.h b/src/mesa/main/nvprogram.h index 260a25ba9e..035f2fe242 100644 --- a/src/mesa/main/nvprogram.h +++ b/src/mesa/main/nvprogram.h @@ -106,10 +106,10 @@ _mesa_GetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); extern void -_mesa_setup_nv_temporary_count(GLcontext *ctx, struct gl_program *program); +_mesa_setup_nv_temporary_count(struct gl_context *ctx, struct gl_program *program); extern void -_mesa_emit_nv_temp_initialization(GLcontext *ctx, +_mesa_emit_nv_temp_initialization(struct gl_context *ctx, struct gl_program *program); #endif diff --git a/src/mesa/main/pixel.c b/src/mesa/main/pixel.c index 1d378e4d9f..5f824b3429 100644 --- a/src/mesa/main/pixel.c +++ b/src/mesa/main/pixel.c @@ -69,7 +69,7 @@ _mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor ) * Return pointer to a pixelmap by name. */ static struct gl_pixelmap * -get_pixelmap(GLcontext *ctx, GLenum map) +get_pixelmap(struct gl_context *ctx, GLenum map) { switch (map) { case GL_PIXEL_MAP_I_TO_I: @@ -102,7 +102,7 @@ get_pixelmap(GLcontext *ctx, GLenum map) * Helper routine used by the other _mesa_PixelMap() functions. */ static void -store_pixelmap(GLcontext *ctx, GLenum map, GLsizei mapsize, +store_pixelmap(struct gl_context *ctx, GLenum map, GLsizei mapsize, const GLfloat *values) { GLint i; @@ -143,7 +143,7 @@ store_pixelmap(GLcontext *ctx, GLenum map, GLsizei mapsize, * Convenience wrapper for _mesa_validate_pbo_access() for gl[Get]PixelMap(). */ static GLboolean -validate_pbo_access(GLcontext *ctx, struct gl_pixelstore_attrib *pack, +validate_pbo_access(struct gl_context *ctx, struct gl_pixelstore_attrib *pack, GLsizei mapsize, GLenum format, GLenum type, const GLvoid *ptr) { @@ -590,7 +590,7 @@ _mesa_PixelTransferi( GLenum pname, GLint param ) * pixel transfer operations are enabled. */ static void -update_image_transfer_state(GLcontext *ctx) +update_image_transfer_state(struct gl_context *ctx) { GLuint mask = 0; @@ -613,7 +613,7 @@ update_image_transfer_state(GLcontext *ctx) /** * Update mesa pixel transfer derived state. */ -void _mesa_update_pixel( GLcontext *ctx, GLuint new_state ) +void _mesa_update_pixel( struct gl_context *ctx, GLuint new_state ) { if (new_state & _MESA_NEW_TRANSFER_STATE) update_image_transfer_state(ctx); @@ -655,7 +655,7 @@ init_pixelmap(struct gl_pixelmap *map) * Initialize the context's PIXEL attribute group. */ void -_mesa_init_pixel( GLcontext *ctx ) +_mesa_init_pixel( struct gl_context *ctx ) { /* Pixel group */ ctx->Pixel.RedBias = 0.0; diff --git a/src/mesa/main/pixel.h b/src/mesa/main/pixel.h index f4d3f1efdb..03560835a8 100644 --- a/src/mesa/main/pixel.h +++ b/src/mesa/main/pixel.h @@ -39,7 +39,7 @@ #if FEATURE_pixel_transfer extern void -_mesa_update_pixel( GLcontext *ctx, GLuint newstate ); +_mesa_update_pixel( struct gl_context *ctx, GLuint newstate ); extern void _mesa_init_pixel_dispatch( struct _glapi_table * disp ); @@ -47,7 +47,7 @@ _mesa_init_pixel_dispatch( struct _glapi_table * disp ); #else /* FEATURE_pixel_transfer */ static INLINE void -_mesa_update_pixel(GLcontext *ctx, GLuint newstate) +_mesa_update_pixel(struct gl_context *ctx, GLuint newstate) { } @@ -60,7 +60,7 @@ _mesa_init_pixel_dispatch(struct _glapi_table *disp) extern void -_mesa_init_pixel( GLcontext * ctx ); +_mesa_init_pixel( struct gl_context * ctx ); /*@}*/ diff --git a/src/mesa/main/pixelstore.c b/src/mesa/main/pixelstore.c index ec585ef0cc..b16d27a4ea 100644 --- a/src/mesa/main/pixelstore.c +++ b/src/mesa/main/pixelstore.c @@ -228,7 +228,7 @@ _mesa_PixelStoref( GLenum pname, GLfloat param ) * Initialize the context's pixel store state. */ void -_mesa_init_pixelstore( GLcontext *ctx ) +_mesa_init_pixelstore( struct gl_context *ctx ) { /* Pixel transfer */ ctx->Pack.Alignment = 4; diff --git a/src/mesa/main/pixelstore.h b/src/mesa/main/pixelstore.h index 47bff4276d..cdef7de261 100644 --- a/src/mesa/main/pixelstore.h +++ b/src/mesa/main/pixelstore.h @@ -45,7 +45,7 @@ _mesa_PixelStoref( GLenum pname, GLfloat param ); extern void -_mesa_init_pixelstore( GLcontext *ctx ); +_mesa_init_pixelstore( struct gl_context *ctx ); #endif diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c index eab9d13d6d..87bfae27eb 100644 --- a/src/mesa/main/points.c +++ b/src/mesa/main/points.c @@ -245,11 +245,11 @@ _mesa_PointParameterfv( GLenum pname, const GLfloat *params) * * \param ctx GL context. * - * Initializes __GLcontextRec::Point and point related constants in - * __GLcontextRec::Const. + * Initializes __struct gl_contextRec::Point and point related constants in + * __struct gl_contextRec::Const. */ void -_mesa_init_point(GLcontext *ctx) +_mesa_init_point(struct gl_context *ctx) { GLuint i; diff --git a/src/mesa/main/points.h b/src/mesa/main/points.h index 156641eab9..b222379b1b 100644 --- a/src/mesa/main/points.h +++ b/src/mesa/main/points.h @@ -51,7 +51,7 @@ extern void GLAPIENTRY _mesa_PointParameterfv( GLenum pname, const GLfloat *params ); extern void -_mesa_init_point( GLcontext * ctx ); +_mesa_init_point( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/polygon.c b/src/mesa/main/polygon.c index 30e4a606bb..970020048d 100644 --- a/src/mesa/main/polygon.c +++ b/src/mesa/main/polygon.c @@ -190,7 +190,7 @@ _mesa_PolygonMode( GLenum face, GLenum mode ) * too. */ void -_mesa_polygon_stipple(GLcontext *ctx, const GLubyte *pattern) +_mesa_polygon_stipple(struct gl_context *ctx, const GLubyte *pattern) { pattern = _mesa_map_validate_pbo_source(ctx, 2, &ctx->Unpack, 32, 32, 1, @@ -293,10 +293,10 @@ _mesa_PolygonOffsetEXT( GLfloat factor, GLfloat bias ) * * \param ctx GL context. * - * Initializes __GLcontextRec::Polygon and __GLcontextRec::PolygonStipple + * Initializes __struct gl_contextRec::Polygon and __struct gl_contextRec::PolygonStipple * attribute groups. */ -void _mesa_init_polygon( GLcontext * ctx ) +void _mesa_init_polygon( struct gl_context * ctx ) { /* Polygon group */ ctx->Polygon.CullFlag = GL_FALSE; diff --git a/src/mesa/main/polygon.h b/src/mesa/main/polygon.h index 78e8394d05..ad0ac4cc3a 100644 --- a/src/mesa/main/polygon.h +++ b/src/mesa/main/polygon.h @@ -36,7 +36,7 @@ extern void -_mesa_polygon_stipple(GLcontext *ctx, const GLubyte *pattern); +_mesa_polygon_stipple(struct gl_context *ctx, const GLubyte *pattern); extern void GLAPIENTRY @@ -61,6 +61,6 @@ extern void GLAPIENTRY _mesa_GetPolygonStipple( GLubyte *mask ); extern void -_mesa_init_polygon( GLcontext * ctx ); +_mesa_init_polygon( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c index a907dac836..8874397720 100644 --- a/src/mesa/main/queryobj.c +++ b/src/mesa/main/queryobj.c @@ -43,7 +43,7 @@ * \return pointer to new query_object object or NULL if out of memory. */ static struct gl_query_object * -_mesa_new_query_object(GLcontext *ctx, GLuint id) +_mesa_new_query_object(struct gl_context *ctx, GLuint id) { struct gl_query_object *q = MALLOC_STRUCT(gl_query_object); (void) ctx; @@ -62,7 +62,7 @@ _mesa_new_query_object(GLcontext *ctx, GLuint id) * Called via ctx->Driver.BeginQuery(). */ static void -_mesa_begin_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_begin_query(struct gl_context *ctx, struct gl_query_object *q) { /* no-op */ } @@ -73,7 +73,7 @@ _mesa_begin_query(GLcontext *ctx, struct gl_query_object *q) * Called via ctx->Driver.EndQuery(). */ static void -_mesa_end_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_end_query(struct gl_context *ctx, struct gl_query_object *q) { q->Ready = GL_TRUE; } @@ -84,7 +84,7 @@ _mesa_end_query(GLcontext *ctx, struct gl_query_object *q) * Called via ctx->Driver.WaitQuery(). */ static void -_mesa_wait_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_wait_query(struct gl_context *ctx, struct gl_query_object *q) { /* For software drivers, _mesa_end_query() should have completed the query. * For real hardware, implement a proper WaitQuery() driver function, @@ -99,7 +99,7 @@ _mesa_wait_query(GLcontext *ctx, struct gl_query_object *q) * Called via ctx->Driver.CheckQuery(). */ static void -_mesa_check_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_check_query(struct gl_context *ctx, struct gl_query_object *q) { /* No-op for sw rendering. * HW drivers may need to flush at this time. @@ -112,7 +112,7 @@ _mesa_check_query(GLcontext *ctx, struct gl_query_object *q) * Not removed from hash table here. */ static void -_mesa_delete_query(GLcontext *ctx, struct gl_query_object *q) +_mesa_delete_query(struct gl_context *ctx, struct gl_query_object *q) { free(q); } @@ -135,7 +135,7 @@ _mesa_init_query_object_functions(struct dd_function_table *driver) * \return NULL if invalid target, else the address of binding point */ static struct gl_query_object ** -get_query_binding_point(GLcontext *ctx, GLenum target) +get_query_binding_point(struct gl_context *ctx, GLenum target) { switch (target) { case GL_SAMPLES_PASSED_ARB: @@ -535,7 +535,7 @@ _mesa_init_queryobj_dispatch(struct _glapi_table *disp) * Allocate/init the context state related to query objects. */ void -_mesa_init_queryobj(GLcontext *ctx) +_mesa_init_queryobj(struct gl_context *ctx) { ctx->Query.QueryObjects = _mesa_NewHashTable(); ctx->Query.CurrentOcclusionObject = NULL; @@ -549,7 +549,7 @@ static void delete_queryobj_cb(GLuint id, void *data, void *userData) { struct gl_query_object *q= (struct gl_query_object *) data; - GLcontext *ctx = (GLcontext *)userData; + struct gl_context *ctx = (struct gl_context *)userData; ctx->Driver.DeleteQuery(ctx, q); } @@ -558,7 +558,7 @@ delete_queryobj_cb(GLuint id, void *data, void *userData) * Free the context state related to query objects. */ void -_mesa_free_queryobj_data(GLcontext *ctx) +_mesa_free_queryobj_data(struct gl_context *ctx) { _mesa_HashDeleteAll(ctx->Query.QueryObjects, delete_queryobj_cb, ctx); _mesa_DeleteHashTable(ctx->Query.QueryObjects); diff --git a/src/mesa/main/queryobj.h b/src/mesa/main/queryobj.h index 8746ed15e9..e289625731 100644 --- a/src/mesa/main/queryobj.h +++ b/src/mesa/main/queryobj.h @@ -34,7 +34,7 @@ #if FEATURE_queryobj static INLINE struct gl_query_object * -_mesa_lookup_query_object(GLcontext *ctx, GLuint id) +_mesa_lookup_query_object(struct gl_context *ctx, GLuint id) { return (struct gl_query_object *) _mesa_HashLookup(ctx->Query.QueryObjects, id); @@ -68,7 +68,7 @@ _mesa_init_queryobj_dispatch(struct _glapi_table *disp); #else /* FEATURE_queryobj */ static INLINE struct gl_query_object * -_mesa_lookup_query_object(GLcontext *ctx, GLuint id) +_mesa_lookup_query_object(struct gl_context *ctx, GLuint id) { return NULL; } @@ -86,10 +86,10 @@ _mesa_init_queryobj_dispatch(struct _glapi_table *disp) #endif /* FEATURE_queryobj */ extern void -_mesa_init_queryobj(GLcontext *ctx); +_mesa_init_queryobj(struct gl_context *ctx); extern void -_mesa_free_queryobj_data(GLcontext *ctx); +_mesa_free_queryobj_data(struct gl_context *ctx); #endif /* QUERYOBJ_H */ diff --git a/src/mesa/main/rastpos.c b/src/mesa/main/rastpos.c index 75c67f2693..6f52f07dfa 100644 --- a/src/mesa/main/rastpos.c +++ b/src/mesa/main/rastpos.c @@ -545,10 +545,10 @@ _mesa_init_rastpos_dispatch(struct _glapi_table *disp) * \param ctx GL context. * * Initialize the current raster position information in - * __GLcontextRec::Current, and adds the extension entry points to the + * __struct gl_contextRec::Current, and adds the extension entry points to the * dispatcher. */ -void _mesa_init_rastpos( GLcontext * ctx ) +void _mesa_init_rastpos( struct gl_context * ctx ) { int i; diff --git a/src/mesa/main/rastpos.h b/src/mesa/main/rastpos.h index 4994616d40..9b508eaedf 100644 --- a/src/mesa/main/rastpos.h +++ b/src/mesa/main/rastpos.h @@ -50,7 +50,7 @@ _mesa_init_rastpos_dispatch(struct _glapi_table *disp) #endif /* FEATURE_rastpos */ extern void -_mesa_init_rastpos(GLcontext *ctx); +_mesa_init_rastpos(struct gl_context *ctx); /*@}*/ diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c index 93f2bd31cc..0043c8adc4 100644 --- a/src/mesa/main/readpix.c +++ b/src/mesa/main/readpix.c @@ -40,7 +40,7 @@ * \return GL_TRUE if error detected, GL_FALSE if no errors */ GLboolean -_mesa_error_check_format_type(GLcontext *ctx, GLenum format, GLenum type, +_mesa_error_check_format_type(struct gl_context *ctx, GLenum format, GLenum type, GLboolean drawing) { const char *readDraw = drawing ? "Draw" : "Read"; @@ -66,6 +66,7 @@ _mesa_error_check_format_type(GLcontext *ctx, GLenum format, GLenum type, /* additional checks */ switch (format) { + case GL_RG: case GL_RED: case GL_GREEN: case GL_BLUE: diff --git a/src/mesa/main/readpix.h b/src/mesa/main/readpix.h index 1bf02fb8e4..0753e619fe 100644 --- a/src/mesa/main/readpix.h +++ b/src/mesa/main/readpix.h @@ -31,7 +31,7 @@ extern GLboolean -_mesa_error_check_format_type(GLcontext *ctx, GLenum format, GLenum type, +_mesa_error_check_format_type(struct gl_context *ctx, GLenum format, GLenum type, GLboolean drawing); extern void GLAPIENTRY diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c index adc1199d87..dc8bc74787 100644 --- a/src/mesa/main/renderbuffer.c +++ b/src/mesa/main/renderbuffer.c @@ -46,7 +46,6 @@ #include "fbobject.h" #include "formats.h" #include "mtypes.h" -#include "fbobject.h" #include "renderbuffer.h" @@ -62,7 +61,7 @@ */ static void * -get_pointer_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -76,7 +75,7 @@ get_pointer_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLubyte *src = (const GLubyte *) rb->Data + y * rb->Width + x; @@ -86,7 +85,7 @@ get_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLubyte *dst = (GLubyte *) values; @@ -100,7 +99,7 @@ get_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLubyte *src = (const GLubyte *) values; @@ -121,7 +120,7 @@ put_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLubyte val = *((const GLubyte *) value); @@ -145,7 +144,7 @@ put_mono_row_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -162,7 +161,7 @@ put_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_values_ubyte(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -184,7 +183,7 @@ put_mono_values_ubyte(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, */ static void * -get_pointer_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -196,7 +195,7 @@ get_pointer_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const void *src = rb->GetPointer(ctx, rb, x, y); @@ -206,7 +205,7 @@ get_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLushort *dst = (GLushort *) values; @@ -220,7 +219,7 @@ get_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLushort *src = (const GLushort *) values; @@ -241,7 +240,7 @@ put_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLushort val = *((const GLushort *) value); @@ -265,7 +264,7 @@ put_mono_row_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -282,7 +281,7 @@ put_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ushort(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -313,7 +312,7 @@ put_mono_values_ushort(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void * -get_pointer_uint(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -325,7 +324,7 @@ get_pointer_uint(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const void *src = rb->GetPointer(ctx, rb, x, y); @@ -336,7 +335,7 @@ get_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLuint *dst = (GLuint *) values; @@ -351,7 +350,7 @@ get_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLuint *src = (const GLuint *) values; @@ -373,7 +372,7 @@ put_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLuint val = *((const GLuint *) value); @@ -398,7 +397,7 @@ put_mono_row_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -416,7 +415,7 @@ put_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_values_uint(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -441,7 +440,7 @@ put_mono_values_uint(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, */ static void * -get_pointer_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { ASSERT(rb->Format == MESA_FORMAT_RGB888); @@ -453,7 +452,7 @@ get_pointer_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLubyte *src = (const GLubyte *) rb->Data + 3 * (y * rb->Width + x); @@ -471,7 +470,7 @@ get_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLubyte *dst = (GLubyte *) values; @@ -490,7 +489,7 @@ get_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* note: incoming values are RGB+A! */ @@ -510,7 +509,7 @@ put_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_rgb_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_rgb_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* note: incoming values are RGB+A! */ @@ -530,7 +529,7 @@ put_row_rgb_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { /* note: incoming value is RGB+A! */ @@ -558,7 +557,7 @@ put_mono_row_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -579,7 +578,7 @@ put_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -607,7 +606,7 @@ put_mono_values_ubyte3(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void * -get_pointer_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -619,7 +618,7 @@ get_pointer_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLubyte *src = (const GLubyte *) rb->Data + 4 * (y * rb->Width + x); @@ -630,7 +629,7 @@ get_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { /* treat 4*GLubyte as 1*GLuint */ @@ -646,7 +645,7 @@ get_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* treat 4*GLubyte as 1*GLuint */ @@ -669,7 +668,7 @@ put_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_rgb_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_rgb_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* Store RGB values in RGBA buffer */ @@ -690,7 +689,7 @@ put_row_rgb_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { /* treat 4*GLubyte as 1*GLuint */ @@ -723,7 +722,7 @@ put_mono_row_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -742,7 +741,7 @@ put_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -766,7 +765,7 @@ put_mono_values_ubyte4(GLcontext *ctx, struct gl_renderbuffer *rb, */ static void * -get_pointer_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, +get_pointer_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { if (!rb->Data) @@ -777,7 +776,7 @@ get_pointer_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, static void -get_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_row_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const GLshort *src = (const GLshort *) rb->Data + 4 * (y * rb->Width + x); @@ -787,7 +786,7 @@ get_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -get_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +get_values_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { GLushort *dst = (GLushort *) values; @@ -802,7 +801,7 @@ get_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLushort *src = (const GLushort *) values; @@ -826,7 +825,7 @@ put_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_row_rgb_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_row_rgb_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { /* Put RGB values in RGBA buffer */ @@ -851,7 +850,7 @@ put_row_rgb_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_mono_row_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLushort val0 = ((const GLushort *) value)[0]; @@ -879,7 +878,7 @@ put_mono_row_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +put_values_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -899,7 +898,7 @@ put_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -put_mono_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, +put_mono_values_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -937,7 +936,7 @@ put_mono_values_ushort4(GLcontext *ctx, struct gl_renderbuffer *rb, * Get/PutValues functions. */ GLboolean -_mesa_soft_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +_mesa_soft_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { @@ -1146,7 +1145,7 @@ _mesa_soft_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, static GLboolean -alloc_storage_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, +alloc_storage_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLenum internalFormat, GLuint width, GLuint height) { ASSERT(arb != arb->Wrapped); @@ -1196,7 +1195,7 @@ delete_renderbuffer_alpha8(struct gl_renderbuffer *arb) static void * -get_pointer_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, +get_pointer_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLint x, GLint y) { return NULL; /* don't allow direct access! */ @@ -1204,7 +1203,7 @@ get_pointer_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, static void -get_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +get_row_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, void *values) { /* NOTE: 'values' is RGBA format! */ @@ -1223,7 +1222,7 @@ get_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -get_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +get_values_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, const GLint x[], const GLint y[], void *values) { GLubyte *dst = (GLubyte *) values; @@ -1241,7 +1240,7 @@ get_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_row_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLubyte *src = (const GLubyte *) values; @@ -1261,7 +1260,7 @@ put_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_row_rgb_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_row_rgb_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const GLubyte *src = (const GLubyte *) values; @@ -1281,7 +1280,7 @@ put_row_rgb_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_mono_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_mono_row_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const GLubyte val = ((const GLubyte *) value)[3]; @@ -1306,7 +1305,7 @@ put_mono_row_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, +put_values_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -1327,7 +1326,7 @@ put_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, GLuint count, static void -put_mono_values_alpha8(GLcontext *ctx, struct gl_renderbuffer *arb, +put_mono_values_alpha8(struct gl_context *ctx, struct gl_renderbuffer *arb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -1369,7 +1368,7 @@ copy_buffer_alpha8(struct gl_renderbuffer* dst, struct gl_renderbuffer* src) * direct buffer access is not supported. */ static void * -nop_get_pointer(GLcontext *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) +nop_get_pointer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { return NULL; } @@ -1423,7 +1422,7 @@ _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name) * renderbuffers or window-system renderbuffers. */ struct gl_renderbuffer * -_mesa_new_renderbuffer(GLcontext *ctx, GLuint name) +_mesa_new_renderbuffer(struct gl_context *ctx, GLuint name) { struct gl_renderbuffer *rb = CALLOC_STRUCT(gl_renderbuffer); if (rb) { @@ -1454,7 +1453,7 @@ _mesa_delete_renderbuffer(struct gl_renderbuffer *rb) * This would not be used for hardware-based renderbuffers. */ struct gl_renderbuffer * -_mesa_new_soft_renderbuffer(GLcontext *ctx, GLuint name) +_mesa_new_soft_renderbuffer(struct gl_context *ctx, GLuint name) { struct gl_renderbuffer *rb = _mesa_new_renderbuffer(ctx, name); if (rb) { @@ -1477,7 +1476,7 @@ _mesa_new_soft_renderbuffer(GLcontext *ctx, GLuint name) * rendering! */ GLboolean -_mesa_add_color_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_color_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint rgbBits, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) @@ -1541,7 +1540,7 @@ _mesa_add_color_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, * rendering! */ GLboolean -_mesa_add_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) @@ -1625,7 +1624,7 @@ _mesa_add_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, * copy the back buffer alpha channel into the front buffer alpha channel. */ void -_mesa_copy_soft_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb) +_mesa_copy_soft_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb) { if (fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer && fb->Attachment[BUFFER_BACK_LEFT].Renderbuffer) @@ -1649,7 +1648,7 @@ _mesa_copy_soft_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb) * rendering! */ GLboolean -_mesa_add_depth_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_depth_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint depthBits) { struct gl_renderbuffer *rb; @@ -1697,7 +1696,7 @@ _mesa_add_depth_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, * rendering! */ GLboolean -_mesa_add_stencil_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_stencil_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint stencilBits) { struct gl_renderbuffer *rb; @@ -1736,7 +1735,7 @@ _mesa_add_stencil_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, * rendering! */ GLboolean -_mesa_add_accum_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_accum_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint redBits, GLuint greenBits, GLuint blueBits, GLuint alphaBits) { @@ -1777,7 +1776,7 @@ _mesa_add_accum_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, * NOTE: color-index aux buffers not supported. */ GLboolean -_mesa_add_aux_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_aux_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint colorBits, GLuint numBuffers) { GLuint i; @@ -1991,7 +1990,7 @@ _mesa_reference_renderbuffer(struct gl_renderbuffer **ptr, * \return new depth/stencil renderbuffer */ struct gl_renderbuffer * -_mesa_new_depthstencil_renderbuffer(GLcontext *ctx, GLuint name) +_mesa_new_depthstencil_renderbuffer(struct gl_context *ctx, GLuint name) { struct gl_renderbuffer *dsrb; diff --git a/src/mesa/main/renderbuffer.h b/src/mesa/main/renderbuffer.h index bc92b26982..8791369dbe 100644 --- a/src/mesa/main/renderbuffer.h +++ b/src/mesa/main/renderbuffer.h @@ -36,52 +36,52 @@ extern void _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name); extern struct gl_renderbuffer * -_mesa_new_renderbuffer(GLcontext *ctx, GLuint name); +_mesa_new_renderbuffer(struct gl_context *ctx, GLuint name); extern void _mesa_delete_renderbuffer(struct gl_renderbuffer *rb); extern struct gl_renderbuffer * -_mesa_new_soft_renderbuffer(GLcontext *ctx, GLuint name); +_mesa_new_soft_renderbuffer(struct gl_context *ctx, GLuint name); extern GLboolean -_mesa_soft_renderbuffer_storage(GLcontext *ctx, struct gl_renderbuffer *rb, +_mesa_soft_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height); extern GLboolean -_mesa_add_color_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_color_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint rgbBits, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight); extern GLboolean -_mesa_add_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight); extern void -_mesa_copy_soft_alpha_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb); +_mesa_copy_soft_alpha_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb); extern GLboolean -_mesa_add_depth_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_depth_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint depthBits); extern GLboolean -_mesa_add_stencil_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_stencil_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint stencilBits); extern GLboolean -_mesa_add_accum_renderbuffer(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_accum_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint redBits, GLuint greenBits, GLuint blueBits, GLuint alphaBits); extern GLboolean -_mesa_add_aux_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb, +_mesa_add_aux_renderbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint bits, GLuint numBuffers); extern void @@ -105,7 +105,7 @@ _mesa_reference_renderbuffer(struct gl_renderbuffer **ptr, struct gl_renderbuffer *rb); extern struct gl_renderbuffer * -_mesa_new_depthstencil_renderbuffer(GLcontext *ctx, GLuint name); +_mesa_new_depthstencil_renderbuffer(struct gl_context *ctx, GLuint name); #endif /* RENDERBUFFER_H */ diff --git a/src/mesa/main/scissor.c b/src/mesa/main/scissor.c index 523f3c3ab8..4cf0bc2528 100644 --- a/src/mesa/main/scissor.c +++ b/src/mesa/main/scissor.c @@ -58,12 +58,12 @@ _mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ) * * \sa glScissor(). * - * Verifies the parameters and updates __GLcontextRec::Scissor. On a + * Verifies the parameters and updates __struct gl_contextRec::Scissor. On a * change flushes the vertices and notifies the driver via * the dd_function_table::Scissor callback. */ void -_mesa_set_scissor(GLcontext *ctx, +_mesa_set_scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) { if (x == ctx->Scissor.X && @@ -88,7 +88,7 @@ _mesa_set_scissor(GLcontext *ctx, * \param ctx the GL context. */ void -_mesa_init_scissor(GLcontext *ctx) +_mesa_init_scissor(struct gl_context *ctx) { /* Scissor group */ ctx->Scissor.Enabled = GL_FALSE; diff --git a/src/mesa/main/scissor.h b/src/mesa/main/scissor.h index b852a2122d..bd909019db 100644 --- a/src/mesa/main/scissor.h +++ b/src/mesa/main/scissor.h @@ -35,12 +35,12 @@ _mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ); extern void -_mesa_set_scissor(GLcontext *ctx, +_mesa_set_scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height); extern void -_mesa_init_scissor(GLcontext *ctx); +_mesa_init_scissor(struct gl_context *ctx); #endif diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index c25d2a1974..8ecda71928 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -47,7 +47,7 @@ #include "program/prog_parameter.h" #include "program/prog_uniform.h" #include "talloc.h" - +#include <stdbool.h> /** Define this to enable shader substitution (see below) */ #define SHADER_SUBST 0 @@ -89,7 +89,7 @@ get_shader_flags(void) * Initialize context's shader state. */ void -_mesa_init_shader_state(GLcontext *ctx) +_mesa_init_shader_state(struct gl_context *ctx) { /* Device drivers may override these to control what kind of instructions * are generated by the GLSL compiler. @@ -114,7 +114,7 @@ _mesa_init_shader_state(GLcontext *ctx) * Free the per-context shader-related state. */ void -_mesa_free_shader_state(GLcontext *ctx) +_mesa_free_shader_state(struct gl_context *ctx) { _mesa_reference_shader_program(ctx, &ctx->Shader.CurrentProgram, NULL); } @@ -202,6 +202,35 @@ _mesa_copy_string(GLchar *dst, GLsizei maxLength, /** + * Confirm that the a shader type is valid and supported by the implementation + * + * \param ctx Current GL context + * \param type Shader target + * + */ +static bool +validate_shader_target(const struct gl_context *ctx, GLenum type) +{ + switch (type) { +#if FEATURE_ARB_fragment_shader + case GL_FRAGMENT_SHADER: + return ctx->Extensions.ARB_fragment_shader; +#endif +#if FEATURE_ARB_vertex_shader + case GL_VERTEX_SHADER: + return ctx->Extensions.ARB_vertex_shader; +#endif +#if FEATURE_ARB_geometry_shader4 + case GL_GEOMETRY_SHADER_ARB: + return ctx->Extensions.ARB_geometry_shader4; +#endif + default: + return false; + } +} + + +/** * Find the length of the longest transform feedback varying name * which was specified with glTransformFeedbackVaryings(). */ @@ -221,7 +250,7 @@ longest_feedback_varying_name(const struct gl_shader_program *shProg) static GLboolean -is_program(GLcontext *ctx, GLuint name) +is_program(struct gl_context *ctx, GLuint name) { struct gl_shader_program *shProg = _mesa_lookup_shader_program(ctx, name); return shProg ? GL_TRUE : GL_FALSE; @@ -229,7 +258,7 @@ is_program(GLcontext *ctx, GLuint name) static GLboolean -is_shader(GLcontext *ctx, GLuint name) +is_shader(struct gl_context *ctx, GLuint name) { struct gl_shader *shader = _mesa_lookup_shader(ctx, name); return shader ? GL_TRUE : GL_FALSE; @@ -240,7 +269,7 @@ is_shader(GLcontext *ctx, GLuint name) * Attach shader to a shader program. */ static void -attach_shader(GLcontext *ctx, GLuint program, GLuint shader) +attach_shader(struct gl_context *ctx, GLuint program, GLuint shader) { struct gl_shader_program *shProg; struct gl_shader *sh; @@ -287,7 +316,7 @@ attach_shader(GLcontext *ctx, GLuint program, GLuint shader) static GLint -get_attrib_location(GLcontext *ctx, GLuint program, const GLchar *name) +get_attrib_location(struct gl_context *ctx, GLuint program, const GLchar *name) { struct gl_shader_program *shProg = _mesa_lookup_shader_program_err(ctx, program, "glGetAttribLocation"); @@ -320,7 +349,7 @@ get_attrib_location(GLcontext *ctx, GLuint program, const GLchar *name) static void -bind_attrib_location(GLcontext *ctx, GLuint program, GLuint index, +bind_attrib_location(struct gl_context *ctx, GLuint program, GLuint index, const GLchar *name) { struct gl_shader_program *shProg; @@ -371,24 +400,18 @@ bind_attrib_location(GLcontext *ctx, GLuint program, GLuint index, static GLuint -create_shader(GLcontext *ctx, GLenum type) +create_shader(struct gl_context *ctx, GLenum type) { struct gl_shader *sh; GLuint name; - name = _mesa_HashFindFreeKeyBlock(ctx->Shared->ShaderObjects, 1); - - switch (type) { - case GL_FRAGMENT_SHADER: - case GL_VERTEX_SHADER: - case GL_GEOMETRY_SHADER_ARB: - sh = ctx->Driver.NewShader(ctx, name, type); - break; - default: + if (!validate_shader_target(ctx, type)) { _mesa_error(ctx, GL_INVALID_ENUM, "CreateShader(type)"); return 0; } + name = _mesa_HashFindFreeKeyBlock(ctx->Shared->ShaderObjects, 1); + sh = ctx->Driver.NewShader(ctx, name, type); _mesa_HashInsert(ctx->Shared->ShaderObjects, name, sh); return name; @@ -396,7 +419,7 @@ create_shader(GLcontext *ctx, GLenum type) static GLuint -create_shader_program(GLcontext *ctx) +create_shader_program(struct gl_context *ctx) { GLuint name; struct gl_shader_program *shProg; @@ -418,7 +441,7 @@ create_shader_program(GLcontext *ctx) * DeleteProgramARB. */ static void -delete_shader_program(GLcontext *ctx, GLuint name) +delete_shader_program(struct gl_context *ctx, GLuint name) { /* * NOTE: deleting shaders/programs works a bit differently than @@ -442,7 +465,7 @@ delete_shader_program(GLcontext *ctx, GLuint name) static void -delete_shader(GLcontext *ctx, GLuint shader) +delete_shader(struct gl_context *ctx, GLuint shader) { struct gl_shader *sh; @@ -458,7 +481,7 @@ delete_shader(GLcontext *ctx, GLuint shader) static void -detach_shader(GLcontext *ctx, GLuint program, GLuint shader) +detach_shader(struct gl_context *ctx, GLuint program, GLuint shader) { struct gl_shader_program *shProg; GLuint n; @@ -526,7 +549,7 @@ detach_shader(GLcontext *ctx, GLuint program, GLuint shader) static void -get_active_attrib(GLcontext *ctx, GLuint program, GLuint index, +get_active_attrib(struct gl_context *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *nameOut) { @@ -561,7 +584,7 @@ get_active_attrib(GLcontext *ctx, GLuint program, GLuint index, * Return list of shaders attached to shader program. */ static void -get_attached_shaders(GLcontext *ctx, GLuint program, GLsizei maxCount, +get_attached_shaders(struct gl_context *ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj) { struct gl_shader_program *shProg = @@ -581,7 +604,7 @@ get_attached_shaders(GLcontext *ctx, GLuint program, GLsizei maxCount, * glGetHandleARB() - return ID/name of currently bound shader program. */ static GLuint -get_handle(GLcontext *ctx, GLenum pname) +get_handle(struct gl_context *ctx, GLenum pname) { if (pname == GL_PROGRAM_OBJECT_ARB) { if (ctx->Shader.CurrentProgram) @@ -602,7 +625,7 @@ get_handle(GLcontext *ctx, GLenum pname) * programs (see glGetProgramivARB). */ static void -get_programiv(GLcontext *ctx, GLuint program, GLenum pname, GLint *params) +get_programiv(struct gl_context *ctx, GLuint program, GLenum pname, GLint *params) { const struct gl_program_parameter_list *attribs; struct gl_shader_program *shProg @@ -684,7 +707,7 @@ get_programiv(GLcontext *ctx, GLuint program, GLenum pname, GLint *params) * glGetShaderiv() - get GLSL shader state */ static void -get_shaderiv(GLcontext *ctx, GLuint name, GLenum pname, GLint *params) +get_shaderiv(struct gl_context *ctx, GLuint name, GLenum pname, GLint *params) { struct gl_shader *shader = _mesa_lookup_shader_err(ctx, name, "glGetShaderiv"); @@ -717,7 +740,7 @@ get_shaderiv(GLcontext *ctx, GLuint name, GLenum pname, GLint *params) static void -get_program_info_log(GLcontext *ctx, GLuint program, GLsizei bufSize, +get_program_info_log(struct gl_context *ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { struct gl_shader_program *shProg @@ -731,7 +754,7 @@ get_program_info_log(GLcontext *ctx, GLuint program, GLsizei bufSize, static void -get_shader_info_log(GLcontext *ctx, GLuint shader, GLsizei bufSize, +get_shader_info_log(struct gl_context *ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { struct gl_shader *sh = _mesa_lookup_shader(ctx, shader); @@ -747,7 +770,7 @@ get_shader_info_log(GLcontext *ctx, GLuint shader, GLsizei bufSize, * Return shader source code. */ static void -get_shader_source(GLcontext *ctx, GLuint shader, GLsizei maxLength, +get_shader_source(struct gl_context *ctx, GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *sourceOut) { struct gl_shader *sh; @@ -763,7 +786,7 @@ get_shader_source(GLcontext *ctx, GLuint shader, GLsizei maxLength, * Set/replace shader source code. */ static void -shader_source(GLcontext *ctx, GLuint shader, const GLchar *source) +shader_source(struct gl_context *ctx, GLuint shader, const GLchar *source) { struct gl_shader *sh; @@ -787,7 +810,7 @@ shader_source(GLcontext *ctx, GLuint shader, const GLchar *source) * Compile a shader. */ static void -compile_shader(GLcontext *ctx, GLuint shaderObj) +compile_shader(struct gl_context *ctx, GLuint shaderObj) { struct gl_shader *sh; struct gl_shader_compiler_options *options; @@ -812,7 +835,7 @@ compile_shader(GLcontext *ctx, GLuint shaderObj) * Link a program's shaders. */ static void -link_program(GLcontext *ctx, GLuint program) +link_program(struct gl_context *ctx, GLuint program) { struct gl_shader_program *shProg; struct gl_transform_feedback_object *obj = @@ -888,7 +911,7 @@ print_shader_info(const struct gl_shader_program *shProg) * Use the named shader program for subsequent rendering. */ void -_mesa_use_program(GLcontext *ctx, GLuint program) +_mesa_use_program(struct gl_context *ctx, GLuint program) { struct gl_shader_program *shProg; struct gl_transform_feedback_object *obj = @@ -943,7 +966,7 @@ _mesa_use_program(GLcontext *ctx, GLuint program) * \return GL_TRUE if valid, GL_FALSE if invalid */ static GLboolean -validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg) +validate_samplers(const struct gl_program *prog, char *errMsg) { static const char *targetName[] = { "TEXTURE_2D_ARRAY", @@ -975,7 +998,7 @@ validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg) assert(sampler < MAX_TEXTURE_IMAGE_UNITS); unit = prog->SamplerUnits[sampler]; target = prog->SamplerTargets[sampler]; - if (targetUsed[unit] != -1 && targetUsed[unit] != target) { + if (targetUsed[unit] != -1 && targetUsed[unit] != (int) target) { _mesa_snprintf(errMsg, 100, "Texture unit %d is accessed both as %s and %s", unit, targetName[targetUsed[unit]], targetName[target]); @@ -995,8 +1018,7 @@ validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg) * \return GL_TRUE if valid, GL_FALSE if invalid (and set errMsg) */ static GLboolean -validate_shader_program(GLcontext *ctx, - const struct gl_shader_program *shProg, +validate_shader_program(const struct gl_shader_program *shProg, char *errMsg) { const struct gl_vertex_program *vp = shProg->VertexProgram; @@ -1026,10 +1048,10 @@ validate_shader_program(GLcontext *ctx, * Check: any two active samplers in the current program object are of * different types, but refer to the same texture image unit, */ - if (vp && !validate_samplers(ctx, &vp->Base, errMsg)) { + if (vp && !validate_samplers(&vp->Base, errMsg)) { return GL_FALSE; } - if (fp && !validate_samplers(ctx, &fp->Base, errMsg)) { + if (fp && !validate_samplers(&fp->Base, errMsg)) { return GL_FALSE; } @@ -1041,7 +1063,7 @@ validate_shader_program(GLcontext *ctx, * Called via glValidateProgram() */ static void -validate_program(GLcontext *ctx, GLuint program) +validate_program(struct gl_context *ctx, GLuint program) { struct gl_shader_program *shProg; char errMsg[100]; @@ -1051,7 +1073,7 @@ validate_program(GLcontext *ctx, GLuint program) return; } - shProg->Validated = validate_shader_program(ctx, shProg, errMsg); + shProg->Validated = validate_shader_program(shProg, errMsg); if (!shProg->Validated) { /* update info log */ if (shProg->InfoLog) { @@ -1498,6 +1520,10 @@ _mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) { GET_CURRENT_CONTEXT(ctx); + (void) shadertype; + (void) precisiontype; + (void) range; + (void) precision; _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__); } @@ -1515,6 +1541,11 @@ _mesa_ShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length) { GET_CURRENT_CONTEXT(ctx); + (void) n; + (void) shaders; + (void) binaryformat; + (void) binary; + (void) length; _mesa_error(ctx, GL_INVALID_OPERATION, __FUNCTION__); } @@ -1540,7 +1571,7 @@ _mesa_ProgramParameteriARB(GLuint program, GLenum pname, switch (pname) { case GL_GEOMETRY_VERTICES_OUT_ARB: if (value < 1 || - value > ctx->Const.GeometryProgram.MaxGeometryOutputVertices) { + (unsigned) value > ctx->Const.GeometryProgram.MaxGeometryOutputVertices) { _mesa_error(ctx, GL_INVALID_VALUE, "glProgramParameteri(GL_GEOMETRY_VERTICES_OUT_ARB=%d", value); diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h index 16e22530de..b55d7ca8b2 100644 --- a/src/mesa/main/shaderapi.h +++ b/src/mesa/main/shaderapi.h @@ -39,7 +39,7 @@ _mesa_copy_string(GLchar *dst, GLsizei maxLength, GLsizei *length, const GLchar *src); extern void -_mesa_use_program(GLcontext *ctx, GLuint program); +_mesa_use_program(struct gl_context *ctx, GLuint program); extern void diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c index 2de8f27981..b6594cbe6f 100644 --- a/src/mesa/main/shaderobj.c +++ b/src/mesa/main/shaderobj.c @@ -50,7 +50,7 @@ * Then set ptr to point to sh, incrementing its refcount. */ void -_mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr, +_mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr, struct gl_shader *sh) { assert(ptr); @@ -88,7 +88,7 @@ _mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr, } void -_mesa_init_shader(GLcontext *ctx, struct gl_shader *shader) +_mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader) { shader->RefCount = 1; } @@ -98,7 +98,7 @@ _mesa_init_shader(GLcontext *ctx, struct gl_shader *shader) * Called via ctx->Driver.NewShader() */ struct gl_shader * -_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type) +_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type) { struct gl_shader *shader; assert(type == GL_FRAGMENT_SHADER || type == GL_VERTEX_SHADER || @@ -118,7 +118,7 @@ _mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type) * Called via ctx->Driver.DeleteShader(). */ static void -_mesa_delete_shader(GLcontext *ctx, struct gl_shader *sh) +_mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh) { if (sh->Source) free((void *) sh->Source); @@ -131,7 +131,7 @@ _mesa_delete_shader(GLcontext *ctx, struct gl_shader *sh) * Lookup a GLSL shader object. */ struct gl_shader * -_mesa_lookup_shader(GLcontext *ctx, GLuint name) +_mesa_lookup_shader(struct gl_context *ctx, GLuint name) { if (name) { struct gl_shader *sh = (struct gl_shader *) @@ -153,7 +153,7 @@ _mesa_lookup_shader(GLcontext *ctx, GLuint name) * As above, but record an error if shader is not found. */ struct gl_shader * -_mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller) +_mesa_lookup_shader_err(struct gl_context *ctx, GLuint name, const char *caller) { if (!name) { _mesa_error(ctx, GL_INVALID_VALUE, "%s", caller); @@ -188,7 +188,7 @@ _mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller) * Then set ptr to point to shProg, incrementing its refcount. */ void -_mesa_reference_shader_program(GLcontext *ctx, +_mesa_reference_shader_program(struct gl_context *ctx, struct gl_shader_program **ptr, struct gl_shader_program *shProg) { @@ -230,7 +230,7 @@ _mesa_reference_shader_program(GLcontext *ctx, } void -_mesa_init_shader_program(GLcontext *ctx, struct gl_shader_program *prog) +_mesa_init_shader_program(struct gl_context *ctx, struct gl_shader_program *prog) { prog->Type = GL_SHADER_PROGRAM_MESA; prog->RefCount = 1; @@ -247,7 +247,7 @@ _mesa_init_shader_program(GLcontext *ctx, struct gl_shader_program *prog) * Called via ctx->Driver.NewShaderProgram() */ static struct gl_shader_program * -_mesa_new_shader_program(GLcontext *ctx, GLuint name) +_mesa_new_shader_program(struct gl_context *ctx, GLuint name) { struct gl_shader_program *shProg; shProg = talloc_zero(NULL, struct gl_shader_program); @@ -263,7 +263,7 @@ _mesa_new_shader_program(GLcontext *ctx, GLuint name) * Clear (free) the shader program state that gets produced by linking. */ void -_mesa_clear_shader_program_data(GLcontext *ctx, +_mesa_clear_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg) { _mesa_reference_vertprog(ctx, &shProg->VertexProgram, NULL); @@ -287,7 +287,7 @@ _mesa_clear_shader_program_data(GLcontext *ctx, * object itself. */ void -_mesa_free_shader_program_data(GLcontext *ctx, +_mesa_free_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg) { GLuint i; @@ -326,10 +326,12 @@ _mesa_free_shader_program_data(GLcontext *ctx, shProg->TransformFeedback.NumVarying = 0; - for (i = 0; i < shProg->_NumLinkedShaders; i++) { - ctx->Driver.DeleteShader(ctx, shProg->_LinkedShaders[i]); + for (i = 0; i < MESA_SHADER_TYPES; i++) { + if (shProg->_LinkedShaders[i] != NULL) { + ctx->Driver.DeleteShader(ctx, shProg->_LinkedShaders[i]); + shProg->_LinkedShaders[i] = NULL; + } } - shProg->_NumLinkedShaders = 0; } @@ -338,7 +340,7 @@ _mesa_free_shader_program_data(GLcontext *ctx, * Called via ctx->Driver.DeleteShaderProgram(). */ static void -_mesa_delete_shader_program(GLcontext *ctx, struct gl_shader_program *shProg) +_mesa_delete_shader_program(struct gl_context *ctx, struct gl_shader_program *shProg) { _mesa_free_shader_program_data(ctx, shProg); @@ -350,7 +352,7 @@ _mesa_delete_shader_program(GLcontext *ctx, struct gl_shader_program *shProg) * Lookup a GLSL program object. */ struct gl_shader_program * -_mesa_lookup_shader_program(GLcontext *ctx, GLuint name) +_mesa_lookup_shader_program(struct gl_context *ctx, GLuint name) { struct gl_shader_program *shProg; if (name) { @@ -373,7 +375,7 @@ _mesa_lookup_shader_program(GLcontext *ctx, GLuint name) * As above, but record an error if program is not found. */ struct gl_shader_program * -_mesa_lookup_shader_program_err(GLcontext *ctx, GLuint name, +_mesa_lookup_shader_program_err(struct gl_context *ctx, GLuint name, const char *caller) { if (!name) { diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h index cbe7ae7b06..5ea8ddc88d 100644 --- a/src/mesa/main/shaderobj.h +++ b/src/mesa/main/shaderobj.h @@ -27,6 +27,7 @@ #define SHADEROBJ_H +#include "main/compiler.h" #include "main/glheader.h" #include "main/mtypes.h" #include "program/ir_to_mesa.h" @@ -39,50 +40,50 @@ extern "C" { */ extern void -_mesa_init_shader_state(GLcontext * ctx); +_mesa_init_shader_state(struct gl_context * ctx); extern void -_mesa_free_shader_state(GLcontext *ctx); +_mesa_free_shader_state(struct gl_context *ctx); extern void -_mesa_reference_shader(GLcontext *ctx, struct gl_shader **ptr, +_mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr, struct gl_shader *sh); extern struct gl_shader * -_mesa_lookup_shader(GLcontext *ctx, GLuint name); +_mesa_lookup_shader(struct gl_context *ctx, GLuint name); extern struct gl_shader * -_mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller); +_mesa_lookup_shader_err(struct gl_context *ctx, GLuint name, const char *caller); extern void -_mesa_reference_shader_program(GLcontext *ctx, +_mesa_reference_shader_program(struct gl_context *ctx, struct gl_shader_program **ptr, struct gl_shader_program *shProg); extern void -_mesa_init_shader(GLcontext *ctx, struct gl_shader *shader); +_mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader); extern struct gl_shader * -_mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type); +_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type); extern void -_mesa_init_shader_program(GLcontext *ctx, struct gl_shader_program *prog); +_mesa_init_shader_program(struct gl_context *ctx, struct gl_shader_program *prog); extern struct gl_shader_program * -_mesa_lookup_shader_program(GLcontext *ctx, GLuint name); +_mesa_lookup_shader_program(struct gl_context *ctx, GLuint name); extern struct gl_shader_program * -_mesa_lookup_shader_program_err(GLcontext *ctx, GLuint name, +_mesa_lookup_shader_program_err(struct gl_context *ctx, GLuint name, const char *caller); extern void -_mesa_clear_shader_program_data(GLcontext *ctx, +_mesa_clear_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg); extern void -_mesa_free_shader_program_data(GLcontext *ctx, +_mesa_free_shader_program_data(struct gl_context *ctx, struct gl_shader_program *shProg); @@ -91,10 +92,10 @@ extern void _mesa_init_shader_object_functions(struct dd_function_table *driver); extern void -_mesa_init_shader_state(GLcontext *ctx); +_mesa_init_shader_state(struct gl_context *ctx); extern void -_mesa_free_shader_state(GLcontext *ctx); +_mesa_free_shader_state(struct gl_context *ctx); static INLINE GLuint _mesa_shader_type_to_index(GLenum v) diff --git a/src/mesa/main/shared.c b/src/mesa/main/shared.c index a56c70fa7f..3abee0178e 100644 --- a/src/mesa/main/shared.c +++ b/src/mesa/main/shared.c @@ -52,7 +52,7 @@ * failure. */ struct gl_shared_state * -_mesa_alloc_shared_state(GLcontext *ctx) +_mesa_alloc_shared_state(struct gl_context *ctx) { struct gl_shared_state *shared; GLuint i; @@ -133,7 +133,7 @@ static void delete_displaylist_cb(GLuint id, void *data, void *userData) { struct gl_display_list *list = (struct gl_display_list *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; _mesa_delete_list(ctx, list); } @@ -145,7 +145,7 @@ static void delete_texture_cb(GLuint id, void *data, void *userData) { struct gl_texture_object *texObj = (struct gl_texture_object *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; ctx->Driver.DeleteTexture(ctx, texObj); } @@ -157,7 +157,7 @@ static void delete_program_cb(GLuint id, void *data, void *userData) { struct gl_program *prog = (struct gl_program *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; if(prog != &_mesa_DummyProgram) { ASSERT(prog->RefCount == 1); /* should only be referenced by hash table */ prog->RefCount = 0; /* now going away */ @@ -175,7 +175,7 @@ static void delete_fragshader_cb(GLuint id, void *data, void *userData) { struct ati_fragment_shader *shader = (struct ati_fragment_shader *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; _mesa_delete_ati_fragment_shader(ctx, shader); } #endif @@ -188,7 +188,7 @@ static void delete_bufferobj_cb(GLuint id, void *data, void *userData) { struct gl_buffer_object *bufObj = (struct gl_buffer_object *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; if (_mesa_bufferobj_mapped(bufObj)) { ctx->Driver.UnmapBuffer(ctx, 0, bufObj); bufObj->Pointer = NULL; @@ -204,7 +204,7 @@ delete_bufferobj_cb(GLuint id, void *data, void *userData) static void free_shader_program_data_cb(GLuint id, void *data, void *userData) { - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; struct gl_shader_program *shProg = (struct gl_shader_program *) data; if (shProg->Type == GL_SHADER_PROGRAM_MESA) { @@ -220,7 +220,7 @@ free_shader_program_data_cb(GLuint id, void *data, void *userData) static void delete_shader_cb(GLuint id, void *data, void *userData) { - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; struct gl_shader *sh = (struct gl_shader *) data; if (sh->Type == GL_FRAGMENT_SHADER || sh->Type == GL_VERTEX_SHADER) { ctx->Driver.DeleteShader(ctx, sh); @@ -280,7 +280,7 @@ delete_renderbuffer_cb(GLuint id, void *data, void *userData) * \sa alloc_shared_state(). */ static void -free_shared_state(GLcontext *ctx, struct gl_shared_state *shared) +free_shared_state(struct gl_context *ctx, struct gl_shared_state *shared) { GLuint i; @@ -373,7 +373,7 @@ free_shared_state(GLcontext *ctx, struct gl_shared_state *shared) * \sa free_shared_state(). */ void -_mesa_release_shared_state(GLcontext *ctx, struct gl_shared_state *shared) +_mesa_release_shared_state(struct gl_context *ctx, struct gl_shared_state *shared) { GLint RefCount; diff --git a/src/mesa/main/shared.h b/src/mesa/main/shared.h index 5166a0ce51..43f8a388e6 100644 --- a/src/mesa/main/shared.h +++ b/src/mesa/main/shared.h @@ -28,11 +28,11 @@ #include "mtypes.h" struct gl_shared_state * -_mesa_alloc_shared_state(GLcontext *ctx); +_mesa_alloc_shared_state(struct gl_context *ctx); void -_mesa_release_shared_state(GLcontext *ctx, struct gl_shared_state *shared); +_mesa_release_shared_state(struct gl_context *ctx, struct gl_shared_state *shared); #endif diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index 4a3dffe4cf..5529732de0 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -27,7 +27,7 @@ * \file state.c * State management. * - * This file manages recalculation of derived values in GLcontext. + * This file manages recalculation of derived values in struct gl_context. */ @@ -51,7 +51,7 @@ static void -update_separate_specular(GLcontext *ctx) +update_separate_specular(struct gl_context *ctx) { if (NEED_SECONDARY_COLOR(ctx)) ctx->_TriangleCaps |= DD_SEPARATE_SPECULAR; @@ -107,7 +107,7 @@ update_min(GLuint min, struct gl_client_array *array) * Need to do this upon new array state or new buffer object state. */ static void -update_arrays( GLcontext *ctx ) +update_arrays( struct gl_context *ctx ) { struct gl_array_object *arrayObj = ctx->Array.ArrayObj; GLuint i, min = ~0; @@ -219,7 +219,7 @@ update_arrays( GLcontext *ctx ) * This needs to be done before texture state validation. */ static void -update_program_enables(GLcontext *ctx) +update_program_enables(struct gl_context *ctx) { /* These _Enabled flags indicate if the program is enabled AND valid. */ ctx->VertexProgram._Enabled = ctx->VertexProgram.Enabled @@ -245,7 +245,7 @@ update_program_enables(GLcontext *ctx) * or fragment program is being used. */ static GLbitfield -update_program(GLcontext *ctx) +update_program(struct gl_context *ctx) { const struct gl_shader_program *shProg = ctx->Shader.CurrentProgram; const struct gl_vertex_program *prevVP = ctx->VertexProgram._Current; @@ -362,7 +362,7 @@ update_program(GLcontext *ctx) * Examine shader constants and return either _NEW_PROGRAM_CONSTANTS or 0. */ static GLbitfield -update_program_constants(GLcontext *ctx) +update_program_constants(struct gl_context *ctx) { GLbitfield new_state = 0x0; @@ -399,7 +399,7 @@ update_program_constants(GLcontext *ctx) static void -update_viewport_matrix(GLcontext *ctx) +update_viewport_matrix(struct gl_context *ctx) { const GLfloat depthMax = ctx->DrawBuffer->_DepthMaxF; @@ -421,7 +421,7 @@ update_viewport_matrix(GLcontext *ctx) * Update derived multisample state. */ static void -update_multisample(GLcontext *ctx) +update_multisample(struct gl_context *ctx) { ctx->Multisample._Enabled = GL_FALSE; if (ctx->Multisample.Enabled && @@ -435,7 +435,7 @@ update_multisample(GLcontext *ctx) * Update derived color/blend/logicop state. */ static void -update_color(GLcontext *ctx) +update_color(struct gl_context *ctx) { /* This is needed to support 1.1's RGB logic ops AND * 1.0's blending logicops. @@ -449,7 +449,7 @@ update_color(GLcontext *ctx) * in ctx->_TriangleCaps if needed. */ static void -update_polygon(GLcontext *ctx) +update_polygon(struct gl_context *ctx) { ctx->_TriangleCaps &= ~(DD_TRI_CULL_FRONT_BACK | DD_TRI_OFFSET); @@ -471,7 +471,7 @@ update_polygon(GLcontext *ctx) */ #if 0 static void -update_tricaps(GLcontext *ctx, GLbitfield new_state) +update_tricaps(struct gl_context *ctx, GLbitfield new_state) { ctx->_TriangleCaps = 0; @@ -540,7 +540,7 @@ update_tricaps(GLcontext *ctx, GLbitfield new_state) /** * Compute derived GL state. - * If __GLcontextRec::NewState is non-zero then this function \b must + * If __struct gl_contextRec::NewState is non-zero then this function \b must * be called before rendering anything. * * Calls dd_function_table::UpdateState to perform any internal state @@ -551,7 +551,7 @@ update_tricaps(GLcontext *ctx, GLbitfield new_state) * _mesa_update_lighting() and _mesa_update_tnl_spaces(). */ void -_mesa_update_state_locked( GLcontext *ctx ) +_mesa_update_state_locked( struct gl_context *ctx ) { GLbitfield new_state = ctx->NewState; GLbitfield prog_flags = _NEW_PROGRAM; @@ -670,7 +670,7 @@ _mesa_update_state_locked( GLcontext *ctx ) /* This is the usual entrypoint for state updates: */ void -_mesa_update_state( GLcontext *ctx ) +_mesa_update_state( struct gl_context *ctx ) { _mesa_lock_context_textures(ctx); _mesa_update_state_locked(ctx); @@ -703,7 +703,7 @@ _mesa_update_state( GLcontext *ctx ) * Otherwise, the fp should track them as state values instead. */ void -_mesa_set_varying_vp_inputs( GLcontext *ctx, +_mesa_set_varying_vp_inputs( struct gl_context *ctx, GLbitfield varying_inputs ) { if (ctx->varying_vp_inputs != varying_inputs) { @@ -721,7 +721,7 @@ _mesa_set_varying_vp_inputs( GLcontext *ctx, * of ordinary varyings/inputs. */ void -_mesa_set_vp_override(GLcontext *ctx, GLboolean flag) +_mesa_set_vp_override(struct gl_context *ctx, GLboolean flag) { if (ctx->VertexProgram._Overriden != flag) { ctx->VertexProgram._Overriden = flag; diff --git a/src/mesa/main/state.h b/src/mesa/main/state.h index 29db08a0b9..f0eb43d8ee 100644 --- a/src/mesa/main/state.h +++ b/src/mesa/main/state.h @@ -29,21 +29,21 @@ #include "mtypes.h" extern void -_mesa_update_state(GLcontext *ctx); +_mesa_update_state(struct gl_context *ctx); /* As above but can only be called between _mesa_lock_context_textures() and * _mesa_unlock_context_textures(). */ extern void -_mesa_update_state_locked(GLcontext *ctx); +_mesa_update_state_locked(struct gl_context *ctx); extern void -_mesa_set_varying_vp_inputs(GLcontext *ctx, GLbitfield varying_inputs); +_mesa_set_varying_vp_inputs(struct gl_context *ctx, GLbitfield varying_inputs); extern void -_mesa_set_vp_override(GLcontext *ctx, GLboolean flag); +_mesa_set_vp_override(struct gl_context *ctx, GLboolean flag); #endif diff --git a/src/mesa/main/stencil.c b/src/mesa/main/stencil.c index 15c98e2015..93e2e97ce0 100644 --- a/src/mesa/main/stencil.c +++ b/src/mesa/main/stencil.c @@ -56,7 +56,7 @@ static GLboolean -validate_stencil_op(GLcontext *ctx, GLenum op) +validate_stencil_op(struct gl_context *ctx, GLenum op) { switch (op) { case GL_KEEP: @@ -79,7 +79,7 @@ validate_stencil_op(GLcontext *ctx, GLenum op) static GLboolean -validate_stencil_func(GLcontext *ctx, GLenum func) +validate_stencil_func(struct gl_context *ctx, GLenum func) { switch (func) { case GL_NEVER: @@ -137,7 +137,7 @@ _mesa_ClearStencil( GLint s ) * \sa glStencilFunc(). * * Verifies the parameters and updates the respective values in - * __GLcontextRec::Stencil. On change flushes the vertices and notifies the + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the * driver via the dd_function_table::StencilFunc callback. */ void GLAPIENTRY @@ -192,7 +192,7 @@ _mesa_StencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLui * \sa glStencilFunc(). * * Verifies the parameters and updates the respective values in - * __GLcontextRec::Stencil. On change flushes the vertices and notifies the + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the * driver via the dd_function_table::StencilFunc callback. */ void GLAPIENTRY @@ -312,7 +312,7 @@ _mesa_StencilMask( GLuint mask ) * \sa glStencilOp(). * * Verifies the parameters and updates the respective fields in - * __GLcontextRec::Stencil. On change flushes the vertices and notifies the + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the * driver via the dd_function_table::StencilOp callback. */ void GLAPIENTRY @@ -532,7 +532,7 @@ _mesa_StencilMaskSeparate(GLenum face, GLuint mask) * Update derived stencil state. */ void -_mesa_update_stencil(GLcontext *ctx) +_mesa_update_stencil(struct gl_context *ctx) { const GLint face = ctx->Stencil._BackFace; @@ -556,10 +556,10 @@ _mesa_update_stencil(GLcontext *ctx) * * \param ctx GL context. * - * Initializes __GLcontextRec::Stencil attribute group. + * Initializes __struct gl_contextRec::Stencil attribute group. */ void -_mesa_init_stencil(GLcontext *ctx) +_mesa_init_stencil(struct gl_context *ctx) { ctx->Stencil.Enabled = GL_FALSE; ctx->Stencil.TestTwoSide = GL_FALSE; diff --git a/src/mesa/main/stencil.h b/src/mesa/main/stencil.h index 252ac932ac..38a7183a81 100644 --- a/src/mesa/main/stencil.h +++ b/src/mesa/main/stencil.h @@ -71,10 +71,10 @@ _mesa_StencilMaskSeparate(GLenum face, GLuint mask); extern void -_mesa_update_stencil(GLcontext *ctx); +_mesa_update_stencil(struct gl_context *ctx); extern void -_mesa_init_stencil( GLcontext * ctx ); +_mesa_init_stencil( struct gl_context * ctx ); #endif diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index ac948cc1ef..2c8bcbeaf7 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -66,7 +66,7 @@ #include "syncobj.h" static struct gl_sync_object * -_mesa_new_sync_object(GLcontext *ctx, GLenum type) +_mesa_new_sync_object(struct gl_context *ctx, GLenum type) { struct gl_sync_object *s = MALLOC_STRUCT(gl_sync_object); (void) ctx; @@ -77,7 +77,7 @@ _mesa_new_sync_object(GLcontext *ctx, GLenum type) static void -_mesa_delete_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_delete_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { (void) ctx; free(syncObj); @@ -85,7 +85,7 @@ _mesa_delete_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) static void -_mesa_fence_sync(GLcontext *ctx, struct gl_sync_object *syncObj, +_mesa_fence_sync(struct gl_context *ctx, struct gl_sync_object *syncObj, GLenum condition, GLbitfield flags) { (void) ctx; @@ -97,7 +97,7 @@ _mesa_fence_sync(GLcontext *ctx, struct gl_sync_object *syncObj, static void -_mesa_check_sync(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_check_sync(struct gl_context *ctx, struct gl_sync_object *syncObj) { (void) ctx; (void) syncObj; @@ -109,7 +109,7 @@ _mesa_check_sync(GLcontext *ctx, struct gl_sync_object *syncObj) static void -_mesa_wait_sync(GLcontext *ctx, struct gl_sync_object *syncObj, +_mesa_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj, GLbitfield flags, GLuint64 timeout) { (void) ctx; @@ -155,7 +155,7 @@ _mesa_init_sync_dispatch(struct _glapi_table *disp) * Allocate/init the context state related to sync objects. */ void -_mesa_init_sync(GLcontext *ctx) +_mesa_init_sync(struct gl_context *ctx) { (void) ctx; } @@ -165,7 +165,7 @@ _mesa_init_sync(GLcontext *ctx) * Free the context state related to sync objects. */ void -_mesa_free_sync_data(GLcontext *ctx) +_mesa_free_sync_data(struct gl_context *ctx) { (void) ctx; } @@ -181,7 +181,7 @@ _mesa_validate_sync(struct gl_sync_object *syncObj) void -_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { _glthread_LOCK_MUTEX(ctx->Shared->Mutex); syncObj->RefCount++; @@ -190,7 +190,7 @@ _mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) void -_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { _glthread_LOCK_MUTEX(ctx->Shared->Mutex); syncObj->RefCount--; diff --git a/src/mesa/main/syncobj.h b/src/mesa/main/syncobj.h index 82e141d408..f3c0046cf3 100644 --- a/src/mesa/main/syncobj.h +++ b/src/mesa/main/syncobj.h @@ -44,16 +44,16 @@ extern void _mesa_init_sync_dispatch(struct _glapi_table *disp); extern void -_mesa_init_sync(GLcontext *); +_mesa_init_sync(struct gl_context *); extern void -_mesa_free_sync_data(GLcontext *); +_mesa_free_sync_data(struct gl_context *); extern void -_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj); +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); extern void -_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj); +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); extern GLboolean GLAPIENTRY _mesa_IsSync(GLsync sync); @@ -89,23 +89,23 @@ _mesa_init_sync_dispatch(struct _glapi_table *disp) } static INLINE void -_mesa_init_sync(GLcontext *ctx) +_mesa_init_sync(struct gl_context *ctx) { } static INLINE void -_mesa_free_sync_data(GLcontext *ctx) +_mesa_free_sync_data(struct gl_context *ctx) { } static INLINE void -_mesa_ref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { ASSERT_NO_FEATURE(); } static INLINE void -_mesa_unref_sync_object(GLcontext *ctx, struct gl_sync_object *syncObj) +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { ASSERT_NO_FEATURE(); } diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c index e911524cbc..e3d2a786b3 100644 --- a/src/mesa/main/texcompress.c +++ b/src/mesa/main/texcompress.c @@ -50,7 +50,7 @@ * \return number of formats. */ GLuint -_mesa_get_compressed_formats(GLcontext *ctx, GLint *formats, GLboolean all) +_mesa_get_compressed_formats(struct gl_context *ctx, GLint *formats, GLboolean all) { GLuint n = 0; if (ctx->Extensions.TDFX_texture_compression_FXT1) { @@ -178,7 +178,7 @@ _mesa_glenum_to_compressed_format(GLenum format) * internal format unchanged. */ GLenum -_mesa_compressed_format_to_glenum(GLcontext *ctx, GLuint mesaFormat) +_mesa_compressed_format_to_glenum(struct gl_context *ctx, GLuint mesaFormat) { switch (mesaFormat) { #if FEATURE_texture_fxt1 diff --git a/src/mesa/main/texcompress.h b/src/mesa/main/texcompress.h index 5e73a3149b..83856429c5 100644 --- a/src/mesa/main/texcompress.h +++ b/src/mesa/main/texcompress.h @@ -31,13 +31,13 @@ #if _HAVE_FULL_GL extern GLuint -_mesa_get_compressed_formats(GLcontext *ctx, GLint *formats, GLboolean all); +_mesa_get_compressed_formats(struct gl_context *ctx, GLint *formats, GLboolean all); extern gl_format _mesa_glenum_to_compressed_format(GLenum format); extern GLenum -_mesa_compressed_format_to_glenum(GLcontext *ctx, GLuint mesaFormat); +_mesa_compressed_format_to_glenum(struct gl_context *ctx, GLuint mesaFormat); extern GLubyte * _mesa_compressed_image_address(GLint col, GLint row, GLint img, diff --git a/src/mesa/main/texcompress_fxt1.c b/src/mesa/main/texcompress_fxt1.c index 3d8996c2fd..33f46d4c8b 100644 --- a/src/mesa/main/texcompress_fxt1.c +++ b/src/mesa/main/texcompress_fxt1.c @@ -25,7 +25,7 @@ /** * \file texcompress_fxt1.c - * GL_EXT_texture_compression_fxt1 support. + * GL_3DFX_texture_compression_FXT1 support. */ diff --git a/src/mesa/main/texcompress_s3tc.c b/src/mesa/main/texcompress_s3tc.c index 534a4247cf..0e893a59fa 100644 --- a/src/mesa/main/texcompress_s3tc.c +++ b/src/mesa/main/texcompress_s3tc.c @@ -104,7 +104,7 @@ static void *dxtlibhandle = NULL; void -_mesa_init_texture_s3tc( GLcontext *ctx ) +_mesa_init_texture_s3tc( struct gl_context *ctx ) { /* called during context initialization */ ctx->Mesa_DXTn = GL_FALSE; diff --git a/src/mesa/main/texcompress_s3tc.h b/src/mesa/main/texcompress_s3tc.h index 2e7688d366..d0a5b186b7 100644 --- a/src/mesa/main/texcompress_s3tc.h +++ b/src/mesa/main/texcompress_s3tc.h @@ -76,7 +76,7 @@ _mesa_fetch_texel_2d_f_srgba_dxt5(const struct gl_texture_image *texImage, GLint i, GLint j, GLint k, GLfloat *texel); extern void -_mesa_init_texture_s3tc(GLcontext *ctx); +_mesa_init_texture_s3tc(struct gl_context *ctx); #else /* FEATURE_texture_s3tc */ @@ -97,7 +97,7 @@ _mesa_init_texture_s3tc(GLcontext *ctx); #define _mesa_fetch_texel_2d_f_srgba_dxt5 NULL static INLINE void -_mesa_init_texture_s3tc(GLcontext *ctx) +_mesa_init_texture_s3tc(struct gl_context *ctx) { } diff --git a/src/mesa/main/texenv.c b/src/mesa/main/texenv.c index 3a55128c73..508dbf4887 100644 --- a/src/mesa/main/texenv.c +++ b/src/mesa/main/texenv.c @@ -44,7 +44,7 @@ /** Set texture env mode */ static void -set_env_mode(GLcontext *ctx, +set_env_mode(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum mode) { @@ -89,7 +89,7 @@ set_env_mode(GLcontext *ctx, static void -set_env_color(GLcontext *ctx, +set_env_color(struct gl_context *ctx, struct gl_texture_unit *texUnit, const GLfloat *color) { @@ -107,7 +107,7 @@ set_env_color(GLcontext *ctx, /** Set an RGB or A combiner mode/function */ static void -set_combiner_mode(GLcontext *ctx, +set_combiner_mode(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLenum mode) { @@ -181,7 +181,7 @@ set_combiner_mode(GLcontext *ctx, /** Set an RGB or A combiner source term */ static void -set_combiner_source(GLcontext *ctx, +set_combiner_source(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLenum param) { @@ -274,7 +274,7 @@ set_combiner_source(GLcontext *ctx, /** Set an RGB or A combiner operand term */ static void -set_combiner_operand(GLcontext *ctx, +set_combiner_operand(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLenum param) { @@ -360,7 +360,7 @@ set_combiner_operand(GLcontext *ctx, static void -set_combiner_scale(GLcontext *ctx, +set_combiner_scale(struct gl_context *ctx, struct gl_texture_unit *texUnit, GLenum pname, GLfloat scale) { @@ -595,7 +595,7 @@ _mesa_TexEnviv( GLenum target, GLenum pname, const GLint *param ) * \return value of queried pname or -1 if error. */ static GLint -get_texenvi(GLcontext *ctx, const struct gl_texture_unit *texUnit, +get_texenvi(struct gl_context *ctx, const struct gl_texture_unit *texUnit, GLenum pname) { switch (pname) { diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 20f02cefe9..4647a9c440 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -62,7 +62,7 @@ struct texenvprog_cache_item }; static GLboolean -texenv_doing_secondary_color(GLcontext *ctx) +texenv_doing_secondary_color(struct gl_context *ctx) { if (ctx->Light.Enabled && (ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR)) @@ -307,7 +307,7 @@ static GLuint translate_tex_src_bit( GLbitfield bit ) * has access to. The bitmask is later reduced to just those which * are actually referenced. */ -static GLbitfield get_fp_input_mask( GLcontext *ctx ) +static GLbitfield get_fp_input_mask( struct gl_context *ctx ) { /* _NEW_PROGRAM */ const GLboolean vertexShader = (ctx->Shader.CurrentProgram && @@ -407,7 +407,7 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx ) * Examine current texture environment state and generate a unique * key to identify it. */ -static GLuint make_state_key( GLcontext *ctx, struct state_key *key ) +static GLuint make_state_key( struct gl_context *ctx, struct state_key *key ) { GLuint i, j; GLbitfield inputs_referenced = FRAG_BIT_COL0; @@ -663,7 +663,7 @@ static void reserve_temp( struct texenv_fragment_program *p, struct ureg r ) } -static void release_temps(GLcontext *ctx, struct texenv_fragment_program *p ) +static void release_temps(struct gl_context *ctx, struct texenv_fragment_program *p ) { GLuint max_temp = ctx->Const.FragmentProgram.MaxTemps; @@ -1415,7 +1415,7 @@ load_texunit_bumpmap( struct texenv_fragment_program *p, GLuint unit ) * current texture env/combine mode. */ static void -create_new_program(GLcontext *ctx, struct state_key *key, +create_new_program(struct gl_context *ctx, struct state_key *key, struct gl_fragment_program *program) { struct prog_instruction instBuffer[MAX_INSTRUCTIONS]; @@ -1526,7 +1526,7 @@ create_new_program(GLcontext *ctx, struct state_key *key, emit_arith( &p, OPCODE_END, undef, WRITEMASK_XYZW, 0, undef, undef, undef); if (key->fog_enabled) { - /* Pull fog mode from GLcontext, the value in the state key is + /* Pull fog mode from struct gl_context, the value in the state key is * a reduced value and not what is expected in FogOption */ p.program->FogOption = ctx->Fog.Mode; @@ -1590,7 +1590,7 @@ create_new_program(GLcontext *ctx, struct state_key *key, * fixed-function texture, fog and color-sum operations. */ struct gl_fragment_program * -_mesa_get_fixed_func_fragment_program(GLcontext *ctx) +_mesa_get_fixed_func_fragment_program(struct gl_context *ctx) { struct gl_fragment_program *prog; struct state_key key; diff --git a/src/mesa/main/texenvprogram.h b/src/mesa/main/texenvprogram.h index 0a162d2e7a..abfb916d21 100644 --- a/src/mesa/main/texenvprogram.h +++ b/src/mesa/main/texenvprogram.h @@ -30,6 +30,6 @@ #include "mtypes.h" extern struct gl_fragment_program * -_mesa_get_fixed_func_fragment_program(GLcontext *ctx); +_mesa_get_fixed_func_fragment_program(struct gl_context *ctx); #endif diff --git a/src/mesa/main/texfetch.c b/src/mesa/main/texfetch.c index c03bc71cd7..aa3a6961b6 100644 --- a/src/mesa/main/texfetch.c +++ b/src/mesa/main/texfetch.c @@ -314,6 +314,48 @@ texfetch_funcs[MESA_FORMAT_COUNT] = store_texel_ycbcr_rev }, { + MESA_FORMAT_R8, + fetch_texel_1d_f_r8, + fetch_texel_2d_f_r8, + fetch_texel_3d_f_r8, + store_texel_r8, + }, + { + MESA_FORMAT_RG88, + fetch_texel_1d_f_rg88, + fetch_texel_2d_f_rg88, + fetch_texel_3d_f_rg88, + store_texel_rg88, + }, + { + MESA_FORMAT_RG88_REV, + fetch_texel_1d_f_rg88_rev, + fetch_texel_2d_f_rg88_rev, + fetch_texel_3d_f_rg88_rev, + store_texel_rg88_rev, + }, + { + MESA_FORMAT_R16, + fetch_texel_1d_f_r16, + fetch_texel_2d_f_r16, + fetch_texel_3d_f_r16, + store_texel_r16, + }, + { + MESA_FORMAT_RG1616, + fetch_texel_1d_f_rg1616, + fetch_texel_2d_f_rg1616, + fetch_texel_3d_f_rg1616, + store_texel_rg1616, + }, + { + MESA_FORMAT_RG1616_REV, + fetch_texel_1d_f_rg1616_rev, + fetch_texel_2d_f_rg1616_rev, + fetch_texel_3d_f_rg1616_rev, + store_texel_rg1616_rev, + }, + { MESA_FORMAT_Z24_S8, fetch_texel_1d_f_z24_s8, fetch_texel_2d_f_z24_s8, diff --git a/src/mesa/main/texfetch_tmp.h b/src/mesa/main/texfetch_tmp.h index f943554370..2f583ed522 100644 --- a/src/mesa/main/texfetch_tmp.h +++ b/src/mesa/main/texfetch_tmp.h @@ -810,6 +810,54 @@ static void store_texel_argb1555_rev(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_RG88 **********************************************************/ + +/* Fetch texel from 1D, 2D or 3D rg88 texture, return 4 GLchans */ +static void FETCH(f_rg88)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + texel[RCOMP] = UBYTE_TO_FLOAT( s & 0xff ); + texel[GCOMP] = UBYTE_TO_FLOAT( s >> 8 ); + texel[BCOMP] = 0.0; + texel[ACOMP] = 1.0; +} + +#if DIM == 3 +static void store_texel_rg88(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLubyte *rgba = (const GLubyte *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = PACK_COLOR_88(rgba[RCOMP], rgba[GCOMP]); +} +#endif + + +/* MESA_FORMAT_RG88_REV ******************************************************/ + +/* Fetch texel from 1D, 2D or 3D rg88_rev texture, return 4 GLchans */ +static void FETCH(f_rg88_rev)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + texel[RCOMP] = UBYTE_TO_FLOAT( s & 0xff ); + texel[GCOMP] = UBYTE_TO_FLOAT( s >> 8 ); + texel[BCOMP] = 0.0; + texel[ACOMP] = 1.0; +} + +#if DIM == 3 +static void store_texel_rg88_rev(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLubyte *rgba = (const GLubyte *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = PACK_COLOR_88(rgba[GCOMP], rgba[RCOMP]); +} +#endif + + /* MESA_FORMAT_AL88 **********************************************************/ /* Fetch texel from 1D, 2D or 3D al88 texture, return 4 GLchans */ @@ -834,6 +882,54 @@ static void store_texel_al88(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_R8 ************************************************************/ + +/* Fetch texel from 1D, 2D or 3D rg88 texture, return 4 GLchans */ +static void FETCH(f_r8)(const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel) +{ + const GLubyte s = *TEXEL_ADDR(GLubyte, texImage, i, j, k, 1); + texel[RCOMP] = UBYTE_TO_FLOAT(s); + texel[GCOMP] = 0.0; + texel[BCOMP] = 0.0; + texel[ACOMP] = 1.0; +} + +#if DIM == 3 +static void store_texel_r8(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLubyte *rgba = (const GLubyte *) texel; + GLubyte *dst = TEXEL_ADDR(GLubyte, texImage, i, j, k, 1); + *dst = rgba[RCOMP]; +} +#endif + + +/* MESA_FORMAT_R16 ***********************************************************/ + +/* Fetch texel from 1D, 2D or 3D r16 texture, return 4 GLchans */ +static void FETCH(f_r16)(const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel) +{ + const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + texel[RCOMP] = USHORT_TO_FLOAT(s); + texel[GCOMP] = 0.0; + texel[BCOMP] = 0.0; + texel[ACOMP] = 1.0; +} + +#if DIM == 3 +static void store_texel_r16(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLushort *rgba = (const GLushort *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = rgba[RCOMP]; +} +#endif + + /* MESA_FORMAT_AL88_REV ******************************************************/ /* Fetch texel from 1D, 2D or 3D al88_rev texture, return 4 GLchans */ @@ -858,6 +954,54 @@ static void store_texel_al88_rev(struct gl_texture_image *texImage, #endif +/* MESA_FORMAT_RG1616 ********************************************************/ + +/* Fetch texel from 1D, 2D or 3D rg1616 texture, return 4 GLchans */ +static void FETCH(f_rg1616)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLuint s = *TEXEL_ADDR(GLuint, texImage, i, j, k, 1); + texel[RCOMP] = USHORT_TO_FLOAT( s & 0xffff ); + texel[GCOMP] = USHORT_TO_FLOAT( s >> 16 ); + texel[BCOMP] = 0.0; + texel[ACOMP] = 1.0; +} + +#if DIM == 3 +static void store_texel_rg1616(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLubyte *rgba = (const GLubyte *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = PACK_COLOR_1616(rgba[RCOMP], rgba[GCOMP]); +} +#endif + + +/* MESA_FORMAT_RG1616_REV ****************************************************/ + +/* Fetch texel from 1D, 2D or 3D rg1616_rev texture, return 4 GLchans */ +static void FETCH(f_rg1616_rev)( const struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, GLfloat *texel ) +{ + const GLuint s = *TEXEL_ADDR(GLuint, texImage, i, j, k, 1); + texel[RCOMP] = USHORT_TO_FLOAT( s >> 16 ); + texel[GCOMP] = USHORT_TO_FLOAT( s & 0xffff ); + texel[BCOMP] = 0.0; + texel[ACOMP] = 1.0; +} + +#if DIM == 3 +static void store_texel_rg1616_rev(struct gl_texture_image *texImage, + GLint i, GLint j, GLint k, const void *texel) +{ + const GLubyte *rgba = (const GLubyte *) texel; + GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1); + *dst = PACK_COLOR_1616(rgba[GCOMP], rgba[RCOMP]); +} +#endif + + /* MESA_FORMAT_AL1616 ********************************************************/ /* Fetch texel from 1D, 2D or 3D al1616 texture, return 4 GLchans */ diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c index b9271ef58e..894c0130b4 100644 --- a/src/mesa/main/texformat.c +++ b/src/mesa/main/texformat.c @@ -54,7 +54,7 @@ * will typically override this function with a specialized version. */ gl_format -_mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat, +_mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ) { (void) format; @@ -429,6 +429,29 @@ _mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat, } } + if (ctx->Extensions.ARB_texture_rg) { + switch (internalFormat) { + case GL_R8: + case GL_RED: + case GL_COMPRESSED_RED: + return MESA_FORMAT_R8; + + case GL_R16: + return MESA_FORMAT_R16; + + case GL_RG: + case GL_RG8: + case GL_COMPRESSED_RG: + return MESA_FORMAT_RG88; + + case GL_RG16: + return MESA_FORMAT_RG1616; + + default: + ; /* fallthrough */ + } + } + _mesa_problem(ctx, "unexpected format in _mesa_choose_tex_format()"); return MESA_FORMAT_NONE; } diff --git a/src/mesa/main/texformat.h b/src/mesa/main/texformat.h index bda5fd6d8c..8bd1507675 100644 --- a/src/mesa/main/texformat.h +++ b/src/mesa/main/texformat.h @@ -32,7 +32,7 @@ extern gl_format -_mesa_choose_tex_format( GLcontext *ctx, GLint internalFormat, +_mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat, GLenum format, GLenum type ); diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c index 00134ea9ff..30d1062a41 100644 --- a/src/mesa/main/texgetimage.c +++ b/src/mesa/main/texgetimage.c @@ -63,7 +63,7 @@ type_with_negative_values(GLenum type) * glGetTexImage for color index pixels. */ static void -get_tex_color_index(GLcontext *ctx, GLuint dimensions, +get_tex_color_index(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -111,7 +111,7 @@ get_tex_color_index(GLcontext *ctx, GLuint dimensions, * glGetTexImage for depth/Z pixels. */ static void -get_tex_depth(GLcontext *ctx, GLuint dimensions, +get_tex_depth(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -141,7 +141,7 @@ get_tex_depth(GLcontext *ctx, GLuint dimensions, * glGetTexImage for depth/stencil pixels. */ static void -get_tex_depth_stencil(GLcontext *ctx, GLuint dimensions, +get_tex_depth_stencil(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -171,7 +171,7 @@ get_tex_depth_stencil(GLcontext *ctx, GLuint dimensions, * glGetTexImage for YCbCr pixels. */ static void -get_tex_ycbcr(GLcontext *ctx, GLuint dimensions, +get_tex_ycbcr(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -234,7 +234,7 @@ linear_to_nonlinear(GLfloat cl) * glGetTexImagefor sRGB pixels; */ static void -get_tex_srgb(GLcontext *ctx, GLuint dimensions, +get_tex_srgb(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -285,7 +285,7 @@ get_tex_srgb(GLcontext *ctx, GLuint dimensions, static INLINE void -get_tex_srgb(GLcontext *ctx, GLuint dimensions, +get_tex_srgb(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -301,7 +301,7 @@ get_tex_srgb(GLcontext *ctx, GLuint dimensions, * This is the slow way since we use texture sampling. */ static void -get_tex_rgba(GLcontext *ctx, GLuint dimensions, +get_tex_rgba(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_image *texImage) { @@ -371,7 +371,7 @@ get_tex_rgba(GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if done, GL_FALSE otherwise */ static GLboolean -get_tex_memcpy(GLcontext *ctx, GLenum format, GLenum type, GLvoid *pixels, +get_tex_memcpy(struct gl_context *ctx, GLenum format, GLenum type, GLvoid *pixels, const struct gl_texture_object *texObj, const struct gl_texture_image *texImage) { @@ -451,7 +451,7 @@ get_tex_memcpy(GLcontext *ctx, GLenum format, GLenum type, GLvoid *pixels, * The texture image must be mapped. */ void -_mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_teximage(struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -528,7 +528,7 @@ _mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, * All error checking will have been done before this routine is called. */ void -_mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_compressed_teximage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -585,7 +585,7 @@ _mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level, * \return GL_TRUE if any error, GL_FALSE if no errors. */ static GLboolean -getteximage_error_check(GLcontext *ctx, GLenum target, GLint level, +getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels ) { struct gl_texture_object *texObj; @@ -771,7 +771,7 @@ _mesa_GetTexImage( GLenum target, GLint level, GLenum format, * \return GL_TRUE if any error, GL_FALSE if no errors. */ static GLboolean -getcompressedteximage_error_check(GLcontext *ctx, GLenum target, GLint level, +getcompressedteximage_error_check(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img) { struct gl_texture_object *texObj; diff --git a/src/mesa/main/texgetimage.h b/src/mesa/main/texgetimage.h index 866ab70494..81a3bbbd9a 100644 --- a/src/mesa/main/texgetimage.h +++ b/src/mesa/main/texgetimage.h @@ -30,14 +30,14 @@ #include "mtypes.h" extern void -_mesa_get_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_teximage(struct gl_context *ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage); extern void -_mesa_get_compressed_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_get_compressed_teximage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *img, struct gl_texture_object *texObj, struct gl_texture_image *texImage); diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 614f0014da..bc66e5d76e 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -127,7 +127,7 @@ logbase2( int n ) * XXX this could be static */ GLint -_mesa_base_tex_format( GLcontext *ctx, GLint internalFormat ) +_mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat ) { switch (internalFormat) { case GL_ALPHA: @@ -403,29 +403,54 @@ _mesa_base_tex_format( GLcontext *ctx, GLint internalFormat ) if (ctx->Extensions.ARB_texture_rg) { switch (internalFormat) { - case GL_R8: - case GL_R16: case GL_R16F: + /* R16F depends on both ARB_half_float_pixel and ARB_texture_float. + */ + if (!ctx->Extensions.ARB_half_float_pixel) + break; + /* FALLTHROUGH */ case GL_R32F: + if (!ctx->Extensions.ARB_texture_float) + break; + return GL_RED; case GL_R8I: case GL_R8UI: case GL_R16I: case GL_R16UI: case GL_R32I: case GL_R32UI: - return GL_R; - case GL_RG: - case GL_RG_INTEGER: - case GL_RG8: - case GL_RG16: + if (!ctx->Extensions.EXT_texture_integer) + break; + /* FALLTHROUGH */ + case GL_R8: + case GL_R16: + case GL_RED: + case GL_COMPRESSED_RED: + return GL_RED; + case GL_RG16F: + /* RG16F depends on both ARB_half_float_pixel and ARB_texture_float. + */ + if (!ctx->Extensions.ARB_half_float_pixel) + break; + /* FALLTHROUGH */ case GL_RG32F: + if (!ctx->Extensions.ARB_texture_float) + break; + return GL_RG; case GL_RG8I: case GL_RG8UI: case GL_RG16I: case GL_RG16UI: case GL_RG32I: case GL_RG32UI: + if (!ctx->Extensions.EXT_texture_integer) + break; + /* FALLTHROUGH */ + case GL_RG: + case GL_RG8: + case GL_RG16: + case GL_COMPRESSED_RG: return GL_RG; default: ; /* fallthrough */ @@ -461,15 +486,13 @@ _mesa_base_tex_format( GLcontext *ctx, GLint internalFormat ) } } - if (ctx->Extensions.EXT_texture_compression_rgtc) { + if (ctx->Extensions.ARB_texture_compression_rgtc) { switch (internalFormat) { - case GL_COMPRESSED_RED: - case GL_COMPRESSED_RED_RGTC1_EXT: - case GL_COMPRESSED_SIGNED_RED_RGTC1_EXT: + case GL_COMPRESSED_RED_RGTC1: + case GL_COMPRESSED_SIGNED_RED_RGTC1: return GL_RED; - case GL_COMPRESSED_RG: - case GL_COMPRESSED_RED_GREEN_RGTC2_EXT: - case GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: + case GL_COMPRESSED_RG_RGTC2: + case GL_COMPRESSED_SIGNED_RG_RGTC2: return GL_RG; default: ; /* fallthrough */ @@ -535,7 +558,7 @@ _mesa_set_tex_image(struct gl_texture_object *tObj, * zero. */ struct gl_texture_image * -_mesa_new_texture_image( GLcontext *ctx ) +_mesa_new_texture_image( struct gl_context *ctx ) { (void) ctx; return CALLOC_STRUCT(gl_texture_image); @@ -551,7 +574,7 @@ _mesa_new_texture_image( GLcontext *ctx ) * Free the texture image data if it's not marked as client data. */ void -_mesa_free_texture_image_data(GLcontext *ctx, +_mesa_free_texture_image_data(struct gl_context *ctx, struct gl_texture_image *texImage) { (void) ctx; @@ -573,7 +596,7 @@ _mesa_free_texture_image_data(GLcontext *ctx, * Free the texture image structure and the associated image data. */ void -_mesa_delete_texture_image( GLcontext *ctx, struct gl_texture_image *texImage ) +_mesa_delete_texture_image( struct gl_context *ctx, struct gl_texture_image *texImage ) { /* Free texImage->Data and/or any other driver-specific texture * image storage. @@ -623,7 +646,7 @@ _mesa_is_proxy_texture(GLenum target) * \sa gl_texture_unit. */ struct gl_texture_object * -_mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit, +_mesa_select_tex_object(struct gl_context *ctx, const struct gl_texture_unit *texUnit, GLenum target) { switch (target) { @@ -680,7 +703,7 @@ _mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit, * Return pointer to texture object for given target on current texture unit. */ struct gl_texture_object * -_mesa_get_current_tex_object(GLcontext *ctx, GLenum target) +_mesa_get_current_tex_object(struct gl_context *ctx, GLenum target) { struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); return _mesa_select_tex_object(ctx, texUnit, target); @@ -700,7 +723,7 @@ _mesa_get_current_tex_object(GLcontext *ctx, GLenum target) * \return pointer to the texture image structure, or NULL on failure. */ struct gl_texture_image * -_mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_object *texObj, +_mesa_select_tex_image(struct gl_context *ctx, const struct gl_texture_object *texObj, GLenum target, GLint level) { const GLuint face = _mesa_tex_target_to_face(target); @@ -719,7 +742,7 @@ _mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_object *texObj, * out of memory. */ struct gl_texture_image * -_mesa_get_tex_image(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_get_tex_image(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum target, GLint level) { struct gl_texture_image *texImage; @@ -749,7 +772,7 @@ _mesa_get_tex_image(GLcontext *ctx, struct gl_texture_object *texObj, * level, or out of memory. */ struct gl_texture_image * -_mesa_get_proxy_tex_image(GLcontext *ctx, GLenum target, GLint level) +_mesa_get_proxy_tex_image(struct gl_context *ctx, GLenum target, GLint level) { struct gl_texture_image *texImage; GLuint texIndex; @@ -824,7 +847,7 @@ _mesa_get_proxy_tex_image(GLcontext *ctx, GLenum target, GLint level) * \sa gl_constants. */ GLint -_mesa_max_texture_levels(GLcontext *ctx, GLenum target) +_mesa_max_texture_levels(struct gl_context *ctx, GLenum target) { switch (target) { case GL_TEXTURE_1D: @@ -970,7 +993,7 @@ clear_teximage_fields(struct gl_texture_image *img) * Note: width, height and depth include the border. */ void -_mesa_init_teximage_fields(GLcontext *ctx, GLenum target, +_mesa_init_teximage_fields(struct gl_context *ctx, GLenum target, struct gl_texture_image *img, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum internalFormat) @@ -1061,7 +1084,7 @@ _mesa_init_teximage_fields(GLcontext *ctx, GLenum target, * fields are cleared so that its parent object will test incomplete. */ void -_mesa_clear_texture_image(GLcontext *ctx, struct gl_texture_image *texImage) +_mesa_clear_texture_image(struct gl_context *ctx, struct gl_texture_image *texImage) { ctx->Driver.FreeTexImageData(ctx, texImage); clear_teximage_fields(texImage); @@ -1093,7 +1116,7 @@ _mesa_clear_texture_image(GLcontext *ctx, struct gl_texture_image *texImage) * \return GL_TRUE if the image is acceptable, GL_FALSE if not acceptable. */ GLboolean -_mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border) { @@ -1205,7 +1228,7 @@ _mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, * Helper function to determine whether a target supports compressed textures */ static GLboolean -target_can_be_compressed(GLcontext *ctx, GLenum target) +target_can_be_compressed(struct gl_context *ctx, GLenum target) { return (((target == GL_TEXTURE_2D || target == GL_PROXY_TEXTURE_2D)) || ((ctx->Extensions.ARB_texture_cube_map && @@ -1236,11 +1259,11 @@ target_can_be_compressed(GLcontext *ctx, GLenum target) * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. * * Verifies each of the parameters against the constants specified in - * __GLcontextRec::Const and the supported extensions, and according to the + * __struct gl_contextRec::Const and the supported extensions, and according to the * OpenGL specification. */ static GLboolean -texture_error_check( GLcontext *ctx, GLenum target, +texture_error_check( struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLuint dimensions, @@ -1483,11 +1506,11 @@ texture_error_check( GLcontext *ctx, GLenum target, * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. * * Verifies each of the parameters against the constants specified in - * __GLcontextRec::Const and the supported extensions, and according to the + * __struct gl_contextRec::Const and the supported extensions, and according to the * OpenGL specification. */ static GLboolean -subtexture_error_check( GLcontext *ctx, GLuint dimensions, +subtexture_error_check( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, @@ -1580,7 +1603,7 @@ subtexture_error_check( GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if error recorded, GL_FALSE otherwise */ static GLboolean -subtexture_error_check2( GLcontext *ctx, GLuint dimensions, +subtexture_error_check2( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, @@ -1678,11 +1701,11 @@ subtexture_error_check2( GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. * * Verifies each of the parameters against the constants specified in - * __GLcontextRec::Const and the supported extensions, and according to the + * __struct gl_contextRec::Const and the supported extensions, and according to the * OpenGL specification. */ static GLboolean -copytexture_error_check( GLcontext *ctx, GLuint dimensions, +copytexture_error_check( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border ) { @@ -1857,7 +1880,7 @@ copytexture_error_check( GLcontext *ctx, GLuint dimensions, * \return GL_TRUE if an error was detected, or GL_FALSE if no errors. */ static GLboolean -copytexsubimage_error_check1( GLcontext *ctx, GLuint dimensions, +copytexsubimage_error_check1( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level) { /* Check that the source buffer is complete */ @@ -1931,7 +1954,7 @@ copytexsubimage_error_check1( GLcontext *ctx, GLuint dimensions, * \param height image height given by the user. */ static GLboolean -copytexsubimage_error_check2( GLcontext *ctx, GLuint dimensions, +copytexsubimage_error_check2( struct gl_context *ctx, GLuint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, @@ -2058,7 +2081,7 @@ copytexsubimage_error_check2( GLcontext *ctx, GLuint dimensions, /** Callback info for walking over FBO hash table */ struct cb_info { - GLcontext *ctx; + struct gl_context *ctx; struct gl_texture_object *texObj; GLuint level, face; }; @@ -2072,7 +2095,7 @@ check_rtt_cb(GLuint key, void *data, void *userData) { struct gl_framebuffer *fb = (struct gl_framebuffer *) data; const struct cb_info *info = (struct cb_info *) userData; - GLcontext *ctx = info->ctx; + struct gl_context *ctx = info->ctx; const struct gl_texture_object *texObj = info->texObj; const GLuint level = info->level, face = info->face; @@ -2104,7 +2127,7 @@ check_rtt_cb(GLuint key, void *data, void *userData) * Any FBOs rendering into the texture must be re-validated. */ static void -update_fbo_texture(GLcontext *ctx, struct gl_texture_object *texObj, +update_fbo_texture(struct gl_context *ctx, struct gl_texture_object *texObj, GLuint face, GLuint level) { /* Only check this texture if it's been marked as RenderToTexture */ @@ -2125,7 +2148,7 @@ update_fbo_texture(GLcontext *ctx, struct gl_texture_object *texObj, * mipmap levels now. */ static INLINE void -check_gen_mipmap(GLcontext *ctx, GLenum target, +check_gen_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, GLint level) { ASSERT(target != GL_TEXTURE_CUBE_MAP); @@ -2191,7 +2214,7 @@ override_internal_format(GLenum internalFormat, GLint width, GLint height) * comes up during automatic mipmap generation. */ void -_mesa_choose_texture_format(GLcontext *ctx, +_mesa_choose_texture_format(struct gl_context *ctx, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLenum target, GLint level, @@ -2229,7 +2252,6 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2249,7 +2271,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, const GLuint face = _mesa_tex_target_to_face(target); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 1, postConvWidth, 1, 1, border)) { + format, type, 1, width, 1, 1, border)) { return; /* error was recorded */ } @@ -2272,7 +2294,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, clear_teximage_fields(texImage); /* not really needed, but helpful */ _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, 1, 1, + width, 1, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2304,7 +2326,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, struct gl_texture_image *texImage; texImage = _mesa_get_proxy_tex_image(ctx, target, level); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 1, postConvWidth, 1, 1, border)) { + format, type, 1, width, 1, 1, border)) { /* when error, clear all proxy texture image parameters */ if (texImage) clear_teximage_fields(texImage); @@ -2315,7 +2337,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat, _mesa_get_current_tex_object(ctx, target); ASSERT(texImage); _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, 1, 1, + width, 1, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, internalFormat, format, type); @@ -2334,7 +2356,6 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width, postConvHeight = height; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2361,8 +2382,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, const GLuint face = _mesa_tex_target_to_face(target); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 2, postConvWidth, postConvHeight, - 1, border)) { + format, type, 2, width, height, 1, border)) { return; /* error was recorded */ } @@ -2384,7 +2404,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, ASSERT(texImage->Data == NULL); clear_teximage_fields(texImage); /* not really needed, but helpful */ _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, postConvHeight, 1, + width, height, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2422,8 +2442,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, struct gl_texture_image *texImage; texImage = _mesa_get_proxy_tex_image(ctx, target, level); if (texture_error_check(ctx, target, level, internalFormat, - format, type, 2, postConvWidth, postConvHeight, - 1, border)) { + format, type, 2, width, height, 1, border)) { /* when error, clear all proxy texture image parameters */ if (texImage) clear_teximage_fields(texImage); @@ -2433,7 +2452,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat, struct gl_texture_object *texObj = _mesa_get_current_tex_object(ctx, target); _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, postConvHeight, 1, + width, height, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, internalFormat, format, type); @@ -2620,7 +2639,6 @@ _mesa_TexSubImage1D( GLenum target, GLint level, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width; struct gl_texture_object *texObj; struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); @@ -2636,7 +2654,7 @@ _mesa_TexSubImage1D( GLenum target, GLint level, _mesa_update_state(ctx); if (subtexture_error_check(ctx, 1, target, level, xoffset, 0, 0, - postConvWidth, 1, 1, format, type)) { + width, 1, 1, format, type)) { return; /* error was detected */ } @@ -2649,8 +2667,7 @@ _mesa_TexSubImage1D( GLenum target, GLint level, texImage = _mesa_select_tex_image(ctx, texObj, target, level); if (subtexture_error_check2(ctx, 1, target, level, xoffset, 0, 0, - postConvWidth, 1, 1, - format, type, texImage)) { + width, 1, 1, format, type, texImage)) { /* error was recorded */ } else if (width > 0) { @@ -2678,7 +2695,6 @@ _mesa_TexSubImage2D( GLenum target, GLint level, GLenum format, GLenum type, const GLvoid *pixels ) { - GLsizei postConvWidth = width, postConvHeight = height; struct gl_texture_object *texObj; struct gl_texture_image *texImage; GET_CURRENT_CONTEXT(ctx); @@ -2695,7 +2711,7 @@ _mesa_TexSubImage2D( GLenum target, GLint level, _mesa_update_state(ctx); if (subtexture_error_check(ctx, 2, target, level, xoffset, yoffset, 0, - postConvWidth, postConvHeight, 1, format, type)) { + width, height, 1, format, type)) { return; /* error was detected */ } @@ -2706,8 +2722,7 @@ _mesa_TexSubImage2D( GLenum target, GLint level, texImage = _mesa_select_tex_image(ctx, texObj, target, level); if (subtexture_error_check2(ctx, 2, target, level, xoffset, yoffset, 0, - postConvWidth, postConvHeight, 1, - format, type, texImage)) { + width, height, 1, format, type, texImage)) { /* error was recorded */ } else if (width > 0 && height >= 0) { @@ -2800,7 +2815,6 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width; const GLuint face = _mesa_tex_target_to_face(target); GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2815,7 +2829,7 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, _mesa_update_state(ctx); if (copytexture_error_check(ctx, 1, target, level, internalFormat, - postConvWidth, 1, border)) + width, 1, border)) return; texObj = _mesa_get_current_tex_object(ctx, target); @@ -2834,7 +2848,7 @@ _mesa_CopyTexImage1D( GLenum target, GLint level, ASSERT(texImage->Data == NULL); clear_teximage_fields(texImage); /* not really needed, but helpful */ - _mesa_init_teximage_fields(ctx, target, texImage, postConvWidth, 1, 1, + _mesa_init_teximage_fields(ctx, target, texImage, width, 1, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2869,7 +2883,6 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width, postConvHeight = height; const GLuint face = _mesa_tex_target_to_face(target); GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -2884,7 +2897,7 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, _mesa_update_state(ctx); if (copytexture_error_check(ctx, 2, target, level, internalFormat, - postConvWidth, postConvHeight, border)) + width, height, border)) return; texObj = _mesa_get_current_tex_object(ctx, target); @@ -2905,7 +2918,7 @@ _mesa_CopyTexImage2D( GLenum target, GLint level, GLenum internalFormat, clear_teximage_fields(texImage); /* not really needed, but helpful */ _mesa_init_teximage_fields(ctx, target, texImage, - postConvWidth, postConvHeight, 1, + width, height, 1, border, internalFormat); _mesa_choose_texture_format(ctx, texObj, texImage, target, level, @@ -2938,7 +2951,6 @@ _mesa_CopyTexSubImage1D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width; GLint yoffset = 0; GLsizei height = 1; @@ -2963,8 +2975,7 @@ _mesa_CopyTexSubImage1D( GLenum target, GLint level, texImage = _mesa_select_tex_image(ctx, texObj, target, level); if (copytexsubimage_error_check2(ctx, 1, target, level, - xoffset, 0, 0, postConvWidth, 1, - texImage)) { + xoffset, 0, 0, width, 1, texImage)) { /* error was recorded */ } else { @@ -2995,7 +3006,6 @@ _mesa_CopyTexSubImage2D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width, postConvHeight = height; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -3018,8 +3028,7 @@ _mesa_CopyTexSubImage2D( GLenum target, GLint level, if (copytexsubimage_error_check2(ctx, 2, target, level, xoffset, yoffset, 0, - postConvWidth, postConvHeight, - texImage)) { + width, height, texImage)) { /* error was recorded */ } else { @@ -3051,7 +3060,6 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level, { struct gl_texture_object *texObj; struct gl_texture_image *texImage; - GLsizei postConvWidth = width, postConvHeight = height; GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -3073,8 +3081,7 @@ _mesa_CopyTexSubImage3D( GLenum target, GLint level, texImage = _mesa_select_tex_image(ctx, texObj, target, level); if (copytexsubimage_error_check2(ctx, 3, target, level, xoffset, yoffset, - zoffset, postConvWidth, postConvHeight, - texImage)) { + zoffset, width, height, texImage)) { /* error was recored */ } else { @@ -3135,7 +3142,7 @@ get_compressed_block_size(GLenum glformat, GLuint *bw, GLuint *bh) * \return error code or GL_NO_ERROR. */ static GLenum -compressed_texture_error_check(GLcontext *ctx, GLint dimensions, +compressed_texture_error_check(struct gl_context *ctx, GLint dimensions, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, @@ -3242,7 +3249,7 @@ compressed_texture_error_check(GLcontext *ctx, GLint dimensions, * \return error code or GL_NO_ERROR. */ static GLenum -compressed_subtexture_error_check(GLcontext *ctx, GLint dimensions, +compressed_subtexture_error_check(struct gl_context *ctx, GLint dimensions, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, @@ -3326,7 +3333,7 @@ compressed_subtexture_error_check(GLcontext *ctx, GLint dimensions, * \return GL_TRUE if error found, GL_FALSE otherwise. */ static GLboolean -compressed_subtexture_error_check2(GLcontext *ctx, GLuint dims, +compressed_subtexture_error_check2(struct gl_context *ctx, GLuint dims, GLsizei width, GLsizei height, GLsizei depth, GLenum format, struct gl_texture_image *texImage) diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h index 0dcacab3cd..d4317c301b 100644 --- a/src/mesa/main/teximage.h +++ b/src/mesa/main/teximage.h @@ -46,7 +46,7 @@ _mesa_free_texmemory(void *m); /*@{*/ extern GLint -_mesa_base_tex_format( GLcontext *ctx, GLint internalFormat ); +_mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat ); extern GLboolean @@ -54,26 +54,26 @@ _mesa_is_proxy_texture(GLenum target); extern struct gl_texture_image * -_mesa_new_texture_image( GLcontext *ctx ); +_mesa_new_texture_image( struct gl_context *ctx ); extern void -_mesa_delete_texture_image( GLcontext *ctx, struct gl_texture_image *teximage ); +_mesa_delete_texture_image( struct gl_context *ctx, struct gl_texture_image *teximage ); extern void -_mesa_free_texture_image_data( GLcontext *ctx, +_mesa_free_texture_image_data( struct gl_context *ctx, struct gl_texture_image *texImage ); extern void -_mesa_init_teximage_fields(GLcontext *ctx, GLenum target, +_mesa_init_teximage_fields(struct gl_context *ctx, GLenum target, struct gl_texture_image *img, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum internalFormat); extern void -_mesa_choose_texture_format(GLcontext *ctx, +_mesa_choose_texture_format(struct gl_context *ctx, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLenum target, GLint level, @@ -81,7 +81,7 @@ _mesa_choose_texture_format(GLcontext *ctx, extern void -_mesa_clear_texture_image(GLcontext *ctx, struct gl_texture_image *texImage); +_mesa_clear_texture_image(struct gl_context *ctx, struct gl_texture_image *texImage); extern void @@ -91,33 +91,33 @@ _mesa_set_tex_image(struct gl_texture_object *tObj, extern struct gl_texture_object * -_mesa_select_tex_object(GLcontext *ctx, const struct gl_texture_unit *texUnit, +_mesa_select_tex_object(struct gl_context *ctx, const struct gl_texture_unit *texUnit, GLenum target); extern struct gl_texture_object * -_mesa_get_current_tex_object(GLcontext *ctx, GLenum target); +_mesa_get_current_tex_object(struct gl_context *ctx, GLenum target); extern struct gl_texture_image * -_mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_object *texObj, +_mesa_select_tex_image(struct gl_context *ctx, const struct gl_texture_object *texObj, GLenum target, GLint level); extern struct gl_texture_image * -_mesa_get_tex_image(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_get_tex_image(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum target, GLint level); extern struct gl_texture_image * -_mesa_get_proxy_tex_image(GLcontext *ctx, GLenum target, GLint level); +_mesa_get_proxy_tex_image(struct gl_context *ctx, GLenum target, GLint level); extern GLint -_mesa_max_texture_levels(GLcontext *ctx, GLenum target); +_mesa_max_texture_levels(struct gl_context *ctx, GLenum target); extern GLboolean -_mesa_test_proxy_teximage(GLcontext *ctx, GLenum target, GLint level, +_mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, GLint width, GLint height, GLint depth, GLint border); @@ -130,7 +130,7 @@ _mesa_tex_target_to_face(GLenum target); * Lock a texture for updating. See also _mesa_lock_context_textures(). */ static INLINE void -_mesa_lock_texture(GLcontext *ctx, struct gl_texture_object *texObj) +_mesa_lock_texture(struct gl_context *ctx, struct gl_texture_object *texObj) { _glthread_LOCK_MUTEX(ctx->Shared->TexMutex); ctx->Shared->TextureStateStamp++; @@ -138,7 +138,7 @@ _mesa_lock_texture(GLcontext *ctx, struct gl_texture_object *texObj) } static INLINE void -_mesa_unlock_texture(GLcontext *ctx, struct gl_texture_object *texObj) +_mesa_unlock_texture(struct gl_context *ctx, struct gl_texture_object *texObj) { _glthread_UNLOCK_MUTEX(ctx->Shared->TexMutex); } diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 1fedc87028..e08df0f7fe 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -53,7 +53,7 @@ * Return the gl_texture_object for a given ID. */ struct gl_texture_object * -_mesa_lookup_texture(GLcontext *ctx, GLuint id) +_mesa_lookup_texture(struct gl_context *ctx, GLuint id) { return (struct gl_texture_object *) _mesa_HashLookup(ctx->Shared->TexObjects, id); @@ -77,7 +77,7 @@ _mesa_lookup_texture(GLcontext *ctx, GLuint id) * \return pointer to new texture object. */ struct gl_texture_object * -_mesa_new_texture_object( GLcontext *ctx, GLuint name, GLenum target ) +_mesa_new_texture_object( struct gl_context *ctx, GLuint name, GLenum target ) { struct gl_texture_object *obj; (void) ctx; @@ -149,7 +149,7 @@ _mesa_initialize_texture_object( struct gl_texture_object *obj, * target it's getting bound to (GL_TEXTURE_1D/2D/etc). */ static void -finish_texture_init(GLcontext *ctx, GLenum target, +finish_texture_init(struct gl_context *ctx, GLenum target, struct gl_texture_object *obj) { assert(obj->Target == 0); @@ -181,7 +181,7 @@ finish_texture_init(GLcontext *ctx, GLenum target, * \param texObj the texture object to delete. */ void -_mesa_delete_texture_object( GLcontext *ctx, struct gl_texture_object *texObj ) +_mesa_delete_texture_object( struct gl_context *ctx, struct gl_texture_object *texObj ) { GLuint i, face; @@ -265,7 +265,7 @@ _mesa_copy_texture_object( struct gl_texture_object *dest, * \sa _mesa_clear_texture_image(). */ void -_mesa_clear_texture_object(GLcontext *ctx, struct gl_texture_object *texObj) +_mesa_clear_texture_object(struct gl_context *ctx, struct gl_texture_object *texObj) { GLuint i, j; @@ -404,7 +404,7 @@ incomplete(const struct gl_texture_object *t, const char *why) * present and has the expected size. */ void -_mesa_test_texobj_completeness( const GLcontext *ctx, +_mesa_test_texobj_completeness( const struct gl_context *ctx, struct gl_texture_object *t ) { const GLint baseLevel = t->BaseLevel; @@ -696,7 +696,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, * \param invalidate_state also invalidate context state. */ void -_mesa_dirty_texobj(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj, GLboolean invalidate_state) { texObj->_Complete = GL_FALSE; @@ -712,7 +712,7 @@ _mesa_dirty_texobj(GLcontext *ctx, struct gl_texture_object *texObj, * incomplete texture. */ struct gl_texture_object * -_mesa_get_fallback_texture(GLcontext *ctx) +_mesa_get_fallback_texture(struct gl_context *ctx) { if (!ctx->Shared->FallbackTex) { /* create fallback texture now */ @@ -830,7 +830,7 @@ _mesa_GenTextures( GLsizei n, GLuint *textures ) * read framebuffer. If so, Unbind it. */ static void -unbind_texobj_from_fbo(GLcontext *ctx, struct gl_texture_object *texObj) +unbind_texobj_from_fbo(struct gl_context *ctx, struct gl_texture_object *texObj) { const GLuint n = (ctx->DrawBuffer == ctx->ReadBuffer) ? 1 : 2; GLuint i; @@ -855,7 +855,7 @@ unbind_texobj_from_fbo(GLcontext *ctx, struct gl_texture_object *texObj) * unbind it if so (revert to default textures). */ static void -unbind_texobj_from_texunits(GLcontext *ctx, struct gl_texture_object *texObj) +unbind_texobj_from_texunits(struct gl_context *ctx, struct gl_texture_object *texObj) { GLuint u, tex; @@ -1214,7 +1214,7 @@ _mesa_IsTexture( GLuint texture ) * See also _mesa_lock/unlock_texture() in teximage.h */ void -_mesa_lock_context_textures( GLcontext *ctx ) +_mesa_lock_context_textures( struct gl_context *ctx ) { _glthread_LOCK_MUTEX(ctx->Shared->TexMutex); @@ -1226,7 +1226,7 @@ _mesa_lock_context_textures( GLcontext *ctx ) void -_mesa_unlock_context_textures( GLcontext *ctx ) +_mesa_unlock_context_textures( struct gl_context *ctx ) { assert(ctx->Shared->TextureStateStamp == ctx->TextureStateTimestamp); _glthread_UNLOCK_MUTEX(ctx->Shared->TexMutex); diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h index 9bfebd45c8..821b35caa3 100644 --- a/src/mesa/main/texobj.h +++ b/src/mesa/main/texobj.h @@ -41,45 +41,45 @@ /*@{*/ extern struct gl_texture_object * -_mesa_lookup_texture(GLcontext *ctx, GLuint id); +_mesa_lookup_texture(struct gl_context *ctx, GLuint id); extern struct gl_texture_object * -_mesa_new_texture_object( GLcontext *ctx, GLuint name, GLenum target ); +_mesa_new_texture_object( struct gl_context *ctx, GLuint name, GLenum target ); extern void _mesa_initialize_texture_object( struct gl_texture_object *obj, GLuint name, GLenum target ); extern void -_mesa_delete_texture_object( GLcontext *ctx, struct gl_texture_object *obj ); +_mesa_delete_texture_object( struct gl_context *ctx, struct gl_texture_object *obj ); extern void _mesa_copy_texture_object( struct gl_texture_object *dest, const struct gl_texture_object *src ); extern void -_mesa_clear_texture_object(GLcontext *ctx, struct gl_texture_object *obj); +_mesa_clear_texture_object(struct gl_context *ctx, struct gl_texture_object *obj); extern void _mesa_reference_texobj(struct gl_texture_object **ptr, struct gl_texture_object *tex); extern void -_mesa_test_texobj_completeness( const GLcontext *ctx, +_mesa_test_texobj_completeness( const struct gl_context *ctx, struct gl_texture_object *obj ); extern void -_mesa_dirty_texobj(GLcontext *ctx, struct gl_texture_object *texObj, +_mesa_dirty_texobj(struct gl_context *ctx, struct gl_texture_object *texObj, GLboolean invalidate_state); extern struct gl_texture_object * -_mesa_get_fallback_texture(GLcontext *ctx); +_mesa_get_fallback_texture(struct gl_context *ctx); extern void -_mesa_unlock_context_textures( GLcontext *ctx ); +_mesa_unlock_context_textures( struct gl_context *ctx ); extern void -_mesa_lock_context_textures( GLcontext *ctx ); +_mesa_lock_context_textures( struct gl_context *ctx ); /*@}*/ diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index 187049c070..d5c83de97f 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -47,7 +47,7 @@ * \return GL_TRUE if legal, GL_FALSE otherwise */ static GLboolean -validate_texture_wrap_mode(GLcontext * ctx, GLenum target, GLenum wrap) +validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap) { const struct gl_extensions * const e = & ctx->Extensions; @@ -83,7 +83,7 @@ validate_texture_wrap_mode(GLcontext * ctx, GLenum target, GLenum wrap) * Only the glGetTexLevelParameter() functions accept proxy targets. */ static struct gl_texture_object * -get_texobj(GLcontext *ctx, GLenum target, GLboolean get) +get_texobj(struct gl_context *ctx, GLenum target, GLboolean get) { struct gl_texture_unit *texUnit; @@ -178,7 +178,7 @@ set_swizzle_component(GLuint *swizzle, GLuint comp, GLuint swz) * per-texture derived state gets recomputed. */ static INLINE void -flush(GLcontext *ctx, struct gl_texture_object *texObj) +flush(struct gl_context *ctx, struct gl_texture_object *texObj) { FLUSH_VERTICES(ctx, _NEW_TEXTURE); texObj->_Complete = GL_FALSE; @@ -190,7 +190,7 @@ flush(GLcontext *ctx, struct gl_texture_object *texObj) * \return GL_TRUE if legal AND the value changed, GL_FALSE otherwise */ static GLboolean -set_tex_parameteri(GLcontext *ctx, +set_tex_parameteri(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum pname, const GLint *params) { @@ -351,7 +351,8 @@ set_tex_parameteri(GLcontext *ctx, if (ctx->Extensions.ARB_depth_texture && (params[0] == GL_LUMINANCE || params[0] == GL_INTENSITY || - params[0] == GL_ALPHA)) { + params[0] == GL_ALPHA || + (ctx->Extensions.ARB_texture_rg && params[0] == GL_RED))) { if (texObj->DepthMode != params[0]) { flush(ctx, texObj); texObj->DepthMode = params[0]; @@ -429,7 +430,7 @@ set_tex_parameteri(GLcontext *ctx, * \return GL_TRUE if legal AND the value changed, GL_FALSE otherwise */ static GLboolean -set_tex_parameterf(GLcontext *ctx, +set_tex_parameterf(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum pname, const GLfloat *params) { @@ -870,7 +871,17 @@ _mesa_GetTexLevelParameteriv( GLenum target, GLint level, *params = img->Border; break; case GL_TEXTURE_RED_SIZE: + if (img->_BaseFormat == GL_RED) { + *params = _mesa_get_format_bits(texFormat, pname); + break; + } + /* FALLTHROUGH */ case GL_TEXTURE_GREEN_SIZE: + if (img->_BaseFormat == GL_RG) { + *params = _mesa_get_format_bits(texFormat, pname); + break; + } + /* FALLTHROUGH */ case GL_TEXTURE_BLUE_SIZE: if (img->_BaseFormat == GL_RGB || img->_BaseFormat == GL_RGBA) *params = _mesa_get_format_bits(texFormat, pname); diff --git a/src/mesa/main/texrender.c b/src/mesa/main/texrender.c index c68105b395..8961b92648 100644 --- a/src/mesa/main/texrender.c +++ b/src/mesa/main/texrender.c @@ -31,7 +31,7 @@ struct texture_renderbuffer * Get row of values from the renderbuffer that wraps a texture image. */ static void -texture_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { const struct texture_renderbuffer *trb @@ -100,7 +100,7 @@ texture_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { const struct texture_renderbuffer *trb @@ -167,7 +167,7 @@ texture_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, * Put row of values into a renderbuffer that wraps a texture image. */ static void -texture_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const struct texture_renderbuffer *trb @@ -229,7 +229,7 @@ texture_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, * Put row of RGB values into a renderbuffer that wraps a texture image. */ static void -texture_put_row_rgb(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_row_rgb(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte *mask) { const struct texture_renderbuffer *trb @@ -289,7 +289,7 @@ texture_put_row_rgb(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_put_mono_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_mono_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte *mask) { const struct texture_renderbuffer *trb @@ -348,7 +348,7 @@ texture_put_mono_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_put_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, +texture_put_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte *mask) { @@ -407,7 +407,7 @@ texture_put_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, static void -texture_put_mono_values(GLcontext *ctx, struct gl_renderbuffer *rb, +texture_put_mono_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte *mask) { @@ -486,7 +486,7 @@ delete_texture_wrapper(struct gl_renderbuffer *rb) * This allows rendering into the texture as if it were a renderbuffer. */ static void -wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att) +wrap_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) { struct texture_renderbuffer *trb; const GLuint name = 0; @@ -525,7 +525,7 @@ wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att) * update the internal format info, etc. */ static void -update_wrapper(GLcontext *ctx, const struct gl_renderbuffer_attachment *att) +update_wrapper(struct gl_context *ctx, const struct gl_renderbuffer_attachment *att) { struct texture_renderbuffer *trb = (struct texture_renderbuffer *) att->Renderbuffer; @@ -609,7 +609,7 @@ update_wrapper(GLcontext *ctx, const struct gl_renderbuffer_attachment *att) * \sa _mesa_framebuffer_renderbuffer */ void -_mesa_render_texture(GLcontext *ctx, +_mesa_render_texture(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att) { @@ -623,7 +623,7 @@ _mesa_render_texture(GLcontext *ctx, void -_mesa_finish_render_texture(GLcontext *ctx, +_mesa_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) { /* do nothing */ diff --git a/src/mesa/main/texrender.h b/src/mesa/main/texrender.h index 1e87d594a2..5e68fb03b5 100644 --- a/src/mesa/main/texrender.h +++ b/src/mesa/main/texrender.h @@ -4,12 +4,12 @@ #include "mtypes.h" extern void -_mesa_render_texture(GLcontext *ctx, +_mesa_render_texture(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att); extern void -_mesa_finish_render_texture(GLcontext *ctx, +_mesa_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att); diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c index dae173d1bd..1b0d760fae 100644 --- a/src/mesa/main/texstate.c +++ b/src/mesa/main/texstate.c @@ -63,7 +63,7 @@ static const struct gl_tex_env_combine_state default_combine_state = { * Used by glXCopyContext to copy texture state from one context to another. */ void -_mesa_copy_texture_state( const GLcontext *src, GLcontext *dst ) +_mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst ) { GLuint u, tex; @@ -119,7 +119,7 @@ _mesa_copy_texture_state( const GLcontext *src, GLcontext *dst ) * For debugging */ void -_mesa_print_texunit_state( GLcontext *ctx, GLuint unit ) +_mesa_print_texunit_state( struct gl_context *ctx, GLuint unit ) { const struct gl_texture_unit *texUnit = ctx->Texture.Unit + unit; printf("Texture Unit %d\n", unit); @@ -179,6 +179,8 @@ calculate_derived_texenv( struct gl_tex_env_combine_state *state, break; case GL_LUMINANCE: + case GL_RED: + case GL_RG: case GL_RGB: case GL_YCBCR_MESA: case GL_DUDV_ATI: @@ -219,6 +221,8 @@ calculate_derived_texenv( struct gl_tex_env_combine_state *state, case GL_INTENSITY: state->SourceRGB[0] = GL_PREVIOUS; break; + case GL_RED: + case GL_RG: case GL_RGB: case GL_YCBCR_MESA: case GL_DUDV_ATI: @@ -244,6 +248,8 @@ calculate_derived_texenv( struct gl_tex_env_combine_state *state, state->OperandA[2] = GL_SRC_ALPHA; /* FALLTHROUGH */ case GL_LUMINANCE: + case GL_RED: + case GL_RG: case GL_RGB: case GL_LUMINANCE_ALPHA: case GL_RGBA: @@ -357,7 +363,7 @@ _mesa_ClientActiveTextureARB(GLenum texture) * \param ctx GL context. */ static void -update_texture_matrices( GLcontext *ctx ) +update_texture_matrices( struct gl_context *ctx ) { GLuint u; @@ -380,7 +386,7 @@ update_texture_matrices( GLcontext *ctx ) * Examine texture unit's combine/env state to update derived state. */ static void -update_tex_combine(GLcontext *ctx, struct gl_texture_unit *texUnit) +update_tex_combine(struct gl_context *ctx, struct gl_texture_unit *texUnit) { struct gl_tex_env_combine_state *combine; @@ -483,7 +489,7 @@ update_tex_combine(GLcontext *ctx, struct gl_texture_unit *texUnit) * \param ctx GL context. */ static void -update_texture_state( GLcontext *ctx ) +update_texture_state( struct gl_context *ctx ) { GLuint unit; struct gl_fragment_program *fprog = NULL; @@ -647,7 +653,7 @@ update_texture_state( GLcontext *ctx ) * Update texture-related derived state. */ void -_mesa_update_texture( GLcontext *ctx, GLuint new_state ) +_mesa_update_texture( struct gl_context *ctx, GLuint new_state ) { if (new_state & _NEW_TEXTURE_MATRIX) update_texture_matrices( ctx ); @@ -672,7 +678,7 @@ _mesa_update_texture( GLcontext *ctx, GLuint new_state ) * GL_FALSE. */ static GLboolean -alloc_proxy_textures( GLcontext *ctx ) +alloc_proxy_textures( struct gl_context *ctx ) { static const GLenum targets[] = { GL_TEXTURE_1D, @@ -710,7 +716,7 @@ alloc_proxy_textures( GLcontext *ctx ) * \param unit texture unit number to be initialized. */ static void -init_texture_unit( GLcontext *ctx, GLuint unit ) +init_texture_unit( struct gl_context *ctx, GLuint unit ) { struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; GLuint tex; @@ -758,7 +764,7 @@ init_texture_unit( GLcontext *ctx, GLuint unit ) * Initialize texture state for the given context. */ GLboolean -_mesa_init_texture(GLcontext *ctx) +_mesa_init_texture(struct gl_context *ctx) { GLuint u; @@ -790,7 +796,7 @@ _mesa_init_texture(GLcontext *ctx) * Free dynamically-allocted texture data attached to the given context. */ void -_mesa_free_texture_data(GLcontext *ctx) +_mesa_free_texture_data(struct gl_context *ctx) { GLuint u, tgt; @@ -819,7 +825,7 @@ _mesa_free_texture_data(GLcontext *ctx) * shared state. */ void -_mesa_update_default_objects_texture(GLcontext *ctx) +_mesa_update_default_objects_texture(struct gl_context *ctx) { GLuint u, tex; diff --git a/src/mesa/main/texstate.h b/src/mesa/main/texstate.h index 912cb67798..987123036a 100644 --- a/src/mesa/main/texstate.h +++ b/src/mesa/main/texstate.h @@ -41,7 +41,7 @@ * This the texture unit set by glActiveTexture(), not glClientActiveTexture(). */ static INLINE struct gl_texture_unit * -_mesa_get_current_tex_unit(GLcontext *ctx) +_mesa_get_current_tex_unit(struct gl_context *ctx) { ASSERT(ctx->Texture.CurrentUnit < Elements(ctx->Texture.Unit)); return &(ctx->Texture.Unit[ctx->Texture.CurrentUnit]); @@ -49,10 +49,10 @@ _mesa_get_current_tex_unit(GLcontext *ctx) extern void -_mesa_copy_texture_state( const GLcontext *src, GLcontext *dst ); +_mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst ); extern void -_mesa_print_texunit_state( GLcontext *ctx, GLuint unit ); +_mesa_print_texunit_state( struct gl_context *ctx, GLuint unit ); @@ -76,16 +76,16 @@ _mesa_ClientActiveTextureARB( GLenum target ); /*@{*/ extern void -_mesa_update_texture( GLcontext *ctx, GLuint new_state ); +_mesa_update_texture( struct gl_context *ctx, GLuint new_state ); extern GLboolean -_mesa_init_texture( GLcontext *ctx ); +_mesa_init_texture( struct gl_context *ctx ); extern void -_mesa_free_texture_data( GLcontext *ctx ); +_mesa_free_texture_data( struct gl_context *ctx ); extern void -_mesa_update_default_objects_texture(GLcontext *ctx); +_mesa_update_default_objects_texture(struct gl_context *ctx); /*@}*/ diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index a1574e6cd8..f5f94bbf1a 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -99,6 +99,7 @@ can_swizzle(GLenum logicalBaseFormat) case GL_BGR: case GL_BGRA: case GL_ABGR_EXT: + case GL_RG: return GL_TRUE; default: return GL_FALSE; @@ -120,6 +121,7 @@ enum { IDX_BGR, IDX_BGRA, IDX_ABGR, + IDX_RG, MAX_IDX }; @@ -171,7 +173,6 @@ static const struct { MAP4(0,1,2,3), }, - { IDX_RED, MAP4(0, ZERO, ZERO, ONE), @@ -207,6 +208,12 @@ static const struct { MAP4(3,2,1,0), MAP4(3,2,1,0) }, + + { + IDX_RG, + MAP4(0, 1, ZERO, ONE), + MAP2(0, 1) + }, }; @@ -230,6 +237,7 @@ get_map_idx(GLenum value) case GL_BGR: return IDX_BGR; case GL_BGRA: return IDX_BGRA; case GL_ABGR_EXT: return IDX_ABGR; + case GL_RG: return IDX_RG; default: _mesa_problem(NULL, "Unexpected inFormat"); return 0; @@ -280,7 +288,7 @@ compute_component_mapping(GLenum inFormat, GLenum outFormat, * Apply all needed pixel unpacking and pixel transfer operations. * Note that there are both logicalBaseFormat and textureBaseFormat parameters. * Suppose the user specifies GL_LUMINANCE as the internal texture format - * but the graphics hardware doesn't support luminance textures. So, might + * but the graphics hardware doesn't support luminance textures. So, we might * use an RGB hardware format instead. * If logicalBaseFormat != textureBaseFormat we have some extra work to do. * @@ -299,7 +307,7 @@ compute_component_mapping(GLenum inFormat, GLenum outFormat, * \return resulting image with format = textureBaseFormat and type = GLfloat. */ static GLfloat * -make_temp_float_image(GLcontext *ctx, GLuint dims, +make_temp_float_image(struct gl_context *ctx, GLuint dims, GLenum logicalBaseFormat, GLenum textureBaseFormat, GLint srcWidth, GLint srcHeight, GLint srcDepth, @@ -319,6 +327,8 @@ make_temp_float_image(GLcontext *ctx, GLuint dims, ASSERT(logicalBaseFormat == GL_RGBA || logicalBaseFormat == GL_RGB || + logicalBaseFormat == GL_RG || + logicalBaseFormat == GL_RED || logicalBaseFormat == GL_LUMINANCE_ALPHA || logicalBaseFormat == GL_LUMINANCE || logicalBaseFormat == GL_ALPHA || @@ -328,6 +338,8 @@ make_temp_float_image(GLcontext *ctx, GLuint dims, ASSERT(textureBaseFormat == GL_RGBA || textureBaseFormat == GL_RGB || + textureBaseFormat == GL_RG || + textureBaseFormat == GL_RED || textureBaseFormat == GL_LUMINANCE_ALPHA || textureBaseFormat == GL_LUMINANCE || textureBaseFormat == GL_ALPHA || @@ -409,7 +421,7 @@ make_temp_float_image(GLcontext *ctx, GLuint dims, * Apply all needed pixel unpacking and pixel transfer operations. * Note that there are both logicalBaseFormat and textureBaseFormat parameters. * Suppose the user specifies GL_LUMINANCE as the internal texture format - * but the graphics hardware doesn't support luminance textures. So, might + * but the graphics hardware doesn't support luminance textures. So, we might * use an RGB hardware format instead. * If logicalBaseFormat != textureBaseFormat we have some extra work to do. * @@ -428,7 +440,7 @@ make_temp_float_image(GLcontext *ctx, GLuint dims, * \return resulting image with format = textureBaseFormat and type = GLchan. */ GLchan * -_mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, +_mesa_make_temp_chan_image(struct gl_context *ctx, GLuint dims, GLenum logicalBaseFormat, GLenum textureBaseFormat, GLint srcWidth, GLint srcHeight, GLint srcDepth, @@ -445,6 +457,8 @@ _mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, ASSERT(logicalBaseFormat == GL_RGBA || logicalBaseFormat == GL_RGB || + logicalBaseFormat == GL_RG || + logicalBaseFormat == GL_RED || logicalBaseFormat == GL_LUMINANCE_ALPHA || logicalBaseFormat == GL_LUMINANCE || logicalBaseFormat == GL_ALPHA || @@ -452,6 +466,8 @@ _mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, ASSERT(textureBaseFormat == GL_RGBA || textureBaseFormat == GL_RGB || + textureBaseFormat == GL_RG || + textureBaseFormat == GL_RED || textureBaseFormat == GL_LUMINANCE_ALPHA || textureBaseFormat == GL_LUMINANCE || textureBaseFormat == GL_ALPHA || @@ -658,7 +674,10 @@ swizzle_copy(GLubyte *dst, GLuint dstComponents, const GLubyte *src, static const GLubyte map_identity[6] = { 0, 1, 2, 3, ZERO, ONE }; static const GLubyte map_3210[6] = { 3, 2, 1, 0, ZERO, ONE }; -/* Deal with the _REV input types: + +/** + * For 1-byte/pixel formats (or 8_8_8_8 packed formats), return a + * mapping array depending on endianness. */ static const GLubyte * type_mapping( GLenum srcType ) @@ -676,7 +695,10 @@ type_mapping( GLenum srcType ) } } -/* Mapping required if input type is + +/** + * For 1-byte/pixel formats (or 8_8_8_8 packed formats), return a + * mapping array depending on pixelstore byte swapping state. */ static const GLubyte * byteswap_mapping( GLboolean swapBytes, @@ -703,7 +725,7 @@ byteswap_mapping( GLboolean swapBytes, * Transfer a GLubyte texture image with component swizzling. */ static void -_mesa_swizzle_ubyte_image(GLcontext *ctx, +_mesa_swizzle_ubyte_image(struct gl_context *ctx, GLuint dimensions, GLenum srcFormat, GLenum srcType, @@ -790,7 +812,7 @@ _mesa_swizzle_ubyte_image(GLcontext *ctx, * 1D, 2D and 3D images supported. */ static void -memcpy_texture(GLcontext *ctx, +memcpy_texture(struct gl_context *ctx, GLuint dimensions, gl_format dstFormat, GLvoid *dstAddr, @@ -1413,7 +1435,6 @@ _mesa_texstore_argb8888(TEXSTORE_PARAMS) _mesa_swizzle_ubyte_image(ctx, dims, srcFormat, srcType, - baseInternalFormat, dstmap, 4, dstAddr, dstXoffset, dstYoffset, dstZoffset, @@ -1906,22 +1927,26 @@ _mesa_texstore_argb1555(TEXSTORE_PARAMS) } +/** + * Do texstore for 2-channel, 8-bit/channel, unsigned normalized formats. + */ static GLboolean -_mesa_texstore_al88(TEXSTORE_PARAMS) +_mesa_texstore_unorm88(TEXSTORE_PARAMS) { const GLboolean littleEndian = _mesa_little_endian(); const GLuint texelBytes = _mesa_get_format_bytes(dstFormat); const GLenum baseFormat = _mesa_get_format_base_format(dstFormat); ASSERT(dstFormat == MESA_FORMAT_AL88 || - dstFormat == MESA_FORMAT_AL88_REV); + dstFormat == MESA_FORMAT_AL88_REV || + dstFormat == MESA_FORMAT_RG88 || + dstFormat == MESA_FORMAT_RG88_REV); ASSERT(texelBytes == 2); if (!ctx->_ImageTransferState && !srcPacking->SwapBytes && - dstFormat == MESA_FORMAT_AL88 && - baseInternalFormat == GL_LUMINANCE_ALPHA && - srcFormat == GL_LUMINANCE_ALPHA && + (dstFormat == MESA_FORMAT_AL88 || dstFormat == MESA_FORMAT_RG88) && + baseInternalFormat == srcFormat && srcType == GL_UNSIGNED_BYTE && littleEndian) { /* simple memcpy path */ @@ -1937,19 +1962,31 @@ _mesa_texstore_al88(TEXSTORE_PARAMS) srcType == GL_UNSIGNED_BYTE && can_swizzle(baseInternalFormat) && can_swizzle(srcFormat)) { - GLubyte dstmap[4]; /* dstmap - how to swizzle from RGBA to dst format: */ - if ((littleEndian && dstFormat == MESA_FORMAT_AL88) || - (!littleEndian && dstFormat == MESA_FORMAT_AL88_REV)) { - dstmap[0] = 0; - dstmap[1] = 3; + if (dstFormat == MESA_FORMAT_AL88 || dstFormat == MESA_FORMAT_AL88_REV) { + if ((littleEndian && dstFormat == MESA_FORMAT_AL88) || + (!littleEndian && dstFormat == MESA_FORMAT_AL88_REV)) { + dstmap[0] = 0; + dstmap[1] = 3; + } + else { + dstmap[0] = 3; + dstmap[1] = 0; + } } else { - dstmap[0] = 3; - dstmap[1] = 0; + if ((littleEndian && dstFormat == MESA_FORMAT_RG88) || + (!littleEndian && dstFormat == MESA_FORMAT_RG88_REV)) { + dstmap[0] = 0; + dstmap[1] = 1; + } + else { + dstmap[0] = 1; + dstmap[1] = 0; + } } dstmap[2] = ZERO; /* ? */ dstmap[3] = ONE; /* ? */ @@ -1983,7 +2020,8 @@ _mesa_texstore_al88(TEXSTORE_PARAMS) + dstXoffset * texelBytes; for (row = 0; row < srcHeight; row++) { GLushort *dstUS = (GLushort *) dstRow; - if (dstFormat == MESA_FORMAT_AL88) { + if (dstFormat == MESA_FORMAT_AL88 || + dstFormat == MESA_FORMAT_RG88) { for (col = 0; col < srcWidth; col++) { /* src[0] is luminance, src[1] is alpha */ dstUS[col] = PACK_COLOR_88( CHAN_TO_UBYTE(src[1]), @@ -2008,22 +2046,26 @@ _mesa_texstore_al88(TEXSTORE_PARAMS) } +/** + * Do texstore for 2-channel, 16-bit/channel, unsigned normalized formats. + */ static GLboolean -_mesa_texstore_al1616(TEXSTORE_PARAMS) +_mesa_texstore_unorm1616(TEXSTORE_PARAMS) { const GLboolean littleEndian = _mesa_little_endian(); const GLuint texelBytes = _mesa_get_format_bytes(dstFormat); const GLenum baseFormat = _mesa_get_format_base_format(dstFormat); ASSERT(dstFormat == MESA_FORMAT_AL1616 || - dstFormat == MESA_FORMAT_AL1616_REV); + dstFormat == MESA_FORMAT_AL1616_REV || + dstFormat == MESA_FORMAT_RG1616 || + dstFormat == MESA_FORMAT_RG1616_REV); ASSERT(texelBytes == 4); if (!ctx->_ImageTransferState && !srcPacking->SwapBytes && - dstFormat == MESA_FORMAT_AL1616 && - baseInternalFormat == GL_LUMINANCE_ALPHA && - srcFormat == GL_LUMINANCE_ALPHA && + (dstFormat == MESA_FORMAT_AL1616 || dstFormat == MESA_FORMAT_RG1616) && + baseInternalFormat == srcFormat && srcType == GL_UNSIGNED_SHORT && littleEndian) { /* simple memcpy path */ @@ -2053,7 +2095,8 @@ _mesa_texstore_al1616(TEXSTORE_PARAMS) + dstXoffset * texelBytes; for (row = 0; row < srcHeight; row++) { GLuint *dstUI = (GLuint *) dstRow; - if (dstFormat == MESA_FORMAT_AL1616) { + if (dstFormat == MESA_FORMAT_AL1616 || + dstFormat == MESA_FORMAT_RG1616) { for (col = 0; col < srcWidth; col++) { GLushort l, a; @@ -2083,6 +2126,66 @@ _mesa_texstore_al1616(TEXSTORE_PARAMS) static GLboolean +_mesa_texstore_r16(TEXSTORE_PARAMS) +{ + const GLboolean littleEndian = _mesa_little_endian(); + const GLuint texelBytes = _mesa_get_format_bytes(dstFormat); + const GLenum baseFormat = _mesa_get_format_base_format(dstFormat); + + ASSERT(dstFormat == MESA_FORMAT_R16); + ASSERT(texelBytes == 2); + + if (!ctx->_ImageTransferState && + !srcPacking->SwapBytes && + dstFormat == MESA_FORMAT_R16 && + baseInternalFormat == GL_RED && + srcFormat == GL_RED && + srcType == GL_UNSIGNED_SHORT && + littleEndian) { + /* simple memcpy path */ + memcpy_texture(ctx, dims, + dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset, + dstRowStride, + dstImageOffsets, + srcWidth, srcHeight, srcDepth, srcFormat, srcType, + srcAddr, srcPacking); + } + else { + /* general path */ + const GLfloat *tempImage = make_temp_float_image(ctx, dims, + baseInternalFormat, + baseFormat, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, srcAddr, + srcPacking); + const GLfloat *src = tempImage; + GLint img, row, col; + if (!tempImage) + return GL_FALSE; + for (img = 0; img < srcDepth; img++) { + GLubyte *dstRow = (GLubyte *) dstAddr + + dstImageOffsets[dstZoffset + img] * texelBytes + + dstYoffset * dstRowStride + + dstXoffset * texelBytes; + for (row = 0; row < srcHeight; row++) { + GLushort *dstUS = (GLushort *) dstRow; + for (col = 0; col < srcWidth; col++) { + GLushort r; + + UNCLAMPED_FLOAT_TO_USHORT(r, src[0]); + dstUS[col] = r; + src += 1; + } + dstRow += dstRowStride; + } + } + free((void *) tempImage); + } + return GL_TRUE; +} + + +static GLboolean _mesa_texstore_rgba_16(TEXSTORE_PARAMS) { const GLuint texelBytes = _mesa_get_format_bytes(dstFormat); @@ -2278,7 +2381,8 @@ _mesa_texstore_a8(TEXSTORE_PARAMS) ASSERT(dstFormat == MESA_FORMAT_A8 || dstFormat == MESA_FORMAT_L8 || - dstFormat == MESA_FORMAT_I8); + dstFormat == MESA_FORMAT_I8 || + dstFormat == MESA_FORMAT_R8); ASSERT(texelBytes == 1); if (!ctx->_ImageTransferState && @@ -2297,7 +2401,6 @@ _mesa_texstore_a8(TEXSTORE_PARAMS) srcType == GL_UNSIGNED_BYTE && can_swizzle(baseInternalFormat) && can_swizzle(srcFormat)) { - GLubyte dstmap[4]; /* dstmap - how to swizzle from RGBA to dst format: @@ -2471,7 +2574,6 @@ _mesa_texstore_dudv8(TEXSTORE_PARAMS) srcAddr, srcPacking); } else if (srcType == GL_BYTE) { - GLubyte dstmap[4]; /* dstmap - how to swizzle from RGBA to dst format: @@ -2677,7 +2779,8 @@ _mesa_texstore_signed_rgbx8888(TEXSTORE_PARAMS) /** - * Store a texture in MESA_FORMAT_SIGNED_RGBA8888 or MESA_FORMAT_SIGNED_RGBA8888_REV + * Store a texture in MESA_FORMAT_SIGNED_RGBA8888 or + * MESA_FORMAT_SIGNED_RGBA8888_REV */ static GLboolean _mesa_texstore_signed_rgba8888(TEXSTORE_PARAMS) @@ -2813,36 +2916,7 @@ _mesa_texstore_z24_s8(TEXSTORE_PARAMS) ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT || srcFormat == GL_DEPTH_COMPONENT); ASSERT(srcFormat != GL_DEPTH_STENCIL_EXT || srcType == GL_UNSIGNED_INT_24_8_EXT); - /* In case we only upload depth we need to preserve the stencil */ - if (srcFormat == GL_DEPTH_COMPONENT) { - for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr - + dstImageOffsets[dstZoffset + img] - + dstYoffset * dstRowStride / sizeof(GLuint) - + dstXoffset; - const GLuint *src - = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); - for (row = 0; row < srcHeight; row++) { - GLuint depth[MAX_WIDTH]; - GLint i; - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT, /* dst type */ - depth, /* dst addr */ - depthScale, - srcType, src, srcPacking); - - for (i = 0; i < srcWidth; i++) - dstRow[i] = depth[i] << 8 | (dstRow[i] & 0x000000FF); - - src += srcRowStride; - dstRow += dstRowStride / sizeof(GLuint); - } - } - } - else if (ctx->Pixel.DepthScale == 1.0f && + if (srcFormat != GL_DEPTH_COMPONENT && ctx->Pixel.DepthScale == 1.0f && ctx->Pixel.DepthBias == 0.0f && !srcPacking->SwapBytes) { /* simple path */ @@ -2853,41 +2927,53 @@ _mesa_texstore_z24_s8(TEXSTORE_PARAMS) srcWidth, srcHeight, srcDepth, srcFormat, srcType, srcAddr, srcPacking); } - else { - /* general path */ - const GLint srcRowStride - = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat, srcType) - / sizeof(GLuint); - GLint img, row; - + else if (srcFormat == GL_DEPTH_COMPONENT) { + /* In case we only upload depth we need to preserve the stencil */ for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr + GLuint *dstRow = (GLuint *) dstAddr + dstImageOffsets[dstZoffset + img] + dstYoffset * dstRowStride / sizeof(GLuint) + dstXoffset; const GLuint *src = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); + srcWidth, srcHeight, + srcFormat, srcType, + img, 0, 0); for (row = 0; row < srcHeight; row++) { - GLubyte stencil[MAX_WIDTH]; + GLuint depth[MAX_WIDTH]; + GLubyte stencil[MAX_WIDTH]; GLint i; - /* the 24 depth bits will be in the high position: */ - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT_24_8_EXT, /* dst type */ - dstRow, /* dst addr */ - depthScale, - srcType, src, srcPacking); - /* get the 8-bit stencil values */ - _mesa_unpack_stencil_span(ctx, srcWidth, - GL_UNSIGNED_BYTE, /* dst type */ - stencil, /* dst addr */ - srcType, src, srcPacking, - ctx->_ImageTransferState); - /* merge stencil values into depth values */ - for (i = 0; i < srcWidth; i++) - dstRow[i] |= stencil[i]; + GLboolean keepdepth = GL_FALSE, keepstencil = GL_FALSE; + + if (srcFormat == GL_DEPTH_COMPONENT) { /* preserve stencil */ + keepstencil = GL_TRUE; + } + else if (srcFormat == GL_STENCIL_INDEX) { /* preserve depth */ + keepdepth = GL_TRUE; + } + + if (keepdepth == GL_FALSE) + /* the 24 depth bits will be in the low position: */ + _mesa_unpack_depth_span(ctx, srcWidth, + GL_UNSIGNED_INT, /* dst type */ + keepstencil ? depth : dstRow, /* dst addr */ + depthScale, + srcType, src, srcPacking); + + if (keepstencil == GL_FALSE) + /* get the 8-bit stencil values */ + _mesa_unpack_stencil_span(ctx, srcWidth, + GL_UNSIGNED_BYTE, /* dst type */ + stencil, /* dst addr */ + srcType, src, srcPacking, + ctx->_ImageTransferState); + + for (i = 0; i < srcWidth; i++) { + if (keepstencil) + dstRow[i] = depth[i] << 8 | (dstRow[i] & 0x000000FF); + else + dstRow[i] = (dstRow[i] & 0xFFFFFF00) | (stencil[i] & 0xFF); + } src += srcRowStride; dstRow += dstRowStride / sizeof(GLuint); @@ -2911,58 +2997,108 @@ _mesa_texstore_s8_z24(TEXSTORE_PARAMS) GLint img, row; ASSERT(dstFormat == MESA_FORMAT_S8_Z24); - ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT || srcFormat == GL_DEPTH_COMPONENT); - ASSERT(srcFormat != GL_DEPTH_STENCIL_EXT || srcType == GL_UNSIGNED_INT_24_8_EXT); + ASSERT(srcFormat == GL_DEPTH_STENCIL_EXT || + srcFormat == GL_DEPTH_COMPONENT || + srcFormat == GL_STENCIL_INDEX); + ASSERT(srcFormat != GL_DEPTH_STENCIL_EXT || + srcType == GL_UNSIGNED_INT_24_8_EXT); - /* In case we only upload depth we need to preserve the stencil */ - if (srcFormat == GL_DEPTH_COMPONENT) { - for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr - + dstImageOffsets[dstZoffset + img] - + dstYoffset * dstRowStride / sizeof(GLuint) - + dstXoffset; - const GLuint *src - = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); - for (row = 0; row < srcHeight; row++) { - GLuint depth[MAX_WIDTH]; - GLint i; - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT, /* dst type */ - depth, /* dst addr */ - depthScale, - srcType, src, srcPacking); + for (img = 0; img < srcDepth; img++) { + GLuint *dstRow = (GLuint *) dstAddr + + dstImageOffsets[dstZoffset + img] + + dstYoffset * dstRowStride / sizeof(GLuint) + + dstXoffset; + const GLuint *src + = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, + srcWidth, srcHeight, + srcFormat, srcType, + img, 0, 0); + for (row = 0; row < srcHeight; row++) { + GLuint depth[MAX_WIDTH]; + GLubyte stencil[MAX_WIDTH]; + GLint i; + GLboolean keepdepth = GL_FALSE, keepstencil = GL_FALSE; + + if (srcFormat == GL_DEPTH_COMPONENT) { /* preserve stencil */ + keepstencil = GL_TRUE; + } + else if (srcFormat == GL_STENCIL_INDEX) { /* preserve depth */ + keepdepth = GL_TRUE; + } + + if (keepdepth == GL_FALSE) + /* the 24 depth bits will be in the low position: */ + _mesa_unpack_depth_span(ctx, srcWidth, + GL_UNSIGNED_INT, /* dst type */ + keepstencil ? depth : dstRow, /* dst addr */ + depthScale, + srcType, src, srcPacking); + + if (keepstencil == GL_FALSE) + /* get the 8-bit stencil values */ + _mesa_unpack_stencil_span(ctx, srcWidth, + GL_UNSIGNED_BYTE, /* dst type */ + stencil, /* dst addr */ + srcType, src, srcPacking, + ctx->_ImageTransferState); + + /* merge stencil values into depth values */ + for (i = 0; i < srcWidth; i++) { + if (keepstencil) + dstRow[i] = depth[i] | (dstRow[i] & 0xFF000000); + else + dstRow[i] = (dstRow[i] & 0xFFFFFF) | (stencil[i] << 24); + + } + src += srcRowStride; + dstRow += dstRowStride / sizeof(GLuint); + } + } + return GL_TRUE; +} - for (i = 0; i < srcWidth; i++) - dstRow[i] = depth[i] | (dstRow[i] & 0xFF000000); - src += srcRowStride; - dstRow += dstRowStride / sizeof(GLuint); - } - } +/** + * Store simple 8-bit/value stencil texture data. + */ +static GLboolean +_mesa_texstore_s8(TEXSTORE_PARAMS) +{ + ASSERT(dstFormat == MESA_FORMAT_S8); + ASSERT(srcFormat == GL_STENCIL_INDEX); + + if (!ctx->_ImageTransferState && + !srcPacking->SwapBytes && + baseInternalFormat == srcFormat && + srcType == GL_UNSIGNED_BYTE) { + /* simple memcpy path */ + memcpy_texture(ctx, dims, + dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset, + dstRowStride, + dstImageOffsets, + srcWidth, srcHeight, srcDepth, srcFormat, srcType, + srcAddr, srcPacking); } else { + const GLint srcRowStride + = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat, srcType) + / sizeof(GLuint); + GLint img, row; + for (img = 0; img < srcDepth; img++) { - GLuint *dstRow = (GLuint *) dstAddr + GLubyte *dstRow = (GLubyte *) dstAddr + dstImageOffsets[dstZoffset + img] + dstYoffset * dstRowStride / sizeof(GLuint) + dstXoffset; const GLuint *src = (const GLuint *) _mesa_image_address(dims, srcPacking, srcAddr, - srcWidth, srcHeight, - srcFormat, srcType, - img, 0, 0); + srcWidth, srcHeight, + srcFormat, srcType, + img, 0, 0); for (row = 0; row < srcHeight; row++) { GLubyte stencil[MAX_WIDTH]; GLint i; - /* the 24 depth bits will be in the low position: */ - _mesa_unpack_depth_span(ctx, srcWidth, - GL_UNSIGNED_INT, /* dst type */ - dstRow, /* dst addr */ - depthScale, - srcType, src, srcPacking); + /* get the 8-bit stencil values */ _mesa_unpack_stencil_span(ctx, srcWidth, GL_UNSIGNED_BYTE, /* dst type */ @@ -2971,16 +3107,19 @@ _mesa_texstore_s8_z24(TEXSTORE_PARAMS) ctx->_ImageTransferState); /* merge stencil values into depth values */ for (i = 0; i < srcWidth; i++) - dstRow[i] |= stencil[i] << 24; + dstRow[i] = stencil[i]; src += srcRowStride; - dstRow += dstRowStride / sizeof(GLuint); + dstRow += dstRowStride / sizeof(GLubyte); } } + } + return GL_TRUE; } + /** * Store an image in any of the formats: * _mesa_texformat_rgba_float32 @@ -3055,6 +3194,7 @@ _mesa_texstore_rgba_float32(TEXSTORE_PARAMS) } + /** * As above, but store 16-bit floats. */ @@ -3518,12 +3658,12 @@ _mesa_texstore_srgb8(TEXSTORE_PARAMS) newDstFormat = MESA_FORMAT_RGB888; k = _mesa_texstore_rgb888(ctx, dims, baseInternalFormat, - newDstFormat, dstAddr, - dstXoffset, dstYoffset, dstZoffset, - dstRowStride, dstImageOffsets, - srcWidth, srcHeight, srcDepth, - srcFormat, srcType, - srcAddr, srcPacking); + newDstFormat, dstAddr, + dstXoffset, dstYoffset, dstZoffset, + dstRowStride, dstImageOffsets, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, + srcAddr, srcPacking); return k; } @@ -3604,13 +3744,13 @@ _mesa_texstore_sla8(TEXSTORE_PARAMS) /* reuse normal luminance/alpha texstore code */ newDstFormat = MESA_FORMAT_AL88; - k = _mesa_texstore_al88(ctx, dims, baseInternalFormat, - newDstFormat, dstAddr, - dstXoffset, dstYoffset, dstZoffset, - dstRowStride, dstImageOffsets, - srcWidth, srcHeight, srcDepth, - srcFormat, srcType, - srcAddr, srcPacking); + k = _mesa_texstore_unorm88(ctx, dims, baseInternalFormat, + newDstFormat, dstAddr, + dstXoffset, dstYoffset, dstZoffset, + dstRowStride, dstImageOffsets, + srcWidth, srcHeight, srcDepth, + srcFormat, srcType, + srcAddr, srcPacking); return k; } @@ -3629,7 +3769,7 @@ _mesa_texstore_sla8(TEXSTORE_PARAMS) /** - * Table mapping MESA_FORMAT_8 to _mesa_texstore_*() + * Table mapping MESA_FORMAT_* to _mesa_texstore_*() * XXX this is somewhat temporary. */ static const struct { @@ -3654,10 +3794,10 @@ texstore_funcs[MESA_FORMAT_COUNT] = { MESA_FORMAT_RGBA5551, _mesa_texstore_rgba5551 }, { MESA_FORMAT_ARGB1555, _mesa_texstore_argb1555 }, { MESA_FORMAT_ARGB1555_REV, _mesa_texstore_argb1555 }, - { MESA_FORMAT_AL88, _mesa_texstore_al88 }, - { MESA_FORMAT_AL88_REV, _mesa_texstore_al88 }, - { MESA_FORMAT_AL1616, _mesa_texstore_al1616 }, - { MESA_FORMAT_AL1616_REV, _mesa_texstore_al1616 }, + { MESA_FORMAT_AL88, _mesa_texstore_unorm88 }, + { MESA_FORMAT_AL88_REV, _mesa_texstore_unorm88 }, + { MESA_FORMAT_AL1616, _mesa_texstore_unorm1616 }, + { MESA_FORMAT_AL1616_REV, _mesa_texstore_unorm1616 }, { MESA_FORMAT_RGB332, _mesa_texstore_rgb332 }, { MESA_FORMAT_A8, _mesa_texstore_a8 }, { MESA_FORMAT_L8, _mesa_texstore_a8 }, @@ -3665,13 +3805,19 @@ texstore_funcs[MESA_FORMAT_COUNT] = { MESA_FORMAT_CI8, _mesa_texstore_ci8 }, { MESA_FORMAT_YCBCR, _mesa_texstore_ycbcr }, { MESA_FORMAT_YCBCR_REV, _mesa_texstore_ycbcr }, + { MESA_FORMAT_R8, _mesa_texstore_a8 }, + { MESA_FORMAT_RG88, _mesa_texstore_unorm88 }, + { MESA_FORMAT_RG88_REV, _mesa_texstore_unorm88 }, + { MESA_FORMAT_R16, _mesa_texstore_r16 }, + { MESA_FORMAT_RG1616, _mesa_texstore_unorm1616 }, + { MESA_FORMAT_RG1616_REV, _mesa_texstore_unorm1616 }, { MESA_FORMAT_Z24_S8, _mesa_texstore_z24_s8 }, { MESA_FORMAT_S8_Z24, _mesa_texstore_s8_z24 }, { MESA_FORMAT_Z16, _mesa_texstore_z16 }, { MESA_FORMAT_X8_Z24, _mesa_texstore_x8_z24 }, { MESA_FORMAT_Z24_X8, _mesa_texstore_z24_x8 }, { MESA_FORMAT_Z32, _mesa_texstore_z32 }, - { MESA_FORMAT_S8, NULL/*_mesa_texstore_s8*/ }, + { MESA_FORMAT_S8, _mesa_texstore_s8 }, { MESA_FORMAT_SRGB8, _mesa_texstore_srgb8 }, { MESA_FORMAT_SRGBA8, _mesa_texstore_srgba8 }, { MESA_FORMAT_SARGB8, _mesa_texstore_sargb8 }, @@ -3793,7 +3939,7 @@ _mesa_texstore(TEXSTORE_PARAMS) * The caller _must_ call _mesa_unmap_teximage_pbo() too! */ const GLvoid * -_mesa_validate_pbo_teximage(GLcontext *ctx, GLuint dimensions, +_mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *unpack, @@ -3830,7 +3976,7 @@ _mesa_validate_pbo_teximage(GLcontext *ctx, GLuint dimensions, * The caller _must_ call _mesa_unmap_teximage_pbo() too! */ const GLvoid * -_mesa_validate_pbo_compressed_teximage(GLcontext *ctx, +_mesa_validate_pbo_compressed_teximage(struct gl_context *ctx, GLsizei imageSize, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, const char *funcName) @@ -3864,7 +4010,7 @@ _mesa_validate_pbo_compressed_teximage(GLcontext *ctx, * functions. It unmaps the PBO buffer if it was mapped earlier. */ void -_mesa_unmap_teximage_pbo(GLcontext *ctx, +_mesa_unmap_teximage_pbo(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack) { if (_mesa_is_bufferobj(unpack->BufferObj)) { @@ -3901,7 +4047,7 @@ texture_row_stride(const struct gl_texture_image *texImage) * \sa _mesa_store_teximage2d() */ void -_mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -3955,7 +4101,7 @@ _mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, * than VRAM. Device driver's can easily plug in their own replacement. */ void -_mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const void *pixels, @@ -4008,7 +4154,7 @@ _mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, * \sa _mesa_store_teximage2d() */ void -_mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const void *pixels, @@ -4061,7 +4207,7 @@ _mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, * and Driver.CopyTexSubImage1D(). */ void -_mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint width, GLenum format, GLenum type, const void *pixels, const struct gl_pixelstore_attrib *packing, @@ -4099,7 +4245,7 @@ _mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, * and Driver.CopyTexSubImage2D(). */ void -_mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint width, GLint height, GLenum format, GLenum type, const void *pixels, @@ -4137,7 +4283,7 @@ _mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, * and Driver.CopyTexSubImage3D(). */ void -_mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, GLenum format, GLenum type, const void *pixels, @@ -4175,7 +4321,7 @@ _mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexImage1D() */ void -_mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLsizei imageSize, const GLvoid *data, @@ -4198,7 +4344,7 @@ _mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexImage2D() */ void -_mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -4242,7 +4388,7 @@ _mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexImage3D() */ void -_mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, @@ -4267,7 +4413,7 @@ _mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, * Fallback for Driver.CompressedTexSubImage1D() */ void -_mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -4290,7 +4436,7 @@ _mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, * Fallback for Driver.CompressedTexSubImage2D() */ void -_mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, @@ -4351,7 +4497,7 @@ _mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, * Fallback for Driver.CompressedTexSubImage3D() */ void -_mesa_store_compressed_texsubimage3d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, diff --git a/src/mesa/main/texstore.h b/src/mesa/main/texstore.h index 3211086dd6..177ede423f 100644 --- a/src/mesa/main/texstore.h +++ b/src/mesa/main/texstore.h @@ -56,7 +56,7 @@ * \param srcPacking source image packing parameters */ #define TEXSTORE_PARAMS \ - GLcontext *ctx, GLuint dims, \ + struct gl_context *ctx, GLuint dims, \ GLenum baseInternalFormat, \ gl_format dstFormat, \ GLvoid *dstAddr, \ @@ -73,7 +73,7 @@ _mesa_texstore(TEXSTORE_PARAMS); extern GLchan * -_mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, +_mesa_make_temp_chan_image(struct gl_context *ctx, GLuint dims, GLenum logicalBaseFormat, GLenum textureBaseFormat, GLint srcWidth, GLint srcHeight, GLint srcDepth, @@ -83,7 +83,7 @@ _mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, extern void -_mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -93,7 +93,7 @@ _mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -103,7 +103,7 @@ _mesa_store_teximage2d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels, @@ -113,7 +113,7 @@ _mesa_store_teximage3d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint width, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, @@ -122,7 +122,7 @@ _mesa_store_texsubimage1d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint width, GLint height, GLenum format, GLenum type, const GLvoid *pixels, @@ -132,7 +132,7 @@ _mesa_store_texsubimage2d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, GLenum format, GLenum type, const GLvoid *pixels, @@ -142,7 +142,7 @@ _mesa_store_texsubimage3d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage1d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, GLsizei imageSize, const GLvoid *data, @@ -150,7 +150,7 @@ _mesa_store_compressed_teximage1d(GLcontext *ctx, GLenum target, GLint level, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage2d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -158,7 +158,7 @@ _mesa_store_compressed_teximage2d(GLcontext *ctx, GLenum target, GLint level, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, +_mesa_store_compressed_teximage3d(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, GLint border, @@ -168,7 +168,7 @@ _mesa_store_compressed_teximage3d(GLcontext *ctx, GLenum target, GLint level, extern void -_mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, @@ -177,7 +177,7 @@ _mesa_store_compressed_texsubimage1d(GLcontext *ctx, GLenum target, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, @@ -187,7 +187,7 @@ _mesa_store_compressed_texsubimage2d(GLcontext *ctx, GLenum target, struct gl_texture_image *texImage); extern void -_mesa_store_compressed_texsubimage3d(GLcontext *ctx, GLenum target, +_mesa_store_compressed_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, @@ -198,20 +198,20 @@ _mesa_store_compressed_texsubimage3d(GLcontext *ctx, GLenum target, extern const GLvoid * -_mesa_validate_pbo_teximage(GLcontext *ctx, GLuint dimensions, +_mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *unpack, const char *funcName); extern const GLvoid * -_mesa_validate_pbo_compressed_teximage(GLcontext *ctx, +_mesa_validate_pbo_compressed_teximage(struct gl_context *ctx, GLsizei imageSize, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing, const char *funcName); extern void -_mesa_unmap_teximage_pbo(GLcontext *ctx, +_mesa_unmap_teximage_pbo(struct gl_context *ctx, const struct gl_pixelstore_attrib *unpack); diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index 5c8c1fd225..d297b5ed71 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -95,7 +95,7 @@ reference_transform_feedback_object(struct gl_transform_feedback_object **ptr, * \return GL_TRUE if the mode is OK, GL_FALSE otherwise. */ GLboolean -_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode) +_mesa_validate_primitive_mode(struct gl_context *ctx, GLenum mode) { if (ctx->TransformFeedback.CurrentObject->Active) { switch (mode) { @@ -120,7 +120,7 @@ _mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode) * \return GL_TRUE for success, GL_FALSE if error */ GLboolean -_mesa_validate_transform_feedback_buffers(GLcontext *ctx) +_mesa_validate_transform_feedback_buffers(struct gl_context *ctx) { /* XXX to do */ return GL_TRUE; @@ -132,7 +132,7 @@ _mesa_validate_transform_feedback_buffers(GLcontext *ctx) * Per-context init for transform feedback. */ void -_mesa_init_transform_feedback(GLcontext *ctx) +_mesa_init_transform_feedback(struct gl_context *ctx) { /* core mesa expects this, even a dummy one, to be available */ ASSERT(ctx->Driver.NewTransformFeedback); @@ -162,7 +162,7 @@ _mesa_init_transform_feedback(GLcontext *ctx) static void delete_cb(GLuint key, void *data, void *userData) { - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; struct gl_transform_feedback_object *obj = (struct gl_transform_feedback_object *) data; @@ -174,7 +174,7 @@ delete_cb(GLuint key, void *data, void *userData) * Per-context free/clean-up for transform feedback. */ void -_mesa_free_transform_feedback(GLcontext *ctx) +_mesa_free_transform_feedback(struct gl_context *ctx) { /* core mesa expects this, even a dummy one, to be available */ ASSERT(ctx->Driver.NewTransformFeedback); @@ -200,15 +200,15 @@ _mesa_free_transform_feedback(GLcontext *ctx) /* forward declarations */ static struct gl_transform_feedback_object * -new_transform_feedback(GLcontext *ctx, GLuint name); +new_transform_feedback(struct gl_context *ctx, GLuint name); static void -delete_transform_feedback(GLcontext *ctx, +delete_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj); /* dummy per-context init/clean-up for transform feedback */ void -_mesa_init_transform_feedback(GLcontext *ctx) +_mesa_init_transform_feedback(struct gl_context *ctx) { ctx->TransformFeedback.DefaultObject = new_transform_feedback(ctx, 0); ctx->TransformFeedback.CurrentObject = ctx->TransformFeedback.DefaultObject; @@ -218,7 +218,7 @@ _mesa_init_transform_feedback(GLcontext *ctx) } void -_mesa_free_transform_feedback(GLcontext *ctx) +_mesa_free_transform_feedback(struct gl_context *ctx) { _mesa_reference_buffer_object(ctx, &ctx->TransformFeedback.CurrentBuffer, @@ -232,7 +232,7 @@ _mesa_free_transform_feedback(GLcontext *ctx) /** Default fallback for ctx->Driver.NewTransformFeedback() */ static struct gl_transform_feedback_object * -new_transform_feedback(GLcontext *ctx, GLuint name) +new_transform_feedback(struct gl_context *ctx, GLuint name) { struct gl_transform_feedback_object *obj; obj = CALLOC_STRUCT(gl_transform_feedback_object); @@ -245,7 +245,7 @@ new_transform_feedback(GLcontext *ctx, GLuint name) /** Default fallback for ctx->Driver.DeleteTransformFeedback() */ static void -delete_transform_feedback(GLcontext *ctx, +delete_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { GLuint i; @@ -263,7 +263,7 @@ delete_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.BeginTransformFeedback() */ static void -begin_transform_feedback(GLcontext *ctx, GLenum mode, +begin_transform_feedback(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj) { /* nop */ @@ -271,7 +271,7 @@ begin_transform_feedback(GLcontext *ctx, GLenum mode, /** Default fallback for ctx->Driver.EndTransformFeedback() */ static void -end_transform_feedback(GLcontext *ctx, +end_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* nop */ @@ -279,7 +279,7 @@ end_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.PauseTransformFeedback() */ static void -pause_transform_feedback(GLcontext *ctx, +pause_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* nop */ @@ -287,7 +287,7 @@ pause_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.ResumeTransformFeedback() */ static void -resume_transform_feedback(GLcontext *ctx, +resume_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* nop */ @@ -295,7 +295,7 @@ resume_transform_feedback(GLcontext *ctx, /** Default fallback for ctx->Driver.DrawTransformFeedback() */ static void -draw_transform_feedback(GLcontext *ctx, GLenum mode, +draw_transform_feedback(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj) { /* XXX to do */ @@ -399,7 +399,7 @@ _mesa_EndTransformFeedback(void) * Helper used by BindBufferRange() and BindBufferBase(). */ static void -bind_buffer_range(GLcontext *ctx, GLuint index, +bind_buffer_range(struct gl_context *ctx, GLuint index, struct gl_buffer_object *bufObj, GLintptr offset, GLsizeiptr size) { @@ -698,7 +698,7 @@ _mesa_GetTransformFeedbackVarying(GLuint program, GLuint index, static struct gl_transform_feedback_object * -lookup_transform_feedback_object(GLcontext *ctx, GLuint name) +lookup_transform_feedback_object(struct gl_context *ctx, GLuint name) { if (name == 0) { return ctx->TransformFeedback.DefaultObject; diff --git a/src/mesa/main/transformfeedback.h b/src/mesa/main/transformfeedback.h index 4d38522d6d..752cd4e201 100644 --- a/src/mesa/main/transformfeedback.h +++ b/src/mesa/main/transformfeedback.h @@ -29,18 +29,18 @@ extern void -_mesa_init_transform_feedback(GLcontext *ctx); +_mesa_init_transform_feedback(struct gl_context *ctx); extern void -_mesa_free_transform_feedback(GLcontext *ctx); +_mesa_free_transform_feedback(struct gl_context *ctx); #if FEATURE_EXT_transform_feedback extern GLboolean -_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode); +_mesa_validate_primitive_mode(struct gl_context *ctx, GLenum mode); extern GLboolean -_mesa_validate_transform_feedback_buffers(GLcontext *ctx); +_mesa_validate_transform_feedback_buffers(struct gl_context *ctx); extern void @@ -106,13 +106,13 @@ _mesa_DrawTransformFeedback(GLenum mode, GLuint name); #else /* FEATURE_EXT_transform_feedback */ static INLINE GLboolean -_mesa_validate_primitive_mode(GLcontext *ctx, GLenum mode) +_mesa_validate_primitive_mode(struct gl_context *ctx, GLenum mode) { return GL_TRUE; } static INLINE GLboolean -_mesa_validate_transform_feedback_buffers(GLcontext *ctx) +_mesa_validate_transform_feedback_buffers(struct gl_context *ctx) { return GL_TRUE; } diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c index a5d7da51f0..9359db1892 100644 --- a/src/mesa/main/uniforms.c +++ b/src/mesa/main/uniforms.c @@ -3,6 +3,7 @@ * * Copyright (C) 2004-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009-2010 VMware, Inc. All Rights Reserved. + * Copyright © 2010 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -44,7 +45,7 @@ #include "program/prog_parameter.h" #include "program/prog_statevars.h" #include "program/prog_uniform.h" - +#include "program/prog_instruction.h" static GLenum @@ -79,6 +80,238 @@ base_uniform_type(GLenum type) } } +static struct gl_builtin_uniform_element gl_DepthRange_elements[] = { + {"near", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_XXXX}, + {"far", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_YYYY}, + {"diff", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_ZZZZ}, +}; + +static struct gl_builtin_uniform_element gl_ClipPlane_elements[] = { + {NULL, {STATE_CLIPPLANE, 0, 0}, SWIZZLE_XYZW} +}; + +static struct gl_builtin_uniform_element gl_Point_elements[] = { + {"size", {STATE_POINT_SIZE}, SWIZZLE_XXXX}, + {"sizeMin", {STATE_POINT_SIZE}, SWIZZLE_YYYY}, + {"sizeMax", {STATE_POINT_SIZE}, SWIZZLE_ZZZZ}, + {"fadeThresholdSize", {STATE_POINT_SIZE}, SWIZZLE_WWWW}, + {"distanceConstantAttenuation", {STATE_POINT_ATTENUATION}, SWIZZLE_XXXX}, + {"distanceLinearAttenuation", {STATE_POINT_ATTENUATION}, SWIZZLE_YYYY}, + {"distanceQuadraticAttenuation", {STATE_POINT_ATTENUATION}, SWIZZLE_ZZZZ}, +}; + +static struct gl_builtin_uniform_element gl_FrontMaterial_elements[] = { + {"emission", {STATE_MATERIAL, 0, STATE_EMISSION}, SWIZZLE_XYZW}, + {"ambient", {STATE_MATERIAL, 0, STATE_AMBIENT}, SWIZZLE_XYZW}, + {"diffuse", {STATE_MATERIAL, 0, STATE_DIFFUSE}, SWIZZLE_XYZW}, + {"specular", {STATE_MATERIAL, 0, STATE_SPECULAR}, SWIZZLE_XYZW}, + {"shininess", {STATE_MATERIAL, 0, STATE_SHININESS}, SWIZZLE_XXXX}, +}; + +static struct gl_builtin_uniform_element gl_BackMaterial_elements[] = { + {"emission", {STATE_MATERIAL, 1, STATE_EMISSION}, SWIZZLE_XYZW}, + {"ambient", {STATE_MATERIAL, 1, STATE_AMBIENT}, SWIZZLE_XYZW}, + {"diffuse", {STATE_MATERIAL, 1, STATE_DIFFUSE}, SWIZZLE_XYZW}, + {"specular", {STATE_MATERIAL, 1, STATE_SPECULAR}, SWIZZLE_XYZW}, + {"shininess", {STATE_MATERIAL, 1, STATE_SHININESS}, SWIZZLE_XXXX}, +}; + +static struct gl_builtin_uniform_element gl_LightSource_elements[] = { + {"ambient", {STATE_LIGHT, 0, STATE_AMBIENT}, SWIZZLE_XYZW}, + {"diffuse", {STATE_LIGHT, 0, STATE_DIFFUSE}, SWIZZLE_XYZW}, + {"specular", {STATE_LIGHT, 0, STATE_SPECULAR}, SWIZZLE_XYZW}, + {"position", {STATE_LIGHT, 0, STATE_POSITION}, SWIZZLE_XYZW}, + {"halfVector", {STATE_LIGHT, 0, STATE_HALF_VECTOR}, SWIZZLE_XYZW}, + {"spotDirection", {STATE_LIGHT, 0, STATE_SPOT_DIRECTION}, + MAKE_SWIZZLE4(SWIZZLE_X, + SWIZZLE_Y, + SWIZZLE_Z, + SWIZZLE_Z)}, + {"spotCosCutoff", {STATE_LIGHT, 0, STATE_SPOT_DIRECTION}, SWIZZLE_WWWW}, + {"spotCutoff", {STATE_LIGHT, 0, STATE_SPOT_CUTOFF}, SWIZZLE_XXXX}, + {"spotExponent", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_WWWW}, + {"constantAttenuation", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_XXXX}, + {"linearAttenuation", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_YYYY}, + {"quadraticAttenuation", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_ZZZZ}, +}; + +static struct gl_builtin_uniform_element gl_LightModel_elements[] = { + {"ambient", {STATE_LIGHTMODEL_AMBIENT, 0}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_FrontLightModelProduct_elements[] = { + {"sceneColor", {STATE_LIGHTMODEL_SCENECOLOR, 0}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_BackLightModelProduct_elements[] = { + {"sceneColor", {STATE_LIGHTMODEL_SCENECOLOR, 1}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_FrontLightProduct_elements[] = { + {"ambient", {STATE_LIGHTPROD, 0, 0, STATE_AMBIENT}, SWIZZLE_XYZW}, + {"diffuse", {STATE_LIGHTPROD, 0, 0, STATE_DIFFUSE}, SWIZZLE_XYZW}, + {"specular", {STATE_LIGHTPROD, 0, 0, STATE_SPECULAR}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_BackLightProduct_elements[] = { + {"ambient", {STATE_LIGHTPROD, 0, 1, STATE_AMBIENT}, SWIZZLE_XYZW}, + {"diffuse", {STATE_LIGHTPROD, 0, 1, STATE_DIFFUSE}, SWIZZLE_XYZW}, + {"specular", {STATE_LIGHTPROD, 0, 1, STATE_SPECULAR}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_TextureEnvColor_elements[] = { + {NULL, {STATE_TEXENV_COLOR, 0}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_EyePlaneS_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_S}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_EyePlaneT_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_T}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_EyePlaneR_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_R}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_EyePlaneQ_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_Q}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_ObjectPlaneS_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_S}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_ObjectPlaneT_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_T}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_ObjectPlaneR_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_R}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_ObjectPlaneQ_elements[] = { + {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_Q}, SWIZZLE_XYZW}, +}; + +static struct gl_builtin_uniform_element gl_Fog_elements[] = { + {"color", {STATE_FOG_COLOR}, SWIZZLE_XYZW}, + {"density", {STATE_FOG_PARAMS}, SWIZZLE_XXXX}, + {"start", {STATE_FOG_PARAMS}, SWIZZLE_YYYY}, + {"end", {STATE_FOG_PARAMS}, SWIZZLE_ZZZZ}, + {"scale", {STATE_FOG_PARAMS}, SWIZZLE_WWWW}, +}; + +static struct gl_builtin_uniform_element gl_NormalScale_elements[] = { + {NULL, {STATE_NORMAL_SCALE}, SWIZZLE_XXXX}, +}; + +#define MATRIX(name, statevar, modifier) \ + static struct gl_builtin_uniform_element name ## _elements[] = { \ + { NULL, { statevar, 0, 0, 0, modifier}, SWIZZLE_XYZW }, \ + { NULL, { statevar, 0, 1, 1, modifier}, SWIZZLE_XYZW }, \ + { NULL, { statevar, 0, 2, 2, modifier}, SWIZZLE_XYZW }, \ + { NULL, { statevar, 0, 3, 3, modifier}, SWIZZLE_XYZW }, \ + } + +MATRIX(gl_ModelViewMatrix, + STATE_MODELVIEW_MATRIX, STATE_MATRIX_TRANSPOSE); +MATRIX(gl_ModelViewMatrixInverse, + STATE_MODELVIEW_MATRIX, STATE_MATRIX_INVTRANS); +MATRIX(gl_ModelViewMatrixTranspose, + STATE_MODELVIEW_MATRIX, 0); +MATRIX(gl_ModelViewMatrixInverseTranspose, + STATE_MODELVIEW_MATRIX, STATE_MATRIX_INVERSE); + +MATRIX(gl_ProjectionMatrix, + STATE_PROJECTION_MATRIX, STATE_MATRIX_TRANSPOSE); +MATRIX(gl_ProjectionMatrixInverse, + STATE_PROJECTION_MATRIX, STATE_MATRIX_INVTRANS); +MATRIX(gl_ProjectionMatrixTranspose, + STATE_PROJECTION_MATRIX, 0); +MATRIX(gl_ProjectionMatrixInverseTranspose, + STATE_PROJECTION_MATRIX, STATE_MATRIX_INVERSE); + +MATRIX(gl_ModelViewProjectionMatrix, + STATE_MVP_MATRIX, STATE_MATRIX_TRANSPOSE); +MATRIX(gl_ModelViewProjectionMatrixInverse, + STATE_MVP_MATRIX, STATE_MATRIX_INVTRANS); +MATRIX(gl_ModelViewProjectionMatrixTranspose, + STATE_MVP_MATRIX, 0); +MATRIX(gl_ModelViewProjectionMatrixInverseTranspose, + STATE_MVP_MATRIX, STATE_MATRIX_INVERSE); + +MATRIX(gl_TextureMatrix, + STATE_TEXTURE_MATRIX, STATE_MATRIX_TRANSPOSE); +MATRIX(gl_TextureMatrixInverse, + STATE_TEXTURE_MATRIX, STATE_MATRIX_INVTRANS); +MATRIX(gl_TextureMatrixTranspose, + STATE_TEXTURE_MATRIX, 0); +MATRIX(gl_TextureMatrixInverseTranspose, + STATE_TEXTURE_MATRIX, STATE_MATRIX_INVERSE); + +static struct gl_builtin_uniform_element gl_NormalMatrix_elements[] = { + { NULL, { STATE_MODELVIEW_MATRIX, 0, 0, 0, STATE_MATRIX_INVERSE}, + SWIZZLE_XYZW }, + { NULL, { STATE_MODELVIEW_MATRIX, 0, 1, 1, STATE_MATRIX_INVERSE}, + SWIZZLE_XYZW }, + { NULL, { STATE_MODELVIEW_MATRIX, 0, 2, 2, STATE_MATRIX_INVERSE}, + SWIZZLE_XYZW }, +}; + +#undef MATRIX + +#define STATEVAR(name) {#name, name ## _elements, Elements(name ## _elements)} + +const struct gl_builtin_uniform_desc _mesa_builtin_uniform_desc[] = { + STATEVAR(gl_DepthRange), + STATEVAR(gl_ClipPlane), + STATEVAR(gl_Point), + STATEVAR(gl_FrontMaterial), + STATEVAR(gl_BackMaterial), + STATEVAR(gl_LightSource), + STATEVAR(gl_LightModel), + STATEVAR(gl_FrontLightModelProduct), + STATEVAR(gl_BackLightModelProduct), + STATEVAR(gl_FrontLightProduct), + STATEVAR(gl_BackLightProduct), + STATEVAR(gl_TextureEnvColor), + STATEVAR(gl_EyePlaneS), + STATEVAR(gl_EyePlaneT), + STATEVAR(gl_EyePlaneR), + STATEVAR(gl_EyePlaneQ), + STATEVAR(gl_ObjectPlaneS), + STATEVAR(gl_ObjectPlaneT), + STATEVAR(gl_ObjectPlaneR), + STATEVAR(gl_ObjectPlaneQ), + STATEVAR(gl_Fog), + + STATEVAR(gl_ModelViewMatrix), + STATEVAR(gl_ModelViewMatrixInverse), + STATEVAR(gl_ModelViewMatrixTranspose), + STATEVAR(gl_ModelViewMatrixInverseTranspose), + + STATEVAR(gl_ProjectionMatrix), + STATEVAR(gl_ProjectionMatrixInverse), + STATEVAR(gl_ProjectionMatrixTranspose), + STATEVAR(gl_ProjectionMatrixInverseTranspose), + + STATEVAR(gl_ModelViewProjectionMatrix), + STATEVAR(gl_ModelViewProjectionMatrixInverse), + STATEVAR(gl_ModelViewProjectionMatrixTranspose), + STATEVAR(gl_ModelViewProjectionMatrixInverseTranspose), + + STATEVAR(gl_TextureMatrix), + STATEVAR(gl_TextureMatrixInverse), + STATEVAR(gl_TextureMatrixTranspose), + STATEVAR(gl_TextureMatrixInverseTranspose), + + STATEVAR(gl_NormalMatrix), + STATEVAR(gl_NormalScale), + + {NULL, NULL, 0} +}; static GLboolean is_boolean_type(GLenum type) @@ -151,7 +384,7 @@ get_uniform_parameter(const struct gl_shader_program *shProg, GLuint index) * Called by glGetActiveUniform(). */ static void -_mesa_get_active_uniform(GLcontext *ctx, GLuint program, GLuint index, +_mesa_get_active_uniform(struct gl_context *ctx, GLuint program, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *nameOut) { @@ -294,7 +527,7 @@ get_uniform_rows_cols(const struct gl_program_parameter *p, * to the shader program and return the program parameter position. */ static void -lookup_uniform_parameter(GLcontext *ctx, GLuint program, GLint location, +lookup_uniform_parameter(struct gl_context *ctx, GLuint program, GLint location, struct gl_program **progOut, GLint *paramPosOut) { struct gl_shader_program *shProg @@ -387,7 +620,7 @@ split_location_offset(GLint *location, GLint *offset) * Called via glGetUniformfv(). */ static void -_mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location, +_mesa_get_uniformfv(struct gl_context *ctx, GLuint program, GLint location, GLfloat *params) { struct gl_program *prog; @@ -420,7 +653,7 @@ _mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location, * \sa _mesa_get_uniformfv, only difference is a cast. */ static void -_mesa_get_uniformiv(GLcontext *ctx, GLuint program, GLint location, +_mesa_get_uniformiv(struct gl_context *ctx, GLuint program, GLint location, GLint *params) { struct gl_program *prog; @@ -455,7 +688,7 @@ _mesa_get_uniformiv(GLcontext *ctx, GLuint program, GLint location, * offset (used for arrays, structs). */ GLint -_mesa_get_uniform_location(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_get_uniform_location(struct gl_context *ctx, struct gl_shader_program *shProg, const GLchar *name) { GLint offset = 0, location = -1; @@ -604,7 +837,7 @@ compatible_types(GLenum userType, GLenum targetType) * \param values the new values, of datatype 'type' */ static void -set_program_uniform(GLcontext *ctx, struct gl_program *program, +set_program_uniform(struct gl_context *ctx, struct gl_program *program, GLint index, GLint offset, GLenum type, GLsizei count, GLint elems, const void *values) @@ -747,7 +980,7 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, * Called via glUniform*() functions. */ void -_mesa_uniform(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg, GLint location, GLsizei count, const GLvoid *values, GLenum type) { @@ -851,7 +1084,7 @@ _mesa_uniform(GLcontext *ctx, struct gl_shader_program *shProg, * Set a matrix-valued program parameter. */ static void -set_program_uniform_matrix(GLcontext *ctx, struct gl_program *program, +set_program_uniform_matrix(struct gl_context *ctx, struct gl_program *program, GLuint index, GLuint offset, GLuint count, GLuint rows, GLuint cols, GLboolean transpose, const GLfloat *values) @@ -919,7 +1152,7 @@ set_program_uniform_matrix(GLcontext *ctx, struct gl_program *program, * Note: cols=2, rows=4 ==> array[2] of vec4 */ void -_mesa_uniform_matrix(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_uniform_matrix(struct gl_context *ctx, struct gl_shader_program *shProg, GLint cols, GLint rows, GLint location, GLsizei count, GLboolean transpose, const GLfloat *values) diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h index f823c61444..6447436305 100644 --- a/src/mesa/main/uniforms.h +++ b/src/mesa/main/uniforms.h @@ -26,6 +26,7 @@ #define UNIFORMS_H #include "glheader.h" +#include "program/prog_parameter.h" struct gl_program; struct _glapi_table; @@ -151,16 +152,16 @@ extern GLint GLAPIENTRY _mesa_GetUniformLocationARB(GLhandleARB, const GLcharARB *); GLint -_mesa_get_uniform_location(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_get_uniform_location(struct gl_context *ctx, struct gl_shader_program *shProg, const GLchar *name); void -_mesa_uniform(GLcontext *ctx, struct gl_shader_program *shader_program, +_mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shader_program, GLint location, GLsizei count, const GLvoid *values, GLenum type); void -_mesa_uniform_matrix(GLcontext *ctx, struct gl_shader_program *shProg, +_mesa_uniform_matrix(struct gl_context *ctx, struct gl_shader_program *shProg, GLint cols, GLint rows, GLint location, GLsizei count, GLboolean transpose, const GLfloat *values); @@ -172,4 +173,18 @@ _mesa_update_shader_textures_used(struct gl_program *prog); extern void _mesa_init_shader_uniform_dispatch(struct _glapi_table *exec); +struct gl_builtin_uniform_element { + const char *field; + int tokens[STATE_LENGTH]; + int swizzle; +}; + +struct gl_builtin_uniform_desc { + const char *name; + struct gl_builtin_uniform_element *elements; + unsigned int num_elements; +}; + +extern const struct gl_builtin_uniform_desc _mesa_builtin_uniform_desc[]; + #endif /* UNIFORMS_H */ diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index d19de7ff62..acab9e0e92 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -54,7 +54,7 @@ * \param ptr the address (or offset inside VBO) of the array data */ static void -update_array(GLcontext *ctx, struct gl_client_array *array, +update_array(struct gl_context *ctx, struct gl_client_array *array, GLbitfield dirtyBit, GLsizei elementSize, GLint size, GLenum type, GLenum format, GLsizei stride, GLboolean normalized, const GLvoid *ptr) @@ -778,7 +778,7 @@ _mesa_DisableVertexAttribArrayARB(GLuint index) * not handle the 4-element GL_CURRENT_VERTEX_ATTRIB_ARB query. */ static GLuint -get_vertex_array_attrib(GLcontext *ctx, GLuint index, GLenum pname, +get_vertex_array_attrib(struct gl_context *ctx, GLuint index, GLenum pname, const char *caller) { const struct gl_client_array *array; @@ -1339,7 +1339,7 @@ _mesa_PrimitiveRestartIndex(GLuint index) * Copy one client vertex array to another. */ void -_mesa_copy_client_array(GLcontext *ctx, +_mesa_copy_client_array(struct gl_context *ctx, struct gl_client_array *dst, struct gl_client_array *src) { @@ -1380,7 +1380,7 @@ print_array(const char *name, GLint index, const struct gl_client_array *array) * Print current vertex object/array info. For debug. */ void -_mesa_print_arrays(GLcontext *ctx) +_mesa_print_arrays(struct gl_context *ctx) { struct gl_array_object *arrayObj = ctx->Array.ArrayObj; GLuint i; @@ -1408,7 +1408,7 @@ _mesa_print_arrays(GLcontext *ctx) * Initialize vertex array state for given context. */ void -_mesa_init_varray(GLcontext *ctx) +_mesa_init_varray(struct gl_context *ctx) { ctx->Array.DefaultArrayObj = _mesa_new_array_object(ctx, 0); _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, @@ -1426,7 +1426,7 @@ static void delete_arrayobj_cb(GLuint id, void *data, void *userData) { struct gl_array_object *arrayObj = (struct gl_array_object *) data; - GLcontext *ctx = (GLcontext *) userData; + struct gl_context *ctx = (struct gl_context *) userData; _mesa_delete_array_object(ctx, arrayObj); } @@ -1435,7 +1435,7 @@ delete_arrayobj_cb(GLuint id, void *data, void *userData) * Free vertex array state for given context. */ void -_mesa_free_varray_data(GLcontext *ctx) +_mesa_free_varray_data(struct gl_context *ctx) { _mesa_HashDeleteAll(ctx->Array.Objects, delete_arrayobj_cb, ctx); _mesa_DeleteHashTable(ctx->Array.Objects); diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h index c7c3e3ec70..a5fa33fa00 100644 --- a/src/mesa/main/varray.h +++ b/src/mesa/main/varray.h @@ -216,19 +216,19 @@ _mesa_PrimitiveRestartIndex(GLuint index); extern void -_mesa_copy_client_array(GLcontext *ctx, +_mesa_copy_client_array(struct gl_context *ctx, struct gl_client_array *dst, struct gl_client_array *src); extern void -_mesa_print_arrays(GLcontext *ctx); +_mesa_print_arrays(struct gl_context *ctx); extern void -_mesa_init_varray( GLcontext * ctx ); +_mesa_init_varray( struct gl_context * ctx ); extern void -_mesa_free_varray_data(GLcontext *ctx); +_mesa_free_varray_data(struct gl_context *ctx); #else diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c index 5997ca00fd..69a28da84c 100644 --- a/src/mesa/main/version.c +++ b/src/mesa/main/version.c @@ -32,7 +32,7 @@ * Return major and minor version numbers. */ static void -compute_version(GLcontext *ctx) +compute_version(struct gl_context *ctx) { GLuint major, minor; static const int max = 100; @@ -92,6 +92,7 @@ compute_version(GLcontext *ctx) ctx->Extensions.ARB_map_buffer_range && ctx->Extensions.ARB_texture_float && ctx->Extensions.ARB_texture_rg && + ctx->Extensions.ARB_texture_compression_rgtc && ctx->Extensions.APPLE_vertex_array_object && ctx->Extensions.EXT_draw_buffers2 && ctx->Extensions.EXT_framebuffer_blit && @@ -101,7 +102,6 @@ compute_version(GLcontext *ctx) ctx->Extensions.EXT_packed_depth_stencil && ctx->Extensions.EXT_packed_float && ctx->Extensions.EXT_texture_array && - ctx->Extensions.EXT_texture_compression_rgtc && ctx->Extensions.EXT_texture_integer && ctx->Extensions.EXT_texture_shared_exponent && ctx->Extensions.EXT_transform_feedback && @@ -187,7 +187,7 @@ compute_version(GLcontext *ctx) } static void -compute_version_es1(GLcontext *ctx) +compute_version_es1(struct gl_context *ctx) { static const int max = 100; @@ -223,7 +223,7 @@ compute_version_es1(GLcontext *ctx) } static void -compute_version_es2(GLcontext *ctx) +compute_version_es2(struct gl_context *ctx) { static const int max = 100; @@ -264,7 +264,7 @@ compute_version_es2(GLcontext *ctx) * or to perform version check for GLX_ARB_create_context_profile. */ void -_mesa_compute_version(GLcontext *ctx) +_mesa_compute_version(struct gl_context *ctx) { if (ctx->VersionMajor) return; diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h index 004036de98..6552a3a784 100644 --- a/src/mesa/main/version.h +++ b/src/mesa/main/version.h @@ -54,7 +54,7 @@ extern void -_mesa_compute_version(GLcontext *ctx); +_mesa_compute_version(struct gl_context *ctx); #endif /* VERSION_H */ diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c index 309308c983..4747022d0b 100644 --- a/src/mesa/main/viewport.c +++ b/src/mesa/main/viewport.c @@ -60,7 +60,7 @@ _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height) * \param height height of the viewport rectangle. */ void -_mesa_set_viewport(GLcontext *ctx, GLint x, GLint y, +_mesa_set_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) { if (MESA_VERBOSE & VERBOSE_API) @@ -151,7 +151,7 @@ _mesa_DepthRange(GLclampd nearval, GLclampd farval) * Initialize the context viewport attribute group. * \param ctx the GL context. */ -void _mesa_init_viewport(GLcontext *ctx) +void _mesa_init_viewport(struct gl_context *ctx) { GLfloat depthMax = 65535.0F; /* sorf of arbitrary */ @@ -173,7 +173,7 @@ void _mesa_init_viewport(GLcontext *ctx) * Free the context viewport attribute group data. * \param ctx the GL context. */ -void _mesa_free_viewport_data(GLcontext *ctx) +void _mesa_free_viewport_data(struct gl_context *ctx) { _math_matrix_dtr(&ctx->Viewport._WindowMap); } diff --git a/src/mesa/main/viewport.h b/src/mesa/main/viewport.h index ec054a7c59..ccfa37588b 100644 --- a/src/mesa/main/viewport.h +++ b/src/mesa/main/viewport.h @@ -35,7 +35,7 @@ _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); extern void -_mesa_set_viewport(GLcontext *ctx, GLint x, GLint y, +_mesa_set_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height); @@ -44,11 +44,11 @@ _mesa_DepthRange(GLclampd nearval, GLclampd farval); extern void -_mesa_init_viewport(GLcontext *ctx); +_mesa_init_viewport(struct gl_context *ctx); extern void -_mesa_free_viewport_data(GLcontext *ctx); +_mesa_free_viewport_data(struct gl_context *ctx); #endif diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c index ca352e88e6..13b1aa9e50 100644 --- a/src/mesa/main/vtxfmt.c +++ b/src/mesa/main/vtxfmt.c @@ -34,51 +34,11 @@ #include "vtxfmt.h" #include "eval.h" #include "dlist.h" +#include "main/dispatch.h" #if FEATURE_beginend - -/* The neutral vertex format. This wraps all tnl module functions, - * verifying that the currently-installed module is valid and then - * installing the function pointers in a lazy fashion. It records the - * function pointers that have been swapped out, which allows a fast - * restoration of the neutral module in almost all cases -- a typical - * app might only require 4-6 functions to be modified from the neutral - * baseline, and only restoring these is certainly preferable to doing - * the entire module's 60 or so function pointers. - */ - -#define PRE_LOOPBACK( FUNC ) \ -{ \ - GET_CURRENT_CONTEXT(ctx); \ - struct gl_tnl_module * const tnl = &(ctx->TnlModule); \ - const int tmp_offset = _gloffset_ ## FUNC ; \ - \ - ASSERT( tnl->Current ); \ - ASSERT( tnl->SwapCount < NUM_VERTEX_FORMAT_ENTRIES ); \ - ASSERT( tmp_offset >= 0 ); \ - \ - if (tnl->SwapCount == 0) \ - ctx->Driver.BeginVertices( ctx ); \ - \ - /* Save the swapped function's dispatch entry so it can be */ \ - /* restored later. */ \ - tnl->Swapped[tnl->SwapCount].location = & (((_glapi_proc *)ctx->Exec)[tmp_offset]); \ - tnl->Swapped[tnl->SwapCount].function = (_glapi_proc)TAG(FUNC); \ - tnl->SwapCount++; \ - \ - if ( 0 ) \ - _mesa_debug(ctx, " swapping gl" #FUNC"...\n" ); \ - \ - /* Install the tnl function pointer. */ \ - SET_ ## FUNC(ctx->Exec, tnl->Current->FUNC); \ -} - -#define TAG(x) neutral_##x -#include "vtxfmt_tmp.h" - - /** * Use the per-vertex functions found in <vfmt> to initialze the given * API dispatch table. @@ -165,38 +125,17 @@ install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt ) } -void _mesa_init_exec_vtxfmt( GLcontext *ctx ) +void _mesa_install_exec_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { - install_vtxfmt( ctx->Exec, &neutral_vtxfmt ); - ctx->TnlModule.SwapCount = 0; + if (ctx->API == API_OPENGL) + install_vtxfmt( ctx->Exec, vfmt ); } -void _mesa_install_exec_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) +void _mesa_install_save_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { - ctx->TnlModule.Current = vfmt; - _mesa_restore_exec_vtxfmt( ctx ); -} - - -void _mesa_install_save_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) -{ - install_vtxfmt( ctx->Save, vfmt ); -} - - -void _mesa_restore_exec_vtxfmt( GLcontext *ctx ) -{ - struct gl_tnl_module *tnl = &(ctx->TnlModule); - GLuint i; - - /* Restore the neutral tnl module wrapper. - */ - for ( i = 0 ; i < tnl->SwapCount ; i++ ) { - *(tnl->Swapped[i].location) = tnl->Swapped[i].function; - } - - tnl->SwapCount = 0; + if (ctx->API == API_OPENGL) + install_vtxfmt( ctx->Save, vfmt ); } diff --git a/src/mesa/main/vtxfmt.h b/src/mesa/main/vtxfmt.h index aad38b87c3..147385cee9 100644 --- a/src/mesa/main/vtxfmt.h +++ b/src/mesa/main/vtxfmt.h @@ -38,32 +38,18 @@ #if FEATURE_beginend -extern void _mesa_init_exec_vtxfmt( GLcontext *ctx ); - -extern void _mesa_install_exec_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ); -extern void _mesa_install_save_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ); - -extern void _mesa_restore_exec_vtxfmt( GLcontext *ctx ); +extern void _mesa_install_exec_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ); +extern void _mesa_install_save_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ); #else /* FEATURE_beginend */ static INLINE void -_mesa_init_exec_vtxfmt( GLcontext *ctx ) -{ -} - -static INLINE void -_mesa_install_exec_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) -{ -} - -static INLINE void -_mesa_install_save_vtxfmt( GLcontext *ctx, const GLvertexformat *vfmt ) +_mesa_install_exec_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { } static INLINE void -_mesa_restore_exec_vtxfmt( GLcontext *ctx ) +_mesa_install_save_vtxfmt( struct gl_context *ctx, const GLvertexformat *vfmt ) { } diff --git a/src/mesa/math/m_debug_clip.c b/src/mesa/math/m_debug_clip.c index 7ea5428aa2..e97afafac3 100644 --- a/src/mesa/math/m_debug_clip.c +++ b/src/mesa/math/m_debug_clip.c @@ -360,7 +360,7 @@ void _math_test_all_cliptest_functions( char *description ) char buf[100]; sprintf( buf, "%s[%d] failed test (%s)", cnames[np], psize, description ); - _mesa_problem( NULL, buf ); + _mesa_problem( NULL, "%s", buf ); } #ifdef RUN_DEBUG_BENCHMARK if ( mesa_profile ) diff --git a/src/mesa/math/m_debug_norm.c b/src/mesa/math/m_debug_norm.c index 710bad14dd..02eb1f989f 100644 --- a/src/mesa/math/m_debug_norm.c +++ b/src/mesa/math/m_debug_norm.c @@ -362,7 +362,7 @@ void _math_test_all_normal_transform_functions( char *description ) char buf[100]; sprintf( buf, "_mesa_normal_tab[0][%s] failed test (%s)", norm_strings[mtype], description ); - _mesa_problem( NULL, buf ); + _mesa_problem( NULL, "%s", buf ); } #ifdef RUN_DEBUG_BENCHMARK diff --git a/src/mesa/math/m_debug_xform.c b/src/mesa/math/m_debug_xform.c index 46bd454517..7d815664a1 100644 --- a/src/mesa/math/m_debug_xform.c +++ b/src/mesa/math/m_debug_xform.c @@ -317,7 +317,7 @@ void _math_test_all_transform_functions( char *description ) char buf[100]; sprintf(buf, "_mesa_transform_tab[0][%d][%s] failed test (%s)", psize, mstrings[mtype], description ); - _mesa_problem( NULL, buf ); + _mesa_problem( NULL, "%s", buf ); } #ifdef RUN_DEBUG_BENCHMARK if ( mesa_profile ) diff --git a/src/mesa/math/m_matrix.c b/src/mesa/math/m_matrix.c index 048b231c4e..02aedbad85 100644 --- a/src/mesa/math/m_matrix.c +++ b/src/mesa/math/m_matrix.c @@ -37,7 +37,6 @@ #include "main/glheader.h" #include "main/imports.h" #include "main/macros.h" -#include "main/imports.h" #include "m_matrix.h" diff --git a/src/mesa/math/m_vector.c b/src/mesa/math/m_vector.c index fbd63fd923..4bded31e09 100644 --- a/src/mesa/math/m_vector.c +++ b/src/mesa/math/m_vector.c @@ -30,7 +30,6 @@ #include "main/glheader.h" #include "main/imports.h" #include "main/macros.h" -#include "main/imports.h" #include "m_vector.h" diff --git a/src/mesa/program/arbprogparse.c b/src/mesa/program/arbprogparse.c index f834aaf568..ca63e72c08 100644 --- a/src/mesa/program/arbprogparse.c +++ b/src/mesa/program/arbprogparse.c @@ -64,7 +64,7 @@ having three separate program parameter arrays. void -_mesa_parse_arb_fragment_program(GLcontext* ctx, GLenum target, +_mesa_parse_arb_fragment_program(struct gl_context* ctx, GLenum target, const GLvoid *str, GLsizei len, struct gl_fragment_program *program) { @@ -162,7 +162,7 @@ _mesa_parse_arb_fragment_program(GLcontext* ctx, GLenum target, * object unchanged. */ void -_mesa_parse_arb_vertex_program(GLcontext *ctx, GLenum target, +_mesa_parse_arb_vertex_program(struct gl_context *ctx, GLenum target, const GLvoid *str, GLsizei len, struct gl_vertex_program *program) { diff --git a/src/mesa/program/arbprogparse.h b/src/mesa/program/arbprogparse.h index 980d39fb9f..08e25a1c16 100644 --- a/src/mesa/program/arbprogparse.h +++ b/src/mesa/program/arbprogparse.h @@ -29,12 +29,12 @@ #include "main/mtypes.h" extern void -_mesa_parse_arb_vertex_program(GLcontext *ctx, GLenum target, +_mesa_parse_arb_vertex_program(struct gl_context *ctx, GLenum target, const GLvoid *str, GLsizei len, struct gl_vertex_program *program); extern void -_mesa_parse_arb_fragment_program(GLcontext *ctx, GLenum target, +_mesa_parse_arb_fragment_program(struct gl_context *ctx, GLenum target, const GLvoid *str, GLsizei len, struct gl_fragment_program *program); diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 93b6c305f1..bdd3fd92ff 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -26,8 +26,7 @@ /** * \file ir_to_mesa.cpp * - * Translates the IR to ARB_fragment_program text if possible, - * printing the result + * Translate GLSL IR to Mesa's gl_program representation. */ #include <stdio.h> @@ -54,6 +53,7 @@ extern "C" { #include "program/program.h" #include "program/prog_uniform.h" #include "program/prog_parameter.h" +#include "program/sampler.h" } static int swizzle_for_size(int size); @@ -183,7 +183,7 @@ public: function_entry *current_function; - GLcontext *ctx; + struct gl_context *ctx; struct gl_program *prog; struct gl_shader_program *shader_program; struct gl_shader_compiler_options *options; @@ -274,8 +274,6 @@ public: GLboolean try_emit_mad(ir_expression *ir, int mul_operand); - int get_sampler_uniform_value(ir_dereference *deref); - void *mem_ctx; }; @@ -289,19 +287,22 @@ ir_to_mesa_dst_reg ir_to_mesa_address_reg = { PROGRAM_ADDRESS, 0, WRITEMASK_X, COND_TR, NULL }; -static void fail_link(struct gl_shader_program *prog, const char *fmt, ...) PRINTFLIKE(2, 3); +static void +fail_link(struct gl_shader_program *prog, const char *fmt, ...) PRINTFLIKE(2, 3); -static void fail_link(struct gl_shader_program *prog, const char *fmt, ...) - { - va_list args; - va_start(args, fmt); - prog->InfoLog = talloc_vasprintf_append(prog->InfoLog, fmt, args); - va_end(args); +static void +fail_link(struct gl_shader_program *prog, const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + prog->InfoLog = talloc_vasprintf_append(prog->InfoLog, fmt, args); + va_end(args); - prog->LinkStatus = GL_FALSE; - } + prog->LinkStatus = GL_FALSE; +} -static int swizzle_for_size(int size) +static int +swizzle_for_size(int size) { int size_swizzles[4] = { MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_X, SWIZZLE_X, SWIZZLE_X), @@ -310,6 +311,7 @@ static int swizzle_for_size(int size) MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_Y, SWIZZLE_Z, SWIZZLE_W), }; + assert((size >= 1) && (size <= 4)); return size_swizzles[size - 1]; } @@ -578,243 +580,6 @@ ir_to_mesa_visitor::find_variable_storage(ir_variable *var) return NULL; } -struct statevar_element { - const char *field; - int tokens[STATE_LENGTH]; - int swizzle; -}; - -static struct statevar_element gl_DepthRange_elements[] = { - {"near", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_XXXX}, - {"far", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_YYYY}, - {"diff", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_ZZZZ}, -}; - -static struct statevar_element gl_ClipPlane_elements[] = { - {NULL, {STATE_CLIPPLANE, 0, 0}, SWIZZLE_XYZW} -}; - -static struct statevar_element gl_Point_elements[] = { - {"size", {STATE_POINT_SIZE}, SWIZZLE_XXXX}, - {"sizeMin", {STATE_POINT_SIZE}, SWIZZLE_YYYY}, - {"sizeMax", {STATE_POINT_SIZE}, SWIZZLE_ZZZZ}, - {"fadeThresholdSize", {STATE_POINT_SIZE}, SWIZZLE_WWWW}, - {"distanceConstantAttenuation", {STATE_POINT_ATTENUATION}, SWIZZLE_XXXX}, - {"distanceLinearAttenuation", {STATE_POINT_ATTENUATION}, SWIZZLE_YYYY}, - {"distanceQuadraticAttenuation", {STATE_POINT_ATTENUATION}, SWIZZLE_ZZZZ}, -}; - -static struct statevar_element gl_FrontMaterial_elements[] = { - {"emission", {STATE_MATERIAL, 0, STATE_EMISSION}, SWIZZLE_XYZW}, - {"ambient", {STATE_MATERIAL, 0, STATE_AMBIENT}, SWIZZLE_XYZW}, - {"diffuse", {STATE_MATERIAL, 0, STATE_DIFFUSE}, SWIZZLE_XYZW}, - {"specular", {STATE_MATERIAL, 0, STATE_SPECULAR}, SWIZZLE_XYZW}, - {"shininess", {STATE_MATERIAL, 0, STATE_SHININESS}, SWIZZLE_XXXX}, -}; - -static struct statevar_element gl_BackMaterial_elements[] = { - {"emission", {STATE_MATERIAL, 1, STATE_EMISSION}, SWIZZLE_XYZW}, - {"ambient", {STATE_MATERIAL, 1, STATE_AMBIENT}, SWIZZLE_XYZW}, - {"diffuse", {STATE_MATERIAL, 1, STATE_DIFFUSE}, SWIZZLE_XYZW}, - {"specular", {STATE_MATERIAL, 1, STATE_SPECULAR}, SWIZZLE_XYZW}, - {"shininess", {STATE_MATERIAL, 1, STATE_SHININESS}, SWIZZLE_XXXX}, -}; - -static struct statevar_element gl_LightSource_elements[] = { - {"ambient", {STATE_LIGHT, 0, STATE_AMBIENT}, SWIZZLE_XYZW}, - {"diffuse", {STATE_LIGHT, 0, STATE_DIFFUSE}, SWIZZLE_XYZW}, - {"specular", {STATE_LIGHT, 0, STATE_SPECULAR}, SWIZZLE_XYZW}, - {"position", {STATE_LIGHT, 0, STATE_POSITION}, SWIZZLE_XYZW}, - {"halfVector", {STATE_LIGHT, 0, STATE_HALF_VECTOR}, SWIZZLE_XYZW}, - {"spotDirection", {STATE_LIGHT, 0, STATE_SPOT_DIRECTION}, SWIZZLE_XYZW}, - {"spotCosCutoff", {STATE_LIGHT, 0, STATE_SPOT_DIRECTION}, SWIZZLE_WWWW}, - {"spotCutoff", {STATE_LIGHT, 0, STATE_SPOT_CUTOFF}, SWIZZLE_XXXX}, - {"spotExponent", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_WWWW}, - {"constantAttenuation", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_XXXX}, - {"linearAttenuation", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_YYYY}, - {"quadraticAttenuation", {STATE_LIGHT, 0, STATE_ATTENUATION}, SWIZZLE_ZZZZ}, -}; - -static struct statevar_element gl_LightModel_elements[] = { - {"ambient", {STATE_LIGHTMODEL_AMBIENT, 0}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_FrontLightModelProduct_elements[] = { - {"sceneColor", {STATE_LIGHTMODEL_SCENECOLOR, 0}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_BackLightModelProduct_elements[] = { - {"sceneColor", {STATE_LIGHTMODEL_SCENECOLOR, 1}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_FrontLightProduct_elements[] = { - {"ambient", {STATE_LIGHTPROD, 0, 0, STATE_AMBIENT}, SWIZZLE_XYZW}, - {"diffuse", {STATE_LIGHTPROD, 0, 0, STATE_DIFFUSE}, SWIZZLE_XYZW}, - {"specular", {STATE_LIGHTPROD, 0, 0, STATE_SPECULAR}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_BackLightProduct_elements[] = { - {"ambient", {STATE_LIGHTPROD, 0, 1, STATE_AMBIENT}, SWIZZLE_XYZW}, - {"diffuse", {STATE_LIGHTPROD, 0, 1, STATE_DIFFUSE}, SWIZZLE_XYZW}, - {"specular", {STATE_LIGHTPROD, 0, 1, STATE_SPECULAR}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_TextureEnvColor_elements[] = { - {NULL, {STATE_TEXENV_COLOR, 0}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_EyePlaneS_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_S}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_EyePlaneT_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_T}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_EyePlaneR_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_R}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_EyePlaneQ_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_EYE_Q}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_ObjectPlaneS_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_S}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_ObjectPlaneT_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_T}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_ObjectPlaneR_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_R}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_ObjectPlaneQ_elements[] = { - {NULL, {STATE_TEXGEN, 0, STATE_TEXGEN_OBJECT_Q}, SWIZZLE_XYZW}, -}; - -static struct statevar_element gl_Fog_elements[] = { - {"color", {STATE_FOG_COLOR}, SWIZZLE_XYZW}, - {"density", {STATE_FOG_PARAMS}, SWIZZLE_XXXX}, - {"start", {STATE_FOG_PARAMS}, SWIZZLE_YYYY}, - {"end", {STATE_FOG_PARAMS}, SWIZZLE_ZZZZ}, - {"scale", {STATE_FOG_PARAMS}, SWIZZLE_WWWW}, -}; - -static struct statevar_element gl_NormalScale_elements[] = { - {NULL, {STATE_NORMAL_SCALE}, SWIZZLE_XXXX}, -}; - -#define MATRIX(name, statevar, modifier) \ - static struct statevar_element name ## _elements[] = { \ - { NULL, { statevar, 0, 0, 0, modifier}, SWIZZLE_XYZW }, \ - { NULL, { statevar, 0, 1, 1, modifier}, SWIZZLE_XYZW }, \ - { NULL, { statevar, 0, 2, 2, modifier}, SWIZZLE_XYZW }, \ - { NULL, { statevar, 0, 3, 3, modifier}, SWIZZLE_XYZW }, \ - } - -MATRIX(gl_ModelViewMatrix, - STATE_MODELVIEW_MATRIX, STATE_MATRIX_TRANSPOSE); -MATRIX(gl_ModelViewMatrixInverse, - STATE_MODELVIEW_MATRIX, STATE_MATRIX_INVTRANS); -MATRIX(gl_ModelViewMatrixTranspose, - STATE_MODELVIEW_MATRIX, 0); -MATRIX(gl_ModelViewMatrixInverseTranspose, - STATE_MODELVIEW_MATRIX, STATE_MATRIX_INVERSE); - -MATRIX(gl_ProjectionMatrix, - STATE_PROJECTION_MATRIX, STATE_MATRIX_TRANSPOSE); -MATRIX(gl_ProjectionMatrixInverse, - STATE_PROJECTION_MATRIX, STATE_MATRIX_INVTRANS); -MATRIX(gl_ProjectionMatrixTranspose, - STATE_PROJECTION_MATRIX, 0); -MATRIX(gl_ProjectionMatrixInverseTranspose, - STATE_PROJECTION_MATRIX, STATE_MATRIX_INVERSE); - -MATRIX(gl_ModelViewProjectionMatrix, - STATE_MVP_MATRIX, STATE_MATRIX_TRANSPOSE); -MATRIX(gl_ModelViewProjectionMatrixInverse, - STATE_MVP_MATRIX, STATE_MATRIX_INVTRANS); -MATRIX(gl_ModelViewProjectionMatrixTranspose, - STATE_MVP_MATRIX, 0); -MATRIX(gl_ModelViewProjectionMatrixInverseTranspose, - STATE_MVP_MATRIX, STATE_MATRIX_INVERSE); - -MATRIX(gl_TextureMatrix, - STATE_TEXTURE_MATRIX, STATE_MATRIX_TRANSPOSE); -MATRIX(gl_TextureMatrixInverse, - STATE_TEXTURE_MATRIX, STATE_MATRIX_INVTRANS); -MATRIX(gl_TextureMatrixTranspose, - STATE_TEXTURE_MATRIX, 0); -MATRIX(gl_TextureMatrixInverseTranspose, - STATE_TEXTURE_MATRIX, STATE_MATRIX_INVERSE); - -static struct statevar_element gl_NormalMatrix_elements[] = { - { NULL, { STATE_MODELVIEW_MATRIX, 0, 0, 0, STATE_MATRIX_INVERSE}, - SWIZZLE_XYZW }, - { NULL, { STATE_MODELVIEW_MATRIX, 0, 1, 1, STATE_MATRIX_INVERSE}, - SWIZZLE_XYZW }, - { NULL, { STATE_MODELVIEW_MATRIX, 0, 2, 2, STATE_MATRIX_INVERSE}, - SWIZZLE_XYZW }, -}; - -#undef MATRIX - -#define STATEVAR(name) {#name, name ## _elements, Elements(name ## _elements)} - -static const struct statevar { - const char *name; - struct statevar_element *elements; - unsigned int num_elements; -} statevars[] = { - STATEVAR(gl_DepthRange), - STATEVAR(gl_ClipPlane), - STATEVAR(gl_Point), - STATEVAR(gl_FrontMaterial), - STATEVAR(gl_BackMaterial), - STATEVAR(gl_LightSource), - STATEVAR(gl_LightModel), - STATEVAR(gl_FrontLightModelProduct), - STATEVAR(gl_BackLightModelProduct), - STATEVAR(gl_FrontLightProduct), - STATEVAR(gl_BackLightProduct), - STATEVAR(gl_TextureEnvColor), - STATEVAR(gl_EyePlaneS), - STATEVAR(gl_EyePlaneT), - STATEVAR(gl_EyePlaneR), - STATEVAR(gl_EyePlaneQ), - STATEVAR(gl_ObjectPlaneS), - STATEVAR(gl_ObjectPlaneT), - STATEVAR(gl_ObjectPlaneR), - STATEVAR(gl_ObjectPlaneQ), - STATEVAR(gl_Fog), - - STATEVAR(gl_ModelViewMatrix), - STATEVAR(gl_ModelViewMatrixInverse), - STATEVAR(gl_ModelViewMatrixTranspose), - STATEVAR(gl_ModelViewMatrixInverseTranspose), - - STATEVAR(gl_ProjectionMatrix), - STATEVAR(gl_ProjectionMatrixInverse), - STATEVAR(gl_ProjectionMatrixTranspose), - STATEVAR(gl_ProjectionMatrixInverseTranspose), - - STATEVAR(gl_ModelViewProjectionMatrix), - STATEVAR(gl_ModelViewProjectionMatrixInverse), - STATEVAR(gl_ModelViewProjectionMatrixTranspose), - STATEVAR(gl_ModelViewProjectionMatrixInverseTranspose), - - STATEVAR(gl_TextureMatrix), - STATEVAR(gl_TextureMatrixInverse), - STATEVAR(gl_TextureMatrixTranspose), - STATEVAR(gl_TextureMatrixInverseTranspose), - - STATEVAR(gl_NormalMatrix), - STATEVAR(gl_NormalScale), -}; - void ir_to_mesa_visitor::visit(ir_variable *ir) { @@ -827,19 +592,20 @@ ir_to_mesa_visitor::visit(ir_variable *ir) if (ir->mode == ir_var_uniform && strncmp(ir->name, "gl_", 3) == 0) { unsigned int i; + const struct gl_builtin_uniform_desc *statevar; - for (i = 0; i < Elements(statevars); i++) { - if (strcmp(ir->name, statevars[i].name) == 0) + for (i = 0; _mesa_builtin_uniform_desc[i].name; i++) { + if (strcmp(ir->name, _mesa_builtin_uniform_desc[i].name) == 0) break; } - if (i == Elements(statevars)) { + if (!_mesa_builtin_uniform_desc[i].name) { fail_link(this->shader_program, "Failed to find builtin uniform `%s'\n", ir->name); return; } - const struct statevar *statevar = &statevars[i]; + statevar = &_mesa_builtin_uniform_desc[i]; int array_count; if (ir->type->is_array()) { @@ -882,7 +648,7 @@ ir_to_mesa_visitor::visit(ir_variable *ir) for (int a = 0; a < array_count; a++) { for (unsigned int i = 0; i < statevar->num_elements; i++) { - struct statevar_element *element = &statevar->elements[i]; + struct gl_builtin_uniform_element *element = &statevar->elements[i]; int tokens[STATE_LENGTH]; memcpy(tokens, element->tokens, sizeof(element->tokens)); @@ -1364,6 +1130,7 @@ ir_to_mesa_visitor::visit(ir_expression *ir) case ir_binop_bit_and: case ir_binop_bit_xor: case ir_binop_bit_or: + case ir_unop_round_even: assert(!"GLSL 1.30 features unsupported"); break; } @@ -1894,89 +1661,6 @@ ir_to_mesa_visitor::visit(ir_call *ir) this->result = entry->return_reg; } -class get_sampler_name : public ir_hierarchical_visitor -{ -public: - get_sampler_name(ir_to_mesa_visitor *mesa, ir_dereference *last) - { - this->mem_ctx = mesa->mem_ctx; - this->mesa = mesa; - this->name = NULL; - this->offset = 0; - this->last = last; - } - - virtual ir_visitor_status visit(ir_dereference_variable *ir) - { - this->name = ir->var->name; - return visit_continue; - } - - virtual ir_visitor_status visit_leave(ir_dereference_record *ir) - { - this->name = talloc_asprintf(mem_ctx, "%s.%s", name, ir->field); - return visit_continue; - } - - virtual ir_visitor_status visit_leave(ir_dereference_array *ir) - { - ir_constant *index = ir->array_index->as_constant(); - int i; - - if (index) { - i = index->value.i[0]; - } else { - /* GLSL 1.10 and 1.20 allowed variable sampler array indices, - * while GLSL 1.30 requires that the array indices be - * constant integer expressions. We don't expect any driver - * to actually work with a really variable array index, so - * all that would work would be an unrolled loop counter that ends - * up being constant above. - */ - mesa->shader_program->InfoLog = - talloc_asprintf_append(mesa->shader_program->InfoLog, - "warning: Variable sampler array index " - "unsupported.\nThis feature of the language " - "was removed in GLSL 1.20 and is unlikely " - "to be supported for 1.10 in Mesa.\n"); - i = 0; - } - if (ir != last) { - this->name = talloc_asprintf(mem_ctx, "%s[%d]", name, i); - } else { - offset = i; - } - return visit_continue; - } - - ir_to_mesa_visitor *mesa; - const char *name; - void *mem_ctx; - int offset; - ir_dereference *last; -}; - -int -ir_to_mesa_visitor::get_sampler_uniform_value(ir_dereference *sampler) -{ - get_sampler_name getname(this, sampler); - - sampler->accept(&getname); - - GLint index = _mesa_lookup_parameter_index(prog->Parameters, -1, - getname.name); - - if (index < 0) { - fail_link(this->shader_program, - "failed to find sampler named %s.\n", getname.name); - return 0; - } - - index += getname.offset; - - return this->prog->Parameters->ParameterValues[index][0]; -} - void ir_to_mesa_visitor::visit(ir_texture *ir) { @@ -2076,7 +1760,9 @@ ir_to_mesa_visitor::visit(ir_texture *ir) if (ir->shadow_comparitor) inst->tex_shadow = GL_TRUE; - inst->sampler = get_sampler_uniform_value(ir->sampler); + inst->sampler = _mesa_get_sampler_uniform_value(ir->sampler, + this->shader_program, + this->prog); const glsl_type *sampler_type = ir->sampler->type; @@ -2477,7 +2163,7 @@ add_uniforms_to_parameters_list(struct gl_shader_program *shader_program, } static void -set_uniform_initializer(GLcontext *ctx, void *mem_ctx, +set_uniform_initializer(struct gl_context *ctx, void *mem_ctx, struct gl_shader_program *shader_program, const char *name, const glsl_type *type, ir_constant *val) @@ -2547,13 +2233,17 @@ set_uniform_initializer(GLcontext *ctx, void *mem_ctx, } static void -set_uniform_initializers(GLcontext *ctx, +set_uniform_initializers(struct gl_context *ctx, struct gl_shader_program *shader_program) { void *mem_ctx = NULL; - for (unsigned int i = 0; i < shader_program->_NumLinkedShaders; i++) { + for (unsigned int i = 0; i < MESA_SHADER_TYPES; i++) { struct gl_shader *shader = shader_program->_LinkedShaders[i]; + + if (shader == NULL) + continue; + foreach_iter(exec_list_iterator, iter, *shader->ir) { ir_instruction *ir = (ir_instruction *)iter.get(); ir_variable *var = ir->as_variable(); @@ -2572,8 +2262,12 @@ set_uniform_initializers(GLcontext *ctx, talloc_free(mem_ctx); } + +/** + * Convert a shader's GLSL IR into a Mesa gl_program. + */ struct gl_program * -get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program, +get_mesa_program(struct gl_context *ctx, struct gl_shader_program *shader_program, struct gl_shader *shader) { ir_to_mesa_visitor v; @@ -2662,10 +2356,12 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program, mesa_instruction_annotation = talloc_array(v.mem_ctx, ir_instruction *, num_instructions); + /* Convert ir_mesa_instructions into prog_instructions. + */ mesa_inst = mesa_instructions; i = 0; foreach_iter(exec_list_iterator, iter, v.instructions) { - ir_to_mesa_instruction *inst = (ir_to_mesa_instruction *)iter.get(); + const ir_to_mesa_instruction *inst = (ir_to_mesa_instruction *)iter.get(); mesa_inst->Opcode = inst->op; mesa_inst->CondUpdate = inst->cond_update; @@ -2686,6 +2382,7 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program, if (mesa_inst->DstReg.RelAddr) prog->IndirectRegisterFiles |= 1 << mesa_inst->DstReg.File; + /* Update program's bitmask of indirectly accessed register files */ for (unsigned src = 0; src < 3; src++) if (mesa_inst->SrcReg[src].RelAddr) prog->IndirectRegisterFiles |= 1 << mesa_inst->SrcReg[src].File; @@ -2747,8 +2444,14 @@ get_mesa_program(GLcontext *ctx, struct gl_shader_program *shader_program, } extern "C" { + +/** + * Called via ctx->Driver.CompilerShader(). + * This is a no-op. + * XXX can we remove the ctx->Driver.CompileShader() hook? + */ GLboolean -_mesa_ir_compile_shader(GLcontext *ctx, struct gl_shader *shader) +_mesa_ir_compile_shader(struct gl_context *ctx, struct gl_shader *shader) { assert(shader->CompileStatus); (void) ctx; @@ -2756,15 +2459,25 @@ _mesa_ir_compile_shader(GLcontext *ctx, struct gl_shader *shader) return GL_TRUE; } + +/** + * Link a shader. + * Called via ctx->Driver.LinkShader() + * This actually involves converting GLSL IR into Mesa gl_programs with + * code lowering and other optimizations. + */ GLboolean -_mesa_ir_link_shader(GLcontext *ctx, struct gl_shader_program *prog) +_mesa_ir_link_shader(struct gl_context *ctx, struct gl_shader_program *prog) { assert(prog->LinkStatus); - for (unsigned i = 0; i < prog->_NumLinkedShaders; i++) { + for (unsigned i = 0; i < MESA_SHADER_TYPES; i++) { + if (prog->_LinkedShaders[i] == NULL) + continue; + bool progress; exec_list *ir = prog->_LinkedShaders[i]->ir; - struct gl_shader_compiler_options *options = + const struct gl_shader_compiler_options *options = &ctx->ShaderCompilerOptions[_mesa_shader_type_to_index(prog->_LinkedShaders[i]->Type)]; do { @@ -2805,10 +2518,13 @@ _mesa_ir_link_shader(GLcontext *ctx, struct gl_shader_program *prog) validate_ir_tree(ir); } - for (unsigned i = 0; i < prog->_NumLinkedShaders; i++) { + for (unsigned i = 0; i < MESA_SHADER_TYPES; i++) { struct gl_program *linked_prog; bool ok = true; + if (prog->_LinkedShaders[i] == NULL) + continue; + linked_prog = get_mesa_program(ctx, prog, prog->_LinkedShaders[i]); switch (prog->_LinkedShaders[i]->Type) { @@ -2834,8 +2550,12 @@ _mesa_ir_link_shader(GLcontext *ctx, struct gl_shader_program *prog) return GL_TRUE; } + +/** + * Compile a GLSL shader. Called via glCompileShader(). + */ void -_mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader) +_mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader) { struct _mesa_glsl_parse_state *state = new(shader) _mesa_glsl_parse_state(ctx, shader->Type, shader); @@ -2918,8 +2638,12 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader) } } + +/** + * Link a GLSL shader program. Called via glLinkProgram(). + */ void -_mesa_glsl_link_shader(GLcontext *ctx, struct gl_shader_program *prog) +_mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog) { unsigned int i; diff --git a/src/mesa/program/ir_to_mesa.h b/src/mesa/program/ir_to_mesa.h index ecaacde4bb..7197615f94 100644 --- a/src/mesa/program/ir_to_mesa.h +++ b/src/mesa/program/ir_to_mesa.h @@ -28,10 +28,10 @@ extern "C" { #include "main/config.h" #include "main/mtypes.h" -void _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *sh); -void _mesa_glsl_link_shader(GLcontext *ctx, struct gl_shader_program *prog); -GLboolean _mesa_ir_compile_shader(GLcontext *ctx, struct gl_shader *shader); -GLboolean _mesa_ir_link_shader(GLcontext *ctx, struct gl_shader_program *prog); +void _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *sh); +void _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog); +GLboolean _mesa_ir_compile_shader(struct gl_context *ctx, struct gl_shader *shader); +GLboolean _mesa_ir_link_shader(struct gl_context *ctx, struct gl_shader_program *prog); #ifdef __cplusplus } diff --git a/src/mesa/program/nvfragparse.c b/src/mesa/program/nvfragparse.c index 0de3c5804d..8516b5fc1f 100644 --- a/src/mesa/program/nvfragparse.c +++ b/src/mesa/program/nvfragparse.c @@ -141,7 +141,7 @@ static const struct instruction_pattern Instructions[] = { * _successfully_ parsed the program text. */ struct parse_state { - GLcontext *ctx; + struct gl_context *ctx; const GLubyte *start; /* start of program string */ const GLubyte *pos; /* current position */ const GLubyte *curLine; @@ -1463,7 +1463,7 @@ Parse_InstructionSequence(struct parse_state *parseState, * indicates the position of the error in 'str'. */ void -_mesa_parse_nv_fragment_program(GLcontext *ctx, GLenum dstTarget, +_mesa_parse_nv_fragment_program(struct gl_context *ctx, GLenum dstTarget, const GLubyte *str, GLsizei len, struct gl_fragment_program *program) { diff --git a/src/mesa/program/nvfragparse.h b/src/mesa/program/nvfragparse.h index e28a6c4934..3e85dd2c30 100644 --- a/src/mesa/program/nvfragparse.h +++ b/src/mesa/program/nvfragparse.h @@ -33,7 +33,7 @@ #include "main/mtypes.h" extern void -_mesa_parse_nv_fragment_program(GLcontext *ctx, GLenum target, +_mesa_parse_nv_fragment_program(struct gl_context *ctx, GLenum target, const GLubyte *str, GLsizei len, struct gl_fragment_program *program); diff --git a/src/mesa/program/nvvertparse.c b/src/mesa/program/nvvertparse.c index 1ac83d0e59..bdd44a4513 100644 --- a/src/mesa/program/nvvertparse.c +++ b/src/mesa/program/nvvertparse.c @@ -54,7 +54,7 @@ * program attributes. */ struct parse_state { - GLcontext *ctx; + struct gl_context *ctx; const GLubyte *start; const GLubyte *pos; const GLubyte *curLine; @@ -1282,7 +1282,7 @@ Parse_Program(struct parse_state *parseState, * indicates the position of the error in 'str'. */ void -_mesa_parse_nv_vertex_program(GLcontext *ctx, GLenum dstTarget, +_mesa_parse_nv_vertex_program(struct gl_context *ctx, GLenum dstTarget, const GLubyte *str, GLsizei len, struct gl_vertex_program *program) { diff --git a/src/mesa/program/nvvertparse.h b/src/mesa/program/nvvertparse.h index 91ef79e6c3..e98e867320 100644 --- a/src/mesa/program/nvvertparse.h +++ b/src/mesa/program/nvvertparse.h @@ -32,7 +32,7 @@ #include "main/mtypes.h" extern void -_mesa_parse_nv_vertex_program(GLcontext *ctx, GLenum target, +_mesa_parse_nv_vertex_program(struct gl_context *ctx, GLenum target, const GLubyte *str, GLsizei len, struct gl_vertex_program *program); diff --git a/src/mesa/program/prog_cache.c b/src/mesa/program/prog_cache.c index 8af689754b..56ca59890d 100644 --- a/src/mesa/program/prog_cache.c +++ b/src/mesa/program/prog_cache.c @@ -104,7 +104,7 @@ rehash(struct gl_program_cache *cache) static void -clear_cache(GLcontext *ctx, struct gl_program_cache *cache) +clear_cache(struct gl_context *ctx, struct gl_program_cache *cache) { struct cache_item *c, *next; GLuint i; @@ -145,7 +145,7 @@ _mesa_new_program_cache(void) void -_mesa_delete_program_cache(GLcontext *ctx, struct gl_program_cache *cache) +_mesa_delete_program_cache(struct gl_context *ctx, struct gl_program_cache *cache) { clear_cache(ctx, cache); free(cache->items); @@ -178,7 +178,7 @@ _mesa_search_program_cache(struct gl_program_cache *cache, void -_mesa_program_cache_insert(GLcontext *ctx, +_mesa_program_cache_insert(struct gl_context *ctx, struct gl_program_cache *cache, const void *key, GLuint keysize, struct gl_program *program) diff --git a/src/mesa/program/prog_cache.h b/src/mesa/program/prog_cache.h index bfe8f99d44..4907ae3030 100644 --- a/src/mesa/program/prog_cache.h +++ b/src/mesa/program/prog_cache.h @@ -41,7 +41,7 @@ extern struct gl_program_cache * _mesa_new_program_cache(void); extern void -_mesa_delete_program_cache(GLcontext *ctx, struct gl_program_cache *pc); +_mesa_delete_program_cache(struct gl_context *ctx, struct gl_program_cache *pc); extern struct gl_program * @@ -49,7 +49,7 @@ _mesa_search_program_cache(struct gl_program_cache *cache, const void *key, GLuint keysize); extern void -_mesa_program_cache_insert(GLcontext *ctx, +_mesa_program_cache_insert(struct gl_context *ctx, struct gl_program_cache *cache, const void *key, GLuint keysize, struct gl_program *program); diff --git a/src/mesa/program/prog_execute.c b/src/mesa/program/prog_execute.c index 2ae5bc572a..1d97a077f5 100644 --- a/src/mesa/program/prog_execute.c +++ b/src/mesa/program/prog_execute.c @@ -296,7 +296,7 @@ fetch_vector4ui(const struct prog_src_register *source, * XXX this currently only works for fragment program input attribs. */ static void -fetch_vector4_deriv(GLcontext * ctx, +fetch_vector4_deriv(struct gl_context * ctx, const struct prog_src_register *source, const struct gl_program_machine *machine, char xOrY, GLfloat result[4]) @@ -380,7 +380,7 @@ fetch_vector1ui(const struct prog_src_register *source, * Fetch texel from texture. Use partial derivatives when possible. */ static INLINE void -fetch_texel(GLcontext *ctx, +fetch_texel(struct gl_context *ctx, const struct gl_program_machine *machine, const struct prog_instruction *inst, const GLfloat texcoord[4], GLfloat lodBias, @@ -630,7 +630,7 @@ store_vector4ui(const struct prog_instruction *inst, * \return GL_TRUE if program completed or GL_FALSE if program executed KIL. */ GLboolean -_mesa_execute_program(GLcontext * ctx, +_mesa_execute_program(struct gl_context * ctx, const struct gl_program *program, struct gl_program_machine *machine) { diff --git a/src/mesa/program/prog_execute.h b/src/mesa/program/prog_execute.h index f59b65176f..cefd468c36 100644 --- a/src/mesa/program/prog_execute.h +++ b/src/mesa/program/prog_execute.h @@ -29,10 +29,10 @@ #include "main/mtypes.h" -typedef void (*FetchTexelLodFunc)(GLcontext *ctx, const GLfloat texcoord[4], +typedef void (*FetchTexelLodFunc)(struct gl_context *ctx, const GLfloat texcoord[4], GLfloat lambda, GLuint unit, GLfloat color[4]); -typedef void (*FetchTexelDerivFunc)(GLcontext *ctx, const GLfloat texcoord[4], +typedef void (*FetchTexelDerivFunc)(struct gl_context *ctx, const GLfloat texcoord[4], const GLfloat texdx[4], const GLfloat texdy[4], GLfloat lodBias, @@ -74,11 +74,11 @@ struct gl_program_machine extern void -_mesa_get_program_register(GLcontext *ctx, gl_register_file file, +_mesa_get_program_register(struct gl_context *ctx, gl_register_file file, GLuint index, GLfloat val[4]); extern GLboolean -_mesa_execute_program(GLcontext *ctx, +_mesa_execute_program(struct gl_context *ctx, const struct gl_program *program, struct gl_program_machine *machine); diff --git a/src/mesa/program/prog_optimize.c b/src/mesa/program/prog_optimize.c index 0dc779073d..96971f2eda 100644 --- a/src/mesa/program/prog_optimize.c +++ b/src/mesa/program/prog_optimize.c @@ -1216,7 +1216,7 @@ _mesa_reallocate_registers(struct gl_program *prog) #if 0 static void -print_it(GLcontext *ctx, struct gl_program *program, const char *txt) { +print_it(struct gl_context *ctx, struct gl_program *program, const char *txt) { fprintf(stderr, "%s (%u inst):\n", txt, program->NumInstructions); _mesa_print_program(program); _mesa_print_program_parameters(ctx, program); @@ -1230,7 +1230,7 @@ print_it(GLcontext *ctx, struct gl_program *program, const char *txt) { * instructions, temp regs, etc. */ void -_mesa_optimize_program(GLcontext *ctx, struct gl_program *program) +_mesa_optimize_program(struct gl_context *ctx, struct gl_program *program) { GLboolean any_change; diff --git a/src/mesa/program/prog_optimize.h b/src/mesa/program/prog_optimize.h index 06cd9cb2c2..00f1080449 100644 --- a/src/mesa/program/prog_optimize.h +++ b/src/mesa/program/prog_optimize.h @@ -41,6 +41,6 @@ _mesa_find_temp_intervals(const struct prog_instruction *instructions, GLint intEnd[MAX_PROGRAM_TEMPS]); extern void -_mesa_optimize_program(GLcontext *ctx, struct gl_program *program); +_mesa_optimize_program(struct gl_context *ctx, struct gl_program *program); #endif diff --git a/src/mesa/program/prog_parameter.c b/src/mesa/program/prog_parameter.c index 6bf8a081b0..3570cab118 100644 --- a/src/mesa/program/prog_parameter.c +++ b/src/mesa/program/prog_parameter.c @@ -378,18 +378,9 @@ _mesa_add_state_reference(struct gl_program_parameter_list *paramList, /* Check if the state reference is already in the list */ for (index = 0; index < (GLint) paramList->NumParameters; index++) { - GLuint i, match = 0; - for (i = 0; i < STATE_LENGTH; i++) { - if (paramList->Parameters[index].StateIndexes[i] == stateTokens[i]) { - match++; - } - else { - break; - } - } - if (match == STATE_LENGTH) { - /* this state reference is already in the parameter list */ - return index; + if (!memcmp(paramList->Parameters[index].StateIndexes, + stateTokens, STATE_LENGTH * sizeof(gl_state_index))) { + return index; } } diff --git a/src/mesa/program/prog_print.c b/src/mesa/program/prog_print.c index 00aa6de963..79c01020eb 100644 --- a/src/mesa/program/prog_print.c +++ b/src/mesa/program/prog_print.c @@ -909,7 +909,7 @@ binary(GLbitfield64 val) */ static void _mesa_fprint_program_parameters(FILE *f, - GLcontext *ctx, + struct gl_context *ctx, const struct gl_program *prog) { GLuint i; @@ -951,7 +951,7 @@ _mesa_fprint_program_parameters(FILE *f, * Print all of a program's parameters/fields to stderr. */ void -_mesa_print_program_parameters(GLcontext *ctx, const struct gl_program *prog) +_mesa_print_program_parameters(struct gl_context *ctx, const struct gl_program *prog) { _mesa_fprint_program_parameters(stderr, ctx, prog); } diff --git a/src/mesa/program/prog_print.h b/src/mesa/program/prog_print.h index 78b90aeb4d..f080b3fd2e 100644 --- a/src/mesa/program/prog_print.h +++ b/src/mesa/program/prog_print.h @@ -100,7 +100,7 @@ _mesa_fprint_program_opt(FILE *f, GLboolean lineNumbers); extern void -_mesa_print_program_parameters(GLcontext *ctx, const struct gl_program *prog); +_mesa_print_program_parameters(struct gl_context *ctx, const struct gl_program *prog); extern void _mesa_print_parameter_list(const struct gl_program_parameter_list *list); diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c index c6fb42b9a6..baac29ff0d 100644 --- a/src/mesa/program/prog_statevars.c +++ b/src/mesa/program/prog_statevars.c @@ -46,7 +46,7 @@ * The program parser will produce the state[] values. */ static void -_mesa_fetch_state(GLcontext *ctx, const gl_state_index state[], +_mesa_fetch_state(struct gl_context *ctx, const gl_state_index state[], GLfloat *value) { switch (state[0]) { @@ -1049,7 +1049,7 @@ _mesa_program_state_string(const gl_state_index state[STATE_LENGTH]) * This would be called at glBegin time when using a fragment program. */ void -_mesa_load_state_parameters(GLcontext *ctx, +_mesa_load_state_parameters(struct gl_context *ctx, struct gl_program_parameter_list *paramList) { GLuint i; @@ -1103,7 +1103,7 @@ load_transpose_matrix(GLfloat registers[][4], GLuint pos, * glBegin/glEnd, not per-vertex. */ void -_mesa_load_tracked_matrices(GLcontext *ctx) +_mesa_load_tracked_matrices(struct gl_context *ctx) { GLuint i; diff --git a/src/mesa/program/prog_statevars.h b/src/mesa/program/prog_statevars.h index cfce226fb4..6e5be53630 100644 --- a/src/mesa/program/prog_statevars.h +++ b/src/mesa/program/prog_statevars.h @@ -125,7 +125,7 @@ typedef enum gl_state_index_ { extern void -_mesa_load_state_parameters(GLcontext *ctx, +_mesa_load_state_parameters(struct gl_context *ctx, struct gl_program_parameter_list *paramList); @@ -138,7 +138,7 @@ _mesa_program_state_string(const gl_state_index state[STATE_LENGTH]); extern void -_mesa_load_tracked_matrices(GLcontext *ctx); +_mesa_load_tracked_matrices(struct gl_context *ctx); #endif /* PROG_STATEVARS_H */ diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c index 06b9539bda..cdcf4ec265 100644 --- a/src/mesa/program/program.c +++ b/src/mesa/program/program.c @@ -49,7 +49,7 @@ struct gl_program _mesa_DummyProgram; * Init context's vertex/fragment program state */ void -_mesa_init_program(GLcontext *ctx) +_mesa_init_program(struct gl_context *ctx) { GLuint i; @@ -128,7 +128,7 @@ _mesa_init_program(GLcontext *ctx) * Free a context's vertex/fragment program state */ void -_mesa_free_program_data(GLcontext *ctx) +_mesa_free_program_data(struct gl_context *ctx) { #if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program _mesa_reference_vertprog(ctx, &ctx->VertexProgram.Current, NULL); @@ -161,7 +161,7 @@ _mesa_free_program_data(GLcontext *ctx) * shared state. */ void -_mesa_update_default_objects_program(GLcontext *ctx) +_mesa_update_default_objects_program(struct gl_context *ctx) { #if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program _mesa_reference_vertprog(ctx, &ctx->VertexProgram.Current, @@ -203,7 +203,7 @@ _mesa_update_default_objects_program(GLcontext *ctx) * This is generally called from within the parsers. */ void -_mesa_set_program_error(GLcontext *ctx, GLint pos, const char *string) +_mesa_set_program_error(struct gl_context *ctx, GLint pos, const char *string) { ctx->Program.ErrorPos = pos; free((void *) ctx->Program.ErrorString); @@ -260,7 +260,7 @@ _mesa_find_line_column(const GLubyte *string, const GLubyte *pos, * Initialize a new vertex/fragment program object. */ static struct gl_program * -_mesa_init_program_struct( GLcontext *ctx, struct gl_program *prog, +_mesa_init_program_struct( struct gl_context *ctx, struct gl_program *prog, GLenum target, GLuint id) { (void) ctx; @@ -286,7 +286,7 @@ _mesa_init_program_struct( GLcontext *ctx, struct gl_program *prog, * Initialize a new fragment program object. */ struct gl_program * -_mesa_init_fragment_program( GLcontext *ctx, struct gl_fragment_program *prog, +_mesa_init_fragment_program( struct gl_context *ctx, struct gl_fragment_program *prog, GLenum target, GLuint id) { if (prog) @@ -300,7 +300,7 @@ _mesa_init_fragment_program( GLcontext *ctx, struct gl_fragment_program *prog, * Initialize a new vertex program object. */ struct gl_program * -_mesa_init_vertex_program( GLcontext *ctx, struct gl_vertex_program *prog, +_mesa_init_vertex_program( struct gl_context *ctx, struct gl_vertex_program *prog, GLenum target, GLuint id) { if (prog) @@ -314,7 +314,7 @@ _mesa_init_vertex_program( GLcontext *ctx, struct gl_vertex_program *prog, * Initialize a new geometry program object. */ struct gl_program * -_mesa_init_geometry_program( GLcontext *ctx, struct gl_geometry_program *prog, +_mesa_init_geometry_program( struct gl_context *ctx, struct gl_geometry_program *prog, GLenum target, GLuint id) { if (prog) @@ -337,7 +337,7 @@ _mesa_init_geometry_program( GLcontext *ctx, struct gl_geometry_program *prog, * \return pointer to new program object */ struct gl_program * -_mesa_new_program(GLcontext *ctx, GLenum target, GLuint id) +_mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id) { struct gl_program *prog; switch (target) { @@ -372,7 +372,7 @@ _mesa_new_program(GLcontext *ctx, GLenum target, GLuint id) * by a device driver function. */ void -_mesa_delete_program(GLcontext *ctx, struct gl_program *prog) +_mesa_delete_program(struct gl_context *ctx, struct gl_program *prog) { (void) ctx; ASSERT(prog); @@ -406,7 +406,7 @@ _mesa_delete_program(GLcontext *ctx, struct gl_program *prog) * casts elsewhere. */ struct gl_program * -_mesa_lookup_program(GLcontext *ctx, GLuint id) +_mesa_lookup_program(struct gl_context *ctx, GLuint id) { if (id) return (struct gl_program *) _mesa_HashLookup(ctx->Shared->Programs, id); @@ -419,7 +419,7 @@ _mesa_lookup_program(GLcontext *ctx, GLuint id) * Reference counting for vertex/fragment programs */ void -_mesa_reference_program(GLcontext *ctx, +_mesa_reference_program(struct gl_context *ctx, struct gl_program **ptr, struct gl_program *prog) { @@ -486,7 +486,7 @@ _mesa_reference_program(GLcontext *ctx, * made by a device driver. */ struct gl_program * -_mesa_clone_program(GLcontext *ctx, const struct gl_program *prog) +_mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog) { struct gl_program *clone; @@ -729,7 +729,7 @@ adjust_param_indexes(struct prog_instruction *inst, GLuint numInst, * the first program go to the inputs of the second program. */ struct gl_program * -_mesa_combine_programs(GLcontext *ctx, +_mesa_combine_programs(struct gl_context *ctx, const struct gl_program *progA, const struct gl_program *progB) { @@ -923,7 +923,7 @@ _mesa_find_free_register(const GLboolean used[], * behaviour. */ void -_mesa_postprocess_program(GLcontext *ctx, struct gl_program *prog) +_mesa_postprocess_program(struct gl_context *ctx, struct gl_program *prog) { static const GLfloat white[4] = { 0.5, 0.5, 0.5, 0.5 }; GLuint i; diff --git a/src/mesa/program/program.h b/src/mesa/program/program.h index 03b1066f32..70cc2c3aae 100644 --- a/src/mesa/program/program.h +++ b/src/mesa/program/program.h @@ -48,16 +48,16 @@ extern struct gl_program _mesa_DummyProgram; extern void -_mesa_init_program(GLcontext *ctx); +_mesa_init_program(struct gl_context *ctx); extern void -_mesa_free_program_data(GLcontext *ctx); +_mesa_free_program_data(struct gl_context *ctx); extern void -_mesa_update_default_objects_program(GLcontext *ctx); +_mesa_update_default_objects_program(struct gl_context *ctx); extern void -_mesa_set_program_error(GLcontext *ctx, GLint pos, const char *string); +_mesa_set_program_error(struct gl_context *ctx, GLint pos, const char *string); extern const GLubyte * _mesa_find_line_column(const GLubyte *string, const GLubyte *pos, @@ -65,36 +65,36 @@ _mesa_find_line_column(const GLubyte *string, const GLubyte *pos, extern struct gl_program * -_mesa_init_vertex_program(GLcontext *ctx, +_mesa_init_vertex_program(struct gl_context *ctx, struct gl_vertex_program *prog, GLenum target, GLuint id); extern struct gl_program * -_mesa_init_fragment_program(GLcontext *ctx, +_mesa_init_fragment_program(struct gl_context *ctx, struct gl_fragment_program *prog, GLenum target, GLuint id); extern struct gl_program * -_mesa_init_geometry_program(GLcontext *ctx, +_mesa_init_geometry_program(struct gl_context *ctx, struct gl_geometry_program *prog, GLenum target, GLuint id); extern struct gl_program * -_mesa_new_program(GLcontext *ctx, GLenum target, GLuint id); +_mesa_new_program(struct gl_context *ctx, GLenum target, GLuint id); extern void -_mesa_delete_program(GLcontext *ctx, struct gl_program *prog); +_mesa_delete_program(struct gl_context *ctx, struct gl_program *prog); extern struct gl_program * -_mesa_lookup_program(GLcontext *ctx, GLuint id); +_mesa_lookup_program(struct gl_context *ctx, GLuint id); extern void -_mesa_reference_program(GLcontext *ctx, +_mesa_reference_program(struct gl_context *ctx, struct gl_program **ptr, struct gl_program *prog); static INLINE void -_mesa_reference_vertprog(GLcontext *ctx, +_mesa_reference_vertprog(struct gl_context *ctx, struct gl_vertex_program **ptr, struct gl_vertex_program *prog) { @@ -103,7 +103,7 @@ _mesa_reference_vertprog(GLcontext *ctx, } static INLINE void -_mesa_reference_fragprog(GLcontext *ctx, +_mesa_reference_fragprog(struct gl_context *ctx, struct gl_fragment_program **ptr, struct gl_fragment_program *prog) { @@ -112,7 +112,7 @@ _mesa_reference_fragprog(GLcontext *ctx, } static INLINE void -_mesa_reference_geomprog(GLcontext *ctx, +_mesa_reference_geomprog(struct gl_context *ctx, struct gl_geometry_program **ptr, struct gl_geometry_program *prog) { @@ -121,24 +121,24 @@ _mesa_reference_geomprog(GLcontext *ctx, } extern struct gl_program * -_mesa_clone_program(GLcontext *ctx, const struct gl_program *prog); +_mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog); static INLINE struct gl_vertex_program * -_mesa_clone_vertex_program(GLcontext *ctx, +_mesa_clone_vertex_program(struct gl_context *ctx, const struct gl_vertex_program *prog) { return (struct gl_vertex_program *) _mesa_clone_program(ctx, &prog->Base); } static INLINE struct gl_geometry_program * -_mesa_clone_geometry_program(GLcontext *ctx, +_mesa_clone_geometry_program(struct gl_context *ctx, const struct gl_geometry_program *prog) { return (struct gl_geometry_program *) _mesa_clone_program(ctx, &prog->Base); } static INLINE struct gl_fragment_program * -_mesa_clone_fragment_program(GLcontext *ctx, +_mesa_clone_fragment_program(struct gl_context *ctx, const struct gl_fragment_program *prog) { return (struct gl_fragment_program *) _mesa_clone_program(ctx, &prog->Base); @@ -152,7 +152,7 @@ extern GLboolean _mesa_delete_instructions(struct gl_program *prog, GLuint start, GLuint count); extern struct gl_program * -_mesa_combine_programs(GLcontext *ctx, +_mesa_combine_programs(struct gl_context *ctx, const struct gl_program *progA, const struct gl_program *progB); @@ -166,7 +166,7 @@ _mesa_find_free_register(const GLboolean used[], GLuint maxRegs, GLuint firstReg); extern void -_mesa_postprocess_program(GLcontext *ctx, struct gl_program *prog); +_mesa_postprocess_program(struct gl_context *ctx, struct gl_program *prog); /* keep these in the same order as TGSI_PROCESSOR_* */ diff --git a/src/mesa/program/program_parse.tab.c b/src/mesa/program/program_parse.tab.c index 08ead30def..baef311d0c 100644 --- a/src/mesa/program/program_parse.tab.c +++ b/src/mesa/program/program_parse.tab.c @@ -5604,7 +5604,7 @@ yyerror(YYLTYPE *locp, struct asm_parser_state *state, const char *s) GLboolean -_mesa_parse_arb_program(GLcontext *ctx, GLenum target, const GLubyte *str, +_mesa_parse_arb_program(struct gl_context *ctx, GLenum target, const GLubyte *str, GLsizei len, struct asm_parser_state *state) { struct asm_instruction *inst; diff --git a/src/mesa/program/program_parse.y b/src/mesa/program/program_parse.y index cf621ae424..784ea28c17 100644 --- a/src/mesa/program/program_parse.y +++ b/src/mesa/program/program_parse.y @@ -2643,7 +2643,7 @@ yyerror(YYLTYPE *locp, struct asm_parser_state *state, const char *s) GLboolean -_mesa_parse_arb_program(GLcontext *ctx, GLenum target, const GLubyte *str, +_mesa_parse_arb_program(struct gl_context *ctx, GLenum target, const GLubyte *str, GLsizei len, struct asm_parser_state *state) { struct asm_instruction *inst; diff --git a/src/mesa/program/program_parser.h b/src/mesa/program/program_parser.h index be952d4b9c..d689eef795 100644 --- a/src/mesa/program/program_parser.h +++ b/src/mesa/program/program_parser.h @@ -24,10 +24,7 @@ #include "main/config.h" -#ifndef MTYPES_H -struct __GLcontextRec; -typedef struct __GLcontextRec GLcontext; -#endif +struct gl_context; enum asm_type { at_none, @@ -131,7 +128,7 @@ struct asm_instruction { struct asm_parser_state { - GLcontext *ctx; + struct gl_context *ctx; struct gl_program *prog; /** @@ -237,7 +234,7 @@ typedef struct YYLTYPE { #define YYLTYPE_IS_TRIVIAL 1 -extern GLboolean _mesa_parse_arb_program(GLcontext *ctx, GLenum target, +extern GLboolean _mesa_parse_arb_program(struct gl_context *ctx, GLenum target, const GLubyte *str, GLsizei len, struct asm_parser_state *state); diff --git a/src/mesa/program/programopt.c b/src/mesa/program/programopt.c index fb2ebe6338..f92881f833 100644 --- a/src/mesa/program/programopt.c +++ b/src/mesa/program/programopt.c @@ -46,7 +46,7 @@ * May be used to implement the position_invariant option. */ static void -_mesa_insert_mvp_dp4_code(GLcontext *ctx, struct gl_vertex_program *vprog) +_mesa_insert_mvp_dp4_code(struct gl_context *ctx, struct gl_vertex_program *vprog) { struct prog_instruction *newInst; const GLuint origLen = vprog->Base.NumInstructions; @@ -114,7 +114,7 @@ _mesa_insert_mvp_dp4_code(GLcontext *ctx, struct gl_vertex_program *vprog) static void -_mesa_insert_mvp_mad_code(GLcontext *ctx, struct gl_vertex_program *vprog) +_mesa_insert_mvp_mad_code(struct gl_context *ctx, struct gl_vertex_program *vprog) { struct prog_instruction *newInst; const GLuint origLen = vprog->Base.NumInstructions; @@ -216,7 +216,7 @@ _mesa_insert_mvp_mad_code(GLcontext *ctx, struct gl_vertex_program *vprog) void -_mesa_insert_mvp_code(GLcontext *ctx, struct gl_vertex_program *vprog) +_mesa_insert_mvp_code(struct gl_context *ctx, struct gl_vertex_program *vprog) { if (ctx->mvp_with_dp4) _mesa_insert_mvp_dp4_code( ctx, vprog ); @@ -238,7 +238,7 @@ _mesa_insert_mvp_code(GLcontext *ctx, struct gl_vertex_program *vprog) * to vertex programs too. */ void -_mesa_append_fog_code(GLcontext *ctx, struct gl_fragment_program *fprog) +_mesa_append_fog_code(struct gl_context *ctx, struct gl_fragment_program *fprog) { static const gl_state_index fogPStateOpt[STATE_LENGTH] = { STATE_INTERNAL, STATE_FOG_PARAMS_OPTIMIZED, 0, 0, 0 }; @@ -585,7 +585,7 @@ _mesa_remove_output_reads(struct gl_program *prog, gl_register_file type) * This is for debug/test purposes. */ void -_mesa_nop_fragment_program(GLcontext *ctx, struct gl_fragment_program *prog) +_mesa_nop_fragment_program(struct gl_context *ctx, struct gl_fragment_program *prog) { struct prog_instruction *inst; GLuint inputAttr; @@ -626,7 +626,7 @@ _mesa_nop_fragment_program(GLcontext *ctx, struct gl_fragment_program *prog) * transforms vertex position and emits color. */ void -_mesa_nop_vertex_program(GLcontext *ctx, struct gl_vertex_program *prog) +_mesa_nop_vertex_program(struct gl_context *ctx, struct gl_vertex_program *prog) { struct prog_instruction *inst; GLuint inputAttr; diff --git a/src/mesa/program/programopt.h b/src/mesa/program/programopt.h index 4af6357f97..ef6f1bd079 100644 --- a/src/mesa/program/programopt.h +++ b/src/mesa/program/programopt.h @@ -29,10 +29,10 @@ #include "main/mtypes.h" extern void -_mesa_insert_mvp_code(GLcontext *ctx, struct gl_vertex_program *vprog); +_mesa_insert_mvp_code(struct gl_context *ctx, struct gl_vertex_program *vprog); extern void -_mesa_append_fog_code(GLcontext *ctx, struct gl_fragment_program *fprog); +_mesa_append_fog_code(struct gl_context *ctx, struct gl_fragment_program *fprog); extern void _mesa_count_texture_indirections(struct gl_program *prog); @@ -44,10 +44,10 @@ extern void _mesa_remove_output_reads(struct gl_program *prog, gl_register_file type); extern void -_mesa_nop_fragment_program(GLcontext *ctx, struct gl_fragment_program *prog); +_mesa_nop_fragment_program(struct gl_context *ctx, struct gl_fragment_program *prog); extern void -_mesa_nop_vertex_program(GLcontext *ctx, struct gl_vertex_program *prog); +_mesa_nop_vertex_program(struct gl_context *ctx, struct gl_vertex_program *prog); #endif /* PROGRAMOPT_H */ diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c new file mode 100644 index 0000000000..03f04697bf --- /dev/null +++ b/src/mesa/program/register_allocate.c @@ -0,0 +1,361 @@ +/* + * Copyright © 2010 Intel Corporation + * + * 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 (including the next + * paragraph) 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 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Authors: + * Eric Anholt <eric@anholt.net> + * + */ + +/** @file register_allocate.c + * + * Graph-coloring register allocator. + */ + +#include <talloc.h> + +#include "main/imports.h" +#include "main/macros.h" +#include "main/mtypes.h" +#include "register_allocate.h" + +struct ra_reg { + char *name; + GLboolean *conflicts; +}; + +struct ra_regs { + struct ra_reg *regs; + unsigned int count; + + struct ra_class **classes; + unsigned int class_count; +}; + +struct ra_class { + GLboolean *regs; + + /** + * p_B in Runeson/Nyström paper. + * + * This is "how many regs are in the set." + */ + unsigned int p; + + /** + * q_B,C in Runeson/Nyström paper. + */ + unsigned int *q; +}; + +struct ra_node { + GLboolean *adjacency; + unsigned int class; + unsigned int adjacency_count; + unsigned int reg; + GLboolean in_stack; +}; + +struct ra_graph { + struct ra_regs *regs; + /** + * the variables that need register allocation. + */ + struct ra_node *nodes; + unsigned int count; /**< count of nodes. */ + + unsigned int *stack; + unsigned int stack_count; +}; + +struct ra_regs * +ra_alloc_reg_set(unsigned int count) +{ + unsigned int i; + struct ra_regs *regs; + + regs = talloc_zero(NULL, struct ra_regs); + regs->count = count; + regs->regs = talloc_zero_array(regs, struct ra_reg, count); + + for (i = 0; i < count; i++) { + regs->regs[i].conflicts = talloc_zero_array(regs->regs, GLboolean, count); + regs->regs[i].conflicts[i] = GL_TRUE; + } + + return regs; +} + +void +ra_add_reg_conflict(struct ra_regs *regs, unsigned int r1, unsigned int r2) +{ + regs->regs[r1].conflicts[r2] = GL_TRUE; + regs->regs[r2].conflicts[r1] = GL_TRUE; +} + +unsigned int +ra_alloc_reg_class(struct ra_regs *regs) +{ + struct ra_class *class; + + regs->classes = talloc_realloc(regs, regs->classes, + struct ra_class *, + regs->class_count + 1); + + class = talloc_zero(regs, struct ra_class); + regs->classes[regs->class_count] = class; + + class->regs = talloc_zero_array(class, GLboolean, regs->count); + + return regs->class_count++; +} + +void +ra_class_add_reg(struct ra_regs *regs, unsigned int c, unsigned int r) +{ + struct ra_class *class = regs->classes[c]; + + class->regs[r] = GL_TRUE; + class->p++; +} + +/** + * Must be called after all conflicts and register classes have been + * set up and before the register set is used for allocation. + */ +void +ra_set_finalize(struct ra_regs *regs) +{ + unsigned int b, c; + + for (b = 0; b < regs->class_count; b++) { + regs->classes[b]->q = talloc_array(regs, unsigned int, regs->class_count); + } + + /* Compute, for each class B and C, how many regs of B an + * allocation to C could conflict with. + */ + for (b = 0; b < regs->class_count; b++) { + for (c = 0; c < regs->class_count; c++) { + unsigned int rc; + int max_conflicts = 0; + + for (rc = 0; rc < regs->count; rc++) { + unsigned int rb; + int conflicts = 0; + + if (!regs->classes[c]->regs[rc]) + continue; + + for (rb = 0; rb < regs->count; rb++) { + if (regs->classes[b]->regs[rb] && + regs->regs[rb].conflicts[rc]) + conflicts++; + } + max_conflicts = MAX2(max_conflicts, conflicts); + } + regs->classes[b]->q[c] = max_conflicts; + } + } +} + +struct ra_graph * +ra_alloc_interference_graph(struct ra_regs *regs, unsigned int count) +{ + struct ra_graph *g; + unsigned int i; + + g = talloc_zero(regs, struct ra_graph); + g->regs = regs; + g->nodes = talloc_zero_array(g, struct ra_node, count); + g->count = count; + + g->stack = talloc_zero_array(g, unsigned int, count); + + for (i = 0; i < count; i++) { + g->nodes[i].adjacency = talloc_zero_array(g, GLboolean, count); + g->nodes[i].adjacency[i] = GL_TRUE; + g->nodes[i].reg = ~0; + } + + return g; +} + +void +ra_set_node_class(struct ra_graph *g, + unsigned int n, unsigned int class) +{ + g->nodes[n].class = class; +} + +void +ra_add_node_interference(struct ra_graph *g, + unsigned int n1, unsigned int n2) +{ + if (g->nodes[n1].adjacency[n2]) + return; + + g->nodes[n1].adjacency[n2] = GL_TRUE; + g->nodes[n2].adjacency_count++; + g->nodes[n2].adjacency[n1] = GL_TRUE; + g->nodes[n2].adjacency_count++; +} + +static GLboolean pq_test(struct ra_graph *g, unsigned int n) +{ + unsigned int j; + unsigned int q = 0; + int n_class = g->nodes[n].class; + + for (j = 0; j < g->count; j++) { + if (j == n || g->nodes[j].in_stack) + continue; + + if (g->nodes[n].adjacency[j]) { + unsigned int j_class = g->nodes[j].class; + q += g->regs->classes[n_class]->q[j_class]; + } + } + + return q < g->regs->classes[n_class]->p; +} + +/** + * Simplifies the interference graph by pushing all + * trivially-colorable nodes into a stack of nodes to be colored, + * removing them from the graph, and rinsing and repeating. + * + * Returns GL_TRUE if all nodes were removed from the graph. GL_FALSE + * means that either spilling will be required, or optimistic coloring + * should be applied. + */ +GLboolean +ra_simplify(struct ra_graph *g) +{ + GLboolean progress = GL_TRUE; + int i; + + while (progress) { + progress = GL_FALSE; + + for (i = g->count - 1; i >= 0; i--) { + if (g->nodes[i].in_stack) + continue; + + if (pq_test(g, i)) { + g->stack[g->stack_count] = i; + g->stack_count++; + g->nodes[i].in_stack = GL_TRUE; + progress = GL_TRUE; + } + } + } + + for (i = 0; i < g->count; i++) { + if (!g->nodes[i].in_stack) + return GL_FALSE; + } + + return GL_TRUE; +} + +/** + * Pops nodes from the stack back into the graph, coloring them with + * registers as they go. + * + * If all nodes were trivially colorable, then this must succeed. If + * not (optimistic coloring), then it may return GL_FALSE; + */ +GLboolean +ra_select(struct ra_graph *g) +{ + int i; + + while (g->stack_count != 0) { + unsigned int r; + int n = g->stack[g->stack_count - 1]; + struct ra_class *c = g->regs->classes[g->nodes[n].class]; + + /* Find the lowest-numbered reg which is not used by a member + * of the graph adjacent to us. + */ + for (r = 0; r < g->regs->count; r++) { + if (!c->regs[r]) + continue; + + /* Check if any of our neighbors conflict with this register choice. */ + for (i = 0; i < g->count; i++) { + if (g->nodes[n].adjacency[i] && + !g->nodes[i].in_stack && + g->regs->regs[r].conflicts[g->nodes[i].reg]) { + break; + } + } + if (i == g->count) + break; + } + if (r == g->regs->count) + return GL_FALSE; + + g->nodes[n].reg = r; + g->nodes[n].in_stack = GL_FALSE; + g->stack_count--; + } + + return GL_TRUE; +} + +/** + * Optimistic register coloring: Just push the remaining nodes + * on the stack. They'll be colored first in ra_select(), and + * if they succeed then the locally-colorable nodes are still + * locally-colorable and the rest of the register allocation + * will succeed. + */ +void +ra_optimistic_color(struct ra_graph *g) +{ + unsigned int i; + + for (i = 0; i < g->count; i++) { + if (g->nodes[i].in_stack) + continue; + + g->stack[g->stack_count] = i; + g->stack_count++; + g->nodes[i].in_stack = GL_TRUE; + } +} + +GLboolean +ra_allocate_no_spills(struct ra_graph *g) +{ + if (!ra_simplify(g)) { + ra_optimistic_color(g); + } + return ra_select(g); +} + +unsigned int +ra_get_node_reg(struct ra_graph *g, unsigned int n) +{ + return g->nodes[n].reg; +} diff --git a/src/mesa/program/register_allocate.h b/src/mesa/program/register_allocate.h new file mode 100644 index 0000000000..42647b50b8 --- /dev/null +++ b/src/mesa/program/register_allocate.h @@ -0,0 +1,69 @@ +/* + * Copyright © 2010 Intel Corporation + * + * 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 (including the next + * paragraph) 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 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Authors: + * Eric Anholt <eric@anholt.net> + * + */ + +struct ra_class; +struct ra_regs; + +/* @{ + * Register set setup. + * + * This should be done once at backend initializaion, as + * ra_set_finalize is O(r^2*c^2). The registers may be virtual + * registers, such as aligned register pairs that conflict with the + * two real registers from which they are composed. + */ +struct ra_regs *ra_alloc_reg_set(unsigned int count); +unsigned int ra_alloc_reg_class(struct ra_regs *regs); +void ra_add_reg_conflict(struct ra_regs *regs, + unsigned int r1, unsigned int r2); +void ra_class_add_reg(struct ra_regs *regs, unsigned int c, unsigned int reg); +void ra_set_finalize(struct ra_regs *regs); +/** @} */ + +/** @{ Interference graph setup. + * + * Each interference graph node is a virtual variable in the IL. It + * is up to the user to ra_set_node_class() for the virtual variable, + * and compute live ranges and ra_node_interfere() between conflicting + * live ranges. + */ +struct ra_graph *ra_alloc_interference_graph(struct ra_regs *regs, + unsigned int count); +void ra_set_node_class(struct ra_graph *g, unsigned int n, unsigned int c); +void ra_add_node_interference(struct ra_graph *g, + unsigned int n1, unsigned int n2); +/** @} */ + +/** @{ Graph-coloring register allocation */ +GLboolean ra_simplify(struct ra_graph *g); +void ra_optimistic_color(struct ra_graph *g); +GLboolean ra_select(struct ra_graph *g); +GLboolean ra_allocate_no_spills(struct ra_graph *g); + +unsigned int ra_get_node_reg(struct ra_graph *g, unsigned int n); +/** @} */ + diff --git a/src/mesa/program/sampler.cpp b/src/mesa/program/sampler.cpp new file mode 100644 index 0000000000..0e58aef9c9 --- /dev/null +++ b/src/mesa/program/sampler.cpp @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2005-2007 Brian Paul All Rights Reserved. + * Copyright (C) 2008 VMware, Inc. All Rights Reserved. + * Copyright © 2010 Intel Corporation + * + * 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 (including the next + * paragraph) 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 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include <stdio.h> + +extern "C" { +#include "main/compiler.h" +#include "main/mtypes.h" +#include "program/prog_parameter.h" +#include "ir.h" +#include "ir_visitor.h" +#include "glsl_types.h" +} + +static void fail_link(struct gl_shader_program *prog, const char *fmt, ...) PRINTFLIKE(2, 3); + +static void fail_link(struct gl_shader_program *prog, const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + prog->InfoLog = talloc_vasprintf_append(prog->InfoLog, fmt, args); + va_end(args); + + prog->LinkStatus = GL_FALSE; +} + +class get_sampler_name : public ir_hierarchical_visitor +{ +public: + get_sampler_name(ir_dereference *last, + struct gl_shader_program *shader_program) + { + this->mem_ctx = talloc_new(NULL); + this->shader_program = shader_program; + this->name = NULL; + this->offset = 0; + this->last = last; + } + + ~get_sampler_name() + { + talloc_free(this->mem_ctx); + } + + virtual ir_visitor_status visit(ir_dereference_variable *ir) + { + this->name = ir->var->name; + return visit_continue; + } + + virtual ir_visitor_status visit_leave(ir_dereference_record *ir) + { + this->name = talloc_asprintf(mem_ctx, "%s.%s", name, ir->field); + return visit_continue; + } + + virtual ir_visitor_status visit_leave(ir_dereference_array *ir) + { + ir_constant *index = ir->array_index->as_constant(); + int i; + + if (index) { + i = index->value.i[0]; + } else { + /* GLSL 1.10 and 1.20 allowed variable sampler array indices, + * while GLSL 1.30 requires that the array indices be + * constant integer expressions. We don't expect any driver + * to actually work with a really variable array index, so + * all that would work would be an unrolled loop counter that ends + * up being constant above. + */ + shader_program->InfoLog = + talloc_asprintf_append(shader_program->InfoLog, + "warning: Variable sampler array index " + "unsupported.\nThis feature of the language " + "was removed in GLSL 1.20 and is unlikely " + "to be supported for 1.10 in Mesa.\n"); + i = 0; + } + if (ir != last) { + this->name = talloc_asprintf(mem_ctx, "%s[%d]", name, i); + } else { + offset = i; + } + return visit_continue; + } + + struct gl_shader_program *shader_program; + const char *name; + void *mem_ctx; + int offset; + ir_dereference *last; +}; + +extern "C" { +int +_mesa_get_sampler_uniform_value(class ir_dereference *sampler, + struct gl_shader_program *shader_program, + const struct gl_program *prog) +{ + get_sampler_name getname(sampler, shader_program); + + sampler->accept(&getname); + + GLint index = _mesa_lookup_parameter_index(prog->Parameters, -1, + getname.name); + + if (index < 0) { + fail_link(shader_program, + "failed to find sampler named %s.\n", getname.name); + return 0; + } + + index += getname.offset; + + return prog->Parameters->ParameterValues[index][0]; +} +} diff --git a/src/mesa/program/sampler.h b/src/mesa/program/sampler.h new file mode 100644 index 0000000000..22467e9902 --- /dev/null +++ b/src/mesa/program/sampler.h @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2005-2007 Brian Paul All Rights Reserved. + * Copyright (C) 2008 VMware, Inc. All Rights Reserved. + * Copyright © 2010 Intel Corporation + * + * 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 (including the next + * paragraph) 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 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +int +_mesa_get_sampler_uniform_value(class ir_dereference *sampler, + struct gl_shader_program *shader_program, + const struct gl_program *prog); diff --git a/src/mesa/sources.mak b/src/mesa/sources.mak index 6f6598db82..11a93d47f6 100644 --- a/src/mesa/sources.mak +++ b/src/mesa/sources.mak @@ -247,10 +247,12 @@ PROGRAM_SOURCES = \ program/prog_statevars.c \ program/prog_uniform.c \ program/programopt.c \ + program/register_allocate.c \ program/symbol_table.c SHADER_CXX_SOURCES = \ - program/ir_to_mesa.cpp + program/ir_to_mesa.cpp \ + program/sampler.cpp ASM_C_SOURCES = \ x86/common_x86.c \ diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c index e389e57346..e29ab46ef9 100644 --- a/src/mesa/state_tracker/st_atom.c +++ b/src/mesa/state_tracker/st_atom.c @@ -109,7 +109,7 @@ static void xor_states( struct st_state_flags *result, */ static void check_program_state( struct st_context *st ) { - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; if (ctx->VertexProgram._Current != &st->vp->Base) st->dirty.st |= ST_NEW_VERTEX_PROGRAM; diff --git a/src/mesa/state_tracker/st_atom.h b/src/mesa/state_tracker/st_atom.h index c7a04951bf..6a5ea365eb 100644 --- a/src/mesa/state_tracker/st_atom.h +++ b/src/mesa/state_tracker/st_atom.h @@ -67,6 +67,6 @@ extern const struct st_tracked_state st_update_vs_constants; extern const struct st_tracked_state st_update_pixel_transfer; -uint st_compare_func_to_pipe(GLenum func); +GLuint st_compare_func_to_pipe(GLenum func); #endif diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c index 2140360580..a8ec4adce7 100644 --- a/src/mesa/state_tracker/st_atom_blend.c +++ b/src/mesa/state_tracker/st_atom_blend.c @@ -156,7 +156,7 @@ translate_logicop(GLenum logicop) * Figure out if colormasks are different per rt. */ static GLboolean -colormask_per_rt(GLcontext *ctx) +colormask_per_rt(struct gl_context *ctx) { /* a bit suboptimal have to compare lots of values */ unsigned i; @@ -172,7 +172,7 @@ colormask_per_rt(GLcontext *ctx) * Figure out if blend enables are different per rt. */ static GLboolean -blend_per_rt(GLcontext *ctx) +blend_per_rt(struct gl_context *ctx) { if (ctx->Color.BlendEnabled && (ctx->Color.BlendEnabled != ((1 << ctx->Const.MaxDrawBuffers) - 1))) { diff --git a/src/mesa/state_tracker/st_atom_depth.c b/src/mesa/state_tracker/st_atom_depth.c index 1616e945fe..aaee432a21 100644 --- a/src/mesa/state_tracker/st_atom_depth.c +++ b/src/mesa/state_tracker/st_atom_depth.c @@ -97,7 +97,7 @@ update_depth_stencil_alpha(struct st_context *st) { struct pipe_depth_stencil_alpha_state *dsa = &st->state.depth_stencil; struct pipe_stencil_ref sr; - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; memset(dsa, 0, sizeof(*dsa)); memset(&sr, 0, sizeof(sr)); diff --git a/src/mesa/state_tracker/st_atom_pixeltransfer.c b/src/mesa/state_tracker/st_atom_pixeltransfer.c index 081b6b3e23..6be03376d0 100644 --- a/src/mesa/state_tracker/st_atom_pixeltransfer.c +++ b/src/mesa/state_tracker/st_atom_pixeltransfer.c @@ -69,7 +69,7 @@ struct state_key }; static void -make_state_key(GLcontext *ctx, struct state_key *key) +make_state_key(struct gl_context *ctx, struct state_key *key) { memset(key, 0, sizeof(*key)); @@ -85,7 +85,7 @@ make_state_key(GLcontext *ctx, struct state_key *key) static struct pipe_resource * -create_color_map_texture(GLcontext *ctx) +create_color_map_texture(struct gl_context *ctx) { struct st_context *st = st_context(ctx); struct pipe_context *pipe = st->pipe; @@ -108,7 +108,7 @@ create_color_map_texture(GLcontext *ctx) * Update the pixelmap texture with the contents of the R/G/B/A pixel maps. */ static void -load_color_map_texture(GLcontext *ctx, struct pipe_resource *pt) +load_color_map_texture(struct gl_context *ctx, struct pipe_resource *pt) { struct st_context *st = st_context(ctx); struct pipe_context *pipe = st->pipe; @@ -157,7 +157,7 @@ load_color_map_texture(GLcontext *ctx, struct pipe_resource *pt) * Returns a fragment program which implements the current pixel transfer ops. */ static struct gl_fragment_program * -get_pixel_transfer_program(GLcontext *ctx, const struct state_key *key) +get_pixel_transfer_program(struct gl_context *ctx, const struct state_key *key) { struct st_context *st = st_context(ctx); struct prog_instruction inst[MAX_INST]; @@ -320,7 +320,7 @@ get_pixel_transfer_program(GLcontext *ctx, const struct state_key *key) static void update_pixel_transfer(struct st_context *st) { - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; struct state_key key; struct gl_fragment_program *fp; diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c b/src/mesa/state_tracker/st_atom_rasterizer.c index 0fe333ae8a..451299cef0 100644 --- a/src/mesa/state_tracker/st_atom_rasterizer.c +++ b/src/mesa/state_tracker/st_atom_rasterizer.c @@ -57,7 +57,7 @@ static GLuint translate_fill( GLenum mode ) static void update_raster_state( struct st_context *st ) { - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; struct pipe_rasterizer_state *raster = &st->state.rasterizer; const struct gl_vertex_program *vertProg = ctx->VertexProgram._Current; const struct gl_fragment_program *fragProg = ctx->FragmentProgram._Current; diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c index 981129621c..029b040346 100644 --- a/src/mesa/state_tracker/st_atom_texture.c +++ b/src/mesa/state_tracker/st_atom_texture.c @@ -52,7 +52,7 @@ * * \param format PIPE_FORMAT_*. * \param swizzle Texture swizzle, a bitmask computed using MAKE_SWIZZLE4. - * \param depthmode One of GL_LUMINANCE, GL_INTENSITY, GL_ALPHA. + * \param depthmode One of GL_LUMINANCE, GL_INTENSITY, GL_ALPHA, GL_RED. */ static GLuint apply_depthmode(enum pipe_format format, GLuint swizzle, GLenum depthmode) @@ -96,6 +96,14 @@ static GLuint apply_depthmode(enum pipe_format format, else if (swiz[i] < SWIZZLE_W) swiz[i] = SWIZZLE_ZERO; break; + case GL_RED: + /* Rewrite reads W to 1, XYZ to X00 */ + for (i = 0; i < 4; i++) + if (swiz[i] == SWIZZLE_W) + swiz[i] = SWIZZLE_ONE; + else if (swiz[i] == SWIZZLE_Y || swiz[i] == SWIZZLE_Z) + swiz[i] = SWIZZLE_ZERO; + break; } return MAKE_SWIZZLE4(swiz[0], swiz[1], swiz[2], swiz[3]); diff --git a/src/mesa/state_tracker/st_atom_viewport.c b/src/mesa/state_tracker/st_atom_viewport.c index 0b6c34ca2c..d10f1840df 100644 --- a/src/mesa/state_tracker/st_atom_viewport.c +++ b/src/mesa/state_tracker/st_atom_viewport.c @@ -41,7 +41,7 @@ static void update_viewport( struct st_context *st ) { - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; GLfloat yScale, yBias; /* _NEW_BUFFERS diff --git a/src/mesa/state_tracker/st_cb_accum.c b/src/mesa/state_tracker/st_cb_accum.c index 425e7987d3..6c5caf42e3 100644 --- a/src/mesa/state_tracker/st_cb_accum.c +++ b/src/mesa/state_tracker/st_cb_accum.c @@ -55,7 +55,7 @@ void -st_clear_accum_buffer(GLcontext *ctx, struct gl_renderbuffer *rb) +st_clear_accum_buffer(struct gl_context *ctx, struct gl_renderbuffer *rb) { struct st_renderbuffer *acc_strb = st_renderbuffer(rb); const GLint xpos = ctx->DrawBuffer->_Xmin; @@ -96,7 +96,7 @@ st_clear_accum_buffer(GLcontext *ctx, struct gl_renderbuffer *rb) /** For ADD/MULT */ static void -accum_mad(GLcontext *ctx, GLfloat scale, GLfloat bias, +accum_mad(struct gl_context *ctx, GLfloat scale, GLfloat bias, GLint xpos, GLint ypos, GLint width, GLint height, struct st_renderbuffer *acc_strb) { @@ -219,7 +219,7 @@ accum_load(struct st_context *st, GLfloat value, static void -accum_return(GLcontext *ctx, GLfloat value, +accum_return(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height, struct st_renderbuffer *acc_strb, struct st_renderbuffer *color_strb) @@ -286,7 +286,7 @@ accum_return(GLcontext *ctx, GLfloat value, static void -st_Accum(GLcontext *ctx, GLenum op, GLfloat value) +st_Accum(struct gl_context *ctx, GLenum op, GLfloat value) { struct st_context *st = st_context(ctx); struct st_renderbuffer *acc_strb diff --git a/src/mesa/state_tracker/st_cb_accum.h b/src/mesa/state_tracker/st_cb_accum.h index 06425dc8a3..b8c9c35003 100644 --- a/src/mesa/state_tracker/st_cb_accum.h +++ b/src/mesa/state_tracker/st_cb_accum.h @@ -35,7 +35,7 @@ #if FEATURE_accum extern void -st_clear_accum_buffer(GLcontext *ctx, struct gl_renderbuffer *rb); +st_clear_accum_buffer(struct gl_context *ctx, struct gl_renderbuffer *rb); extern void st_init_accum_functions(struct dd_function_table *functions); @@ -44,7 +44,7 @@ extern void st_init_accum_functions(struct dd_function_table *functions); #include "main/compiler.h" static INLINE void -st_clear_accum_buffer(GLcontext *ctx, struct gl_renderbuffer *rb) +st_clear_accum_buffer(struct gl_context *ctx, struct gl_renderbuffer *rb) { ASSERT_NO_FEATURE(); } diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index 8da5cbb5e6..3c0ee6c288 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -113,7 +113,7 @@ struct bitmap_cache * This program will be combined with the user's fragment program. */ static struct st_fragment_program * -make_bitmap_fragment_program(GLcontext *ctx, GLuint samplerIndex) +make_bitmap_fragment_program(struct gl_context *ctx, GLuint samplerIndex) { struct st_context *st = st_context(ctx); struct st_fragment_program *stfp; @@ -187,7 +187,7 @@ find_free_bit(uint bitfield) * Combine basic bitmap fragment program with the user-defined program. */ static struct st_fragment_program * -combined_bitmap_fragment_program(GLcontext *ctx) +combined_bitmap_fragment_program(struct gl_context *ctx) { struct st_context *st = st_context(ctx); struct st_fragment_program *stfp = st->fp; @@ -256,7 +256,7 @@ unpack_bitmap(struct st_context *st, * Create a texture which represents a bitmap image. */ static struct pipe_resource * -make_bitmap_texture(GLcontext *ctx, GLsizei width, GLsizei height, +make_bitmap_texture(struct gl_context *ctx, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap) { @@ -403,7 +403,7 @@ setup_bitmap_vertex_data(struct st_context *st, bool normalized, * Render a glBitmap by drawing a textured quad */ static void -draw_bitmap_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z, +draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, GLsizei width, GLsizei height, struct pipe_sampler_view *sv, const GLfloat *color) @@ -737,7 +737,7 @@ accum_bitmap(struct st_context *st, * Called via ctx->Driver.Bitmap() */ static void -st_Bitmap(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, +st_Bitmap(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ) { struct st_context *st = st_context(ctx); diff --git a/src/mesa/state_tracker/st_cb_blit.c b/src/mesa/state_tracker/st_cb_blit.c index 536748402f..af41835326 100644 --- a/src/mesa/state_tracker/st_cb_blit.c +++ b/src/mesa/state_tracker/st_cb_blit.c @@ -61,7 +61,7 @@ st_destroy_blit(struct st_context *st) #if FEATURE_EXT_framebuffer_blit static void -st_BlitFramebuffer(GLcontext *ctx, +st_BlitFramebuffer(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c index 7991a93a1e..27540c36ce 100644 --- a/src/mesa/state_tracker/st_cb_bufferobjects.c +++ b/src/mesa/state_tracker/st_cb_bufferobjects.c @@ -51,7 +51,7 @@ * internal structure where somehow shared. */ static struct gl_buffer_object * -st_bufferobj_alloc(GLcontext *ctx, GLuint name, GLenum target) +st_bufferobj_alloc(struct gl_context *ctx, GLuint name, GLenum target) { struct st_buffer_object *st_obj = ST_CALLOC_STRUCT(st_buffer_object); @@ -70,7 +70,7 @@ st_bufferobj_alloc(GLcontext *ctx, GLuint name, GLenum target) * Called via glDeleteBuffersARB(). */ static void -st_bufferobj_free(GLcontext *ctx, struct gl_buffer_object *obj) +st_bufferobj_free(struct gl_context *ctx, struct gl_buffer_object *obj) { struct st_buffer_object *st_obj = st_buffer_object(obj); @@ -92,7 +92,7 @@ st_bufferobj_free(GLcontext *ctx, struct gl_buffer_object *obj) * Called via glBufferSubDataARB(). */ static void -st_bufferobj_subdata(GLcontext *ctx, +st_bufferobj_subdata(struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, @@ -132,7 +132,7 @@ st_bufferobj_subdata(GLcontext *ctx, * Called via glGetBufferSubDataARB(). */ static void -st_bufferobj_get_subdata(GLcontext *ctx, +st_bufferobj_get_subdata(struct gl_context *ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, @@ -161,7 +161,7 @@ st_bufferobj_get_subdata(GLcontext *ctx, * \return GL_TRUE for success, GL_FALSE if out of memory */ static GLboolean -st_bufferobj_data(GLcontext *ctx, +st_bufferobj_data(struct gl_context *ctx, GLenum target, GLsizeiptrARB size, const GLvoid * data, @@ -214,7 +214,7 @@ st_bufferobj_data(GLcontext *ctx, * Called via glMapBufferARB(). */ static void * -st_bufferobj_map(GLcontext *ctx, GLenum target, GLenum access, +st_bufferobj_map(struct gl_context *ctx, GLenum target, GLenum access, struct gl_buffer_object *obj) { struct st_buffer_object *st_obj = st_buffer_object(obj); @@ -257,7 +257,7 @@ st_bufferobj_zero_length_range = 0; * Called via glMapBufferRange(). */ static void * -st_bufferobj_map_range(GLcontext *ctx, GLenum target, +st_bufferobj_map_range(struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access, struct gl_buffer_object *obj) { @@ -317,7 +317,7 @@ st_bufferobj_map_range(GLcontext *ctx, GLenum target, static void -st_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target, +st_bufferobj_flush_mapped_range(struct gl_context *ctx, GLenum target, GLintptr offset, GLsizeiptr length, struct gl_buffer_object *obj) { @@ -342,7 +342,7 @@ st_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target, * Called via glUnmapBufferARB(). */ static GLboolean -st_bufferobj_unmap(GLcontext *ctx, GLenum target, struct gl_buffer_object *obj) +st_bufferobj_unmap(struct gl_context *ctx, GLenum target, struct gl_buffer_object *obj) { struct pipe_context *pipe = st_context(ctx)->pipe; struct st_buffer_object *st_obj = st_buffer_object(obj); @@ -362,7 +362,7 @@ st_bufferobj_unmap(GLcontext *ctx, GLenum target, struct gl_buffer_object *obj) * Called via glCopyBufferSubData(). */ static void -st_copy_buffer_subdata(GLcontext *ctx, +st_copy_buffer_subdata(struct gl_context *ctx, struct gl_buffer_object *src, struct gl_buffer_object *dst, GLintptr readOffset, GLintptr writeOffset, diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c index 246ab2e957..bd1dd78b23 100644 --- a/src/mesa/state_tracker/st_cb_clear.c +++ b/src/mesa/state_tracker/st_cb_clear.c @@ -191,7 +191,7 @@ draw_quad(struct st_context *st, * ctx->DrawBuffer->_X/Ymin/max fields. */ static void -clear_with_quad(GLcontext *ctx, +clear_with_quad(struct gl_context *ctx, GLboolean color, GLboolean depth, GLboolean stencil) { struct st_context *st = st_context(ctx); @@ -316,7 +316,7 @@ clear_with_quad(GLcontext *ctx, * Determine if we need to clear the depth buffer by drawing a quad. */ static INLINE GLboolean -check_clear_color_with_quad(GLcontext *ctx, struct gl_renderbuffer *rb) +check_clear_color_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb) { if (ctx->Scissor.Enabled && (ctx->Scissor.X != 0 || @@ -340,7 +340,7 @@ check_clear_color_with_quad(GLcontext *ctx, struct gl_renderbuffer *rb) * drawing a quad. */ static INLINE GLboolean -check_clear_depth_stencil_with_quad(GLcontext *ctx, struct gl_renderbuffer *rb) +check_clear_depth_stencil_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb) { const GLuint stencilMax = 0xff; GLboolean maskStencil @@ -368,7 +368,7 @@ check_clear_depth_stencil_with_quad(GLcontext *ctx, struct gl_renderbuffer *rb) * Determine if we need to clear the depth buffer by drawing a quad. */ static INLINE GLboolean -check_clear_depth_with_quad(GLcontext *ctx, struct gl_renderbuffer *rb, +check_clear_depth_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb, boolean ds_separate) { const struct st_renderbuffer *strb = st_renderbuffer(rb); @@ -392,7 +392,7 @@ check_clear_depth_with_quad(GLcontext *ctx, struct gl_renderbuffer *rb, * Determine if we need to clear the stencil buffer by drawing a quad. */ static INLINE GLboolean -check_clear_stencil_with_quad(GLcontext *ctx, struct gl_renderbuffer *rb, +check_clear_stencil_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb, boolean ds_separate) { const struct st_renderbuffer *strb = st_renderbuffer(rb); @@ -447,7 +447,7 @@ st_flush_clear(struct st_context *st) * Called via ctx->Driver.Clear() */ static void -st_Clear(GLcontext *ctx, GLbitfield mask) +st_Clear(struct gl_context *ctx, GLbitfield mask) { static const GLbitfield BUFFER_BITS_DS = (BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL); diff --git a/src/mesa/state_tracker/st_cb_condrender.c b/src/mesa/state_tracker/st_cb_condrender.c index b509d43b7c..7766ead48b 100644 --- a/src/mesa/state_tracker/st_cb_condrender.c +++ b/src/mesa/state_tracker/st_cb_condrender.c @@ -47,7 +47,7 @@ * Called via ctx->Driver.BeginConditionalRender() */ static void -st_BeginConditionalRender(GLcontext *ctx, struct gl_query_object *q, +st_BeginConditionalRender(struct gl_context *ctx, struct gl_query_object *q, GLenum mode) { struct st_query_object *stq = st_query_object(q); @@ -80,7 +80,7 @@ st_BeginConditionalRender(GLcontext *ctx, struct gl_query_object *q, * Called via ctx->Driver.BeginConditionalRender() */ static void -st_EndConditionalRender(GLcontext *ctx, struct gl_query_object *q) +st_EndConditionalRender(struct gl_context *ctx, struct gl_query_object *q) { struct pipe_context *pipe = st_context(ctx)->pipe; (void) q; diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c index fb1fec1aef..94b80f69f2 100644 --- a/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/src/mesa/state_tracker/st_cb_drawpixels.c @@ -38,27 +38,27 @@ #include "main/texstore.h" #include "program/program.h" #include "program/prog_print.h" +#include "program/prog_instruction.h" -#include "st_debug.h" -#include "st_context.h" #include "st_atom.h" #include "st_atom_constbuf.h" -#include "st_program.h" #include "st_cb_drawpixels.h" #include "st_cb_readpixels.h" #include "st_cb_fbo.h" +#include "st_context.h" +#include "st_debug.h" #include "st_format.h" +#include "st_program.h" #include "st_texture.h" #include "pipe/p_context.h" #include "pipe/p_defines.h" -#include "util/u_inlines.h" #include "tgsi/tgsi_ureg.h" -#include "util/u_tile.h" #include "util/u_draw_quad.h" #include "util/u_format.h" +#include "util/u_inlines.h" #include "util/u_math.h" -#include "program/prog_instruction.h" +#include "util/u_tile.h" #include "cso_cache/cso_context.h" @@ -96,7 +96,7 @@ is_passthrough_program(const struct gl_fragment_program *prog) * \return pointer to Gallium driver fragment shader */ static void * -combined_drawpix_fragment_program(GLcontext *ctx) +combined_drawpix_fragment_program(struct gl_context *ctx) { struct st_context *st = st_context(ctx); struct st_fragment_program *stfp; @@ -162,20 +162,27 @@ combined_drawpix_fragment_program(GLcontext *ctx) /** - * Create fragment shader that does a TEX() instruction to get a Z - * value, then writes to FRAG_RESULT_DEPTH. + * Create fragment shader that does a TEX() instruction to get a Z and/or + * stencil value value, then writes to FRAG_RESULT_DEPTH/FRAG_RESULT_STENCIL. + * Used for glDrawPixels(GL_DEPTH_COMPONENT / GL_STENCIL_INDEX). * Pass fragment color through as-is. * \return pointer to the Gallium driver fragment shader */ static void * -make_fragment_shader_z(struct st_context *st) +make_fragment_shader_z_stencil(struct st_context *st, GLboolean write_depth, + GLboolean write_stencil) { - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; struct gl_program *p; + struct st_fragment_program *stp; GLuint ic = 0; + const GLuint shaderIndex = write_depth * 2 + write_stencil; - if (st->drawpix.z_shader) { - return st->drawpix.z_shader->driver_shader; + assert(shaderIndex < Elements(st->drawpix.shaders)); + + if (st->drawpix.shaders[shaderIndex]) { + /* already have the proper shader */ + return st->drawpix.shaders[shaderIndex]->driver_shader; } /* @@ -185,7 +192,8 @@ make_fragment_shader_z(struct st_context *st) if (!p) return NULL; - p->NumInstructions = 3; + p->NumInstructions = write_depth ? 2 : 1; + p->NumInstructions += write_stencil ? 1 : 0; p->Instructions = _mesa_alloc_instructions(p->NumInstructions); if (!p->Instructions) { @@ -194,24 +202,31 @@ make_fragment_shader_z(struct st_context *st) } _mesa_init_instructions(p->Instructions, p->NumInstructions); - /* TEX result.depth, fragment.texcoord[0], texture[0], 2D; */ - p->Instructions[ic].Opcode = OPCODE_TEX; - p->Instructions[ic].DstReg.File = PROGRAM_OUTPUT; - p->Instructions[ic].DstReg.Index = FRAG_RESULT_DEPTH; - p->Instructions[ic].DstReg.WriteMask = WRITEMASK_Z; - p->Instructions[ic].SrcReg[0].File = PROGRAM_INPUT; - p->Instructions[ic].SrcReg[0].Index = FRAG_ATTRIB_TEX0; - p->Instructions[ic].TexSrcUnit = 0; - p->Instructions[ic].TexSrcTarget = TEXTURE_2D_INDEX; - ic++; - - /* MOV result.color, fragment.color */ - p->Instructions[ic].Opcode = OPCODE_MOV; - p->Instructions[ic].DstReg.File = PROGRAM_OUTPUT; - p->Instructions[ic].DstReg.Index = FRAG_RESULT_COLOR; - p->Instructions[ic].SrcReg[0].File = PROGRAM_INPUT; - p->Instructions[ic].SrcReg[0].Index = FRAG_ATTRIB_COL0; - ic++; + if (write_depth) { + /* TEX result.depth, fragment.texcoord[0], texture[0], 2D; */ + p->Instructions[ic].Opcode = OPCODE_TEX; + p->Instructions[ic].DstReg.File = PROGRAM_OUTPUT; + p->Instructions[ic].DstReg.Index = FRAG_RESULT_DEPTH; + p->Instructions[ic].DstReg.WriteMask = WRITEMASK_Z; + p->Instructions[ic].SrcReg[0].File = PROGRAM_INPUT; + p->Instructions[ic].SrcReg[0].Index = FRAG_ATTRIB_TEX0; + p->Instructions[ic].TexSrcUnit = 0; + p->Instructions[ic].TexSrcTarget = TEXTURE_2D_INDEX; + ic++; + } + + if (write_stencil) { + /* TEX result.stencil, fragment.texcoord[0], texture[0], 2D; */ + p->Instructions[ic].Opcode = OPCODE_TEX; + p->Instructions[ic].DstReg.File = PROGRAM_OUTPUT; + p->Instructions[ic].DstReg.Index = FRAG_RESULT_STENCIL; + p->Instructions[ic].DstReg.WriteMask = WRITEMASK_Y; + p->Instructions[ic].SrcReg[0].File = PROGRAM_INPUT; + p->Instructions[ic].SrcReg[0].Index = FRAG_ATTRIB_TEX0; + p->Instructions[ic].TexSrcUnit = 1; + p->Instructions[ic].TexSrcTarget = TEXTURE_2D_INDEX; + ic++; + } /* END; */ p->Instructions[ic++].Opcode = OPCODE_END; @@ -219,13 +234,24 @@ make_fragment_shader_z(struct st_context *st) assert(ic == p->NumInstructions); p->InputsRead = FRAG_BIT_TEX0 | FRAG_BIT_COL0; - p->OutputsWritten = (1 << FRAG_RESULT_COLOR) | (1 << FRAG_RESULT_DEPTH); - p->SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */ + p->OutputsWritten = 0; + if (write_depth) + p->OutputsWritten |= (1 << FRAG_RESULT_DEPTH); + if (write_stencil) + p->OutputsWritten |= (1 << FRAG_RESULT_STENCIL); + + p->SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */ + if (write_stencil) + p->SamplersUsed |= 1 << 1; + + stp = st_fragment_program((struct gl_fragment_program *) p); - st->drawpix.z_shader = (struct st_fragment_program *) p; - st_translate_fragment_program(st, st->drawpix.z_shader); + /* save the new shader */ + st->drawpix.shaders[shaderIndex] = stp; - return st->drawpix.z_shader->driver_shader; + st_translate_fragment_program(st, stp); + + return stp->driver_shader; } @@ -239,8 +265,7 @@ make_passthrough_vertex_shader(struct st_context *st, GLboolean passColor) { if (!st->drawpix.vert_shaders[passColor]) { - struct ureg_program *ureg = - ureg_create( TGSI_PROCESSOR_VERTEX ); + struct ureg_program *ureg = ureg_create( TGSI_PROCESSOR_VERTEX ); if (ureg == NULL) return NULL; @@ -320,7 +345,7 @@ make_texture(struct st_context *st, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels) { - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; struct pipe_context *pipe = st->pipe; gl_format mformat; struct pipe_resource *pt; @@ -330,7 +355,8 @@ make_texture(struct st_context *st, baseFormat = base_format(format); - mformat = st_ChooseTextureFormat(ctx, baseFormat, format, type); + mformat = st_ChooseTextureFormat_renderable(ctx, baseFormat, + format, type, GL_FALSE); assert(mformat); pipeFormat = st_mesa_format_to_pipe_format(mformat); @@ -405,7 +431,7 @@ make_texture(struct st_context *st, * \param invertTex if true, flip texcoords vertically */ static void -draw_quad(GLcontext *ctx, GLfloat x0, GLfloat y0, GLfloat z, +draw_quad(struct gl_context *ctx, GLfloat x0, GLfloat y0, GLfloat z, GLfloat x1, GLfloat y1, const GLfloat *color, GLboolean invertTex, GLfloat maxXcoord, GLfloat maxYcoord) { @@ -495,30 +521,34 @@ draw_quad(GLcontext *ctx, GLfloat x0, GLfloat y0, GLfloat z, static void -draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z, +draw_textured_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z, GLsizei width, GLsizei height, GLfloat zoomX, GLfloat zoomY, - struct pipe_sampler_view *sv, + struct pipe_sampler_view **sv, + int num_sampler_view, void *driver_vp, void *driver_fp, const GLfloat *color, - GLboolean invertTex) + GLboolean invertTex, + GLboolean write_depth, GLboolean write_stencil) { struct st_context *st = st_context(ctx); struct pipe_context *pipe = st->pipe; struct cso_context *cso = st->cso_context; GLfloat x0, y0, x1, y1; GLsizei maxSize; - boolean normalized = sv->texture->target != PIPE_TEXTURE_RECT; + boolean normalized = sv[0]->texture->target != PIPE_TEXTURE_RECT; /* limit checks */ /* XXX if DrawPixels image is larger than max texture size, break * it up into chunks. */ - maxSize = 1 << (pipe->screen->get_param(pipe->screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS) - 1); + maxSize = 1 << (pipe->screen->get_param(pipe->screen, + PIPE_CAP_MAX_TEXTURE_2D_LEVELS) - 1); assert(width <= maxSize); assert(height <= maxSize); + cso_save_depth_stencil_alpha(cso); cso_save_rasterizer(cso); cso_save_viewport(cso); cso_save_samplers(cso); @@ -536,6 +566,24 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z, cso_set_rasterizer(cso, &rasterizer); } + if (write_depth || write_stencil) + { + struct pipe_depth_stencil_alpha_state dsa; + memset(&dsa, 0, sizeof(dsa)); + if (write_depth) { + dsa.depth.enabled = 1; + dsa.depth.func = PIPE_FUNC_ALWAYS; + dsa.depth.writemask = 1; + } + if (write_stencil) { + dsa.stencil[0].enabled = 1; + dsa.stencil[0].func = PIPE_FUNC_ALWAYS; + dsa.stencil[0].writemask = 0xff; + dsa.stencil[0].zpass_op = PIPE_STENCIL_OP_REPLACE; + } + cso_set_depth_stencil_alpha(cso, &dsa); + } + /* fragment shader state: TEX lookup program */ cso_set_fragment_shader_handle(cso, driver_fp); @@ -556,7 +604,7 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z, sampler.normalized_coords = normalized; cso_single_sampler(cso, 0, &sampler); - if (st->pixel_xfer.pixelmap_enabled) { + if (num_sampler_view > 1) { cso_single_sampler(cso, 1, &sampler); } cso_single_sampler_done(cso); @@ -581,15 +629,7 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z, cso_set_vertex_elements(cso, 3, st->velems_util_draw); /* texture state: */ - if (st->pixel_xfer.pixelmap_enabled) { - struct pipe_sampler_view *sampler_views[2]; - sampler_views[0] = sv; - sampler_views[1] = st->pixel_xfer.pixelmap_sampler_view; - cso_set_fragment_sampler_views(cso, 2, sampler_views); - } - else { - cso_set_fragment_sampler_views(cso, 1, &sv); - } + cso_set_fragment_sampler_views(cso, num_sampler_view, sv); /* Compute Gallium window coords (y=0=top) with pixel zoom. * Recall that these coords are transformed by the current @@ -609,10 +649,11 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z, z = z * 2.0 - 1.0; draw_quad(ctx, x0, y0, z, x1, y1, color, invertTex, - normalized ? ((GLfloat) width / sv->texture->width0) : (GLfloat)width, - normalized ? ((GLfloat) height / sv->texture->height0) : (GLfloat)height); + normalized ? ((GLfloat) width / sv[0]->texture->width0) : (GLfloat)width, + normalized ? ((GLfloat) height / sv[0]->texture->height0) : (GLfloat)height); /* restore state */ + cso_restore_depth_stencil_alpha(cso); cso_restore_rasterizer(cso); cso_restore_viewport(cso); cso_restore_samplers(cso); @@ -623,8 +664,12 @@ draw_textured_quad(GLcontext *ctx, GLint x, GLint y, GLfloat z, } +/** + * Software fallback to do glDrawPixels(GL_STENCIL_INDEX) when we + * can't use a fragment shader to write stencil values. + */ static void -draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y, +draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels) @@ -655,7 +700,8 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y, } if(format != GL_DEPTH_STENCIL && - util_format_get_component_bits(strb->format, UTIL_FORMAT_COLORSPACE_ZS, 0) != 0) + util_format_get_component_bits(strb->format, + UTIL_FORMAT_COLORSPACE_ZS, 0) != 0) usage = PIPE_TRANSFER_READ_WRITE; else usage = PIPE_TRANSFER_WRITE; @@ -773,19 +819,44 @@ draw_stencil_pixels(GLcontext *ctx, GLint x, GLint y, * Called via ctx->Driver.DrawPixels() */ static void -st_DrawPixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, +st_DrawPixels(struct gl_context *ctx, GLint x, GLint y, + GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels) { void *driver_vp, *driver_fp; struct st_context *st = st_context(ctx); const GLfloat *color; - - if (format == GL_STENCIL_INDEX || - format == GL_DEPTH_STENCIL) { - draw_stencil_pixels(ctx, x, y, width, height, format, type, - unpack, pixels); - return; + struct pipe_context *pipe = st->pipe; + GLboolean write_stencil = GL_FALSE, write_depth = GL_FALSE; + struct pipe_sampler_view *sv[2]; + int num_sampler_view = 1; + enum pipe_format stencil_format = PIPE_FORMAT_NONE; + + if (format == GL_DEPTH_STENCIL) + write_stencil = write_depth = GL_TRUE; + else if (format == GL_STENCIL_INDEX) + write_stencil = GL_TRUE; + else if (format == GL_DEPTH_COMPONENT) + write_depth = GL_TRUE; + + if (write_stencil) { + enum pipe_format tex_format; + /* can we write to stencil if not fallback */ + if (!pipe->screen->get_param(pipe->screen, PIPE_CAP_SHADER_STENCIL_EXPORT)) + goto stencil_fallback; + + tex_format = st_choose_format(st->pipe->screen, base_format(format), + PIPE_TEXTURE_2D, + 0, PIPE_BIND_SAMPLER_VIEW); + if (tex_format == PIPE_FORMAT_Z24_UNORM_S8_USCALED) + stencil_format = PIPE_FORMAT_X24S8_USCALED; + else if (tex_format == PIPE_FORMAT_S8_USCALED_Z24_UNORM) + stencil_format = PIPE_FORMAT_S8X24_USCALED; + else + stencil_format = PIPE_FORMAT_S8_USCALED; + if (stencil_format == PIPE_FORMAT_NONE) + goto stencil_fallback; } /* Mesa state should be up to date by now */ @@ -793,8 +864,8 @@ st_DrawPixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, st_validate_state(st); - if (format == GL_DEPTH_COMPONENT) { - driver_fp = make_fragment_shader_z(st); + if (write_depth || write_stencil) { + driver_fp = make_fragment_shader_z_stencil(st, write_depth, write_stencil); driver_vp = make_passthrough_vertex_shader(st, GL_TRUE); color = ctx->Current.RasterColor; } @@ -802,6 +873,10 @@ st_DrawPixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, driver_fp = combined_drawpix_fragment_program(ctx); driver_vp = make_passthrough_vertex_shader(st, GL_FALSE); color = NULL; + if (st->pixel_xfer.pixelmap_enabled) { + sv[1] = st->pixel_xfer.pixelmap_sampler_view; + num_sampler_view++; + } } /* draw with textured quad */ @@ -809,26 +884,44 @@ st_DrawPixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, struct pipe_resource *pt = make_texture(st, width, height, format, type, unpack, pixels); if (pt) { - struct pipe_sampler_view *sv = st_create_texture_sampler_view(st->pipe, pt); + sv[0] = st_create_texture_sampler_view(st->pipe, pt); + + if (sv[0]) { + if (write_stencil) { + sv[1] = st_create_texture_sampler_view_format(st->pipe, pt, + stencil_format); + num_sampler_view++; + } - if (sv) { draw_textured_quad(ctx, x, y, ctx->Current.RasterPos[2], - width, height, ctx->Pixel.ZoomX, ctx->Pixel.ZoomY, + width, height, + ctx->Pixel.ZoomX, ctx->Pixel.ZoomY, sv, - driver_vp, + num_sampler_view, + driver_vp, driver_fp, - color, GL_FALSE); - pipe_sampler_view_reference(&sv, NULL); + color, GL_FALSE, write_depth, write_stencil); + pipe_sampler_view_reference(&sv[0], NULL); + if (num_sampler_view > 1) + pipe_sampler_view_reference(&sv[1], NULL); } pipe_resource_reference(&pt, NULL); } } + return; + +stencil_fallback: + draw_stencil_pixels(ctx, x, y, width, height, format, type, + unpack, pixels); } +/** + * Software fallback for glCopyPixels(GL_STENCIL). + */ static void -copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy, +copy_stencil_pixels(struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty) { @@ -858,7 +951,8 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &ctx->DefaultPacking, buffer); - if(util_format_get_component_bits(rbDraw->format, UTIL_FORMAT_COLORSPACE_ZS, 0) != 0) + if (util_format_get_component_bits(rbDraw->format, + UTIL_FORMAT_COLORSPACE_ZS, 0) != 0) usage = PIPE_TRANSFER_READ_WRITE; else usage = PIPE_TRANSFER_WRITE; @@ -935,7 +1029,7 @@ copy_stencil_pixels(GLcontext *ctx, GLint srcx, GLint srcy, static void -st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, +st_CopyPixels(struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type) { @@ -945,7 +1039,8 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, struct st_renderbuffer *rbRead; void *driver_vp, *driver_fp; struct pipe_resource *pt; - struct pipe_sampler_view *sv; + struct pipe_sampler_view *sv[2]; + int num_sampler_view = 1; GLfloat *color; enum pipe_format srcFormat, texFormat; GLboolean invertTex = GL_FALSE; @@ -966,12 +1061,16 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, color = NULL; driver_fp = combined_drawpix_fragment_program(ctx); driver_vp = make_passthrough_vertex_shader(st, GL_FALSE); + if (st->pixel_xfer.pixelmap_enabled) { + sv[1] = st->pixel_xfer.pixelmap_sampler_view; + num_sampler_view++; + } } else { assert(type == GL_DEPTH); rbRead = st_renderbuffer(ctx->ReadBuffer->_DepthBuffer); color = ctx->Current.Attrib[VERT_ATTRIB_COLOR0]; - driver_fp = make_fragment_shader_z(st); + driver_fp = make_fragment_shader_z_stencil(st, GL_TRUE, GL_FALSE); driver_vp = make_passthrough_vertex_shader(st, GL_TRUE); } @@ -986,7 +1085,8 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, srcFormat = rbRead->texture->format; - if (screen->is_format_supported(screen, srcFormat, st->internal_target, sample_count, + if (screen->is_format_supported(screen, srcFormat, st->internal_target, + sample_count, PIPE_BIND_SAMPLER_VIEW, 0)) { texFormat = srcFormat; } @@ -1031,8 +1131,8 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, if (!pt) return; - sv = st_create_texture_sampler_view(st->pipe, pt); - if (!sv) { + sv[0] = st_create_texture_sampler_view(st->pipe, pt); + if (!sv[0]) { pipe_resource_reference(&pt, NULL); return; } @@ -1102,13 +1202,14 @@ st_CopyPixels(GLcontext *ctx, GLint srcx, GLint srcy, */ draw_textured_quad(ctx, dstx, dsty, ctx->Current.RasterPos[2], width, height, ctx->Pixel.ZoomX, ctx->Pixel.ZoomY, - sv, + sv, + num_sampler_view, driver_vp, driver_fp, - color, invertTex); + color, invertTex, GL_FALSE, GL_FALSE); pipe_resource_reference(&pt, NULL); - pipe_sampler_view_reference(&sv, NULL); + pipe_sampler_view_reference(&sv[0], NULL); } @@ -1123,7 +1224,13 @@ void st_init_drawpixels_functions(struct dd_function_table *functions) void st_destroy_drawpix(struct st_context *st) { - st_reference_fragprog(st, &st->drawpix.z_shader, NULL); + GLuint i; + + for (i = 0; i < Elements(st->drawpix.shaders); i++) { + if (st->drawpix.shaders[i]) + st_reference_fragprog(st, &st->drawpix.shaders[i], NULL); + } + st_reference_fragprog(st, &st->pixel_xfer.combined_prog, NULL); if (st->drawpix.vert_shaders[0]) ureg_free_tokens(st->drawpix.vert_shaders[0]); diff --git a/src/mesa/state_tracker/st_cb_drawtex.c b/src/mesa/state_tracker/st_cb_drawtex.c index c99a8d792e..6cad7d3216 100644 --- a/src/mesa/state_tracker/st_cb_drawtex.c +++ b/src/mesa/state_tracker/st_cb_drawtex.c @@ -100,7 +100,7 @@ lookup_shader(struct pipe_context *pipe, } static void -st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, +st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) { struct st_context *st = ctx->st; diff --git a/src/mesa/state_tracker/st_cb_eglimage.c b/src/mesa/state_tracker/st_cb_eglimage.c index 3145416383..298f8a5b12 100644 --- a/src/mesa/state_tracker/st_cb_eglimage.c +++ b/src/mesa/state_tracker/st_cb_eglimage.c @@ -71,7 +71,7 @@ st_pipe_format_to_base_format(enum pipe_format format) } static void -st_egl_image_target_renderbuffer_storage(GLcontext *ctx, +st_egl_image_target_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, GLeglImageOES image_handle) { @@ -98,7 +98,7 @@ st_egl_image_target_renderbuffer_storage(GLcontext *ctx, } static void -st_bind_surface(GLcontext *ctx, GLenum target, +st_bind_surface(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, struct gl_texture_image *texImage, struct pipe_surface *ps) @@ -139,7 +139,7 @@ st_bind_surface(GLcontext *ctx, GLenum target, } static void -st_egl_image_target_texture_2d(GLcontext *ctx, GLenum target, +st_egl_image_target_texture_2d(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLeglImageOES image_handle) diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c index 71bd4729e0..9425f07aee 100644 --- a/src/mesa/state_tracker/st_cb_fbo.c +++ b/src/mesa/state_tracker/st_cb_fbo.c @@ -60,7 +60,7 @@ * during window resize. */ static GLboolean -st_renderbuffer_alloc_storage(GLcontext * ctx, struct gl_renderbuffer *rb, +st_renderbuffer_alloc_storage(struct gl_context * ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) { @@ -164,7 +164,7 @@ st_renderbuffer_delete(struct gl_renderbuffer *rb) * gl_renderbuffer::GetPointer() */ static void * -null_get_pointer(GLcontext * ctx, struct gl_renderbuffer *rb, +null_get_pointer(struct gl_context * ctx, struct gl_renderbuffer *rb, GLint x, GLint y) { /* By returning NULL we force all software rendering to go through @@ -181,7 +181,7 @@ null_get_pointer(GLcontext * ctx, struct gl_renderbuffer *rb, * Called via ctx->Driver.NewFramebuffer() */ static struct gl_framebuffer * -st_new_framebuffer(GLcontext *ctx, GLuint name) +st_new_framebuffer(struct gl_context *ctx, GLuint name) { /* XXX not sure we need to subclass gl_framebuffer for pipe */ return _mesa_new_framebuffer(ctx, name); @@ -192,7 +192,7 @@ st_new_framebuffer(GLcontext *ctx, GLuint name) * Called via ctx->Driver.NewRenderbuffer() */ static struct gl_renderbuffer * -st_new_renderbuffer(GLcontext *ctx, GLuint name) +st_new_renderbuffer(struct gl_context *ctx, GLuint name) { struct st_renderbuffer *strb = ST_CALLOC_STRUCT(st_renderbuffer); if (strb) { @@ -260,6 +260,18 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw) case PIPE_FORMAT_R16G16B16A16_SNORM: strb->Base.InternalFormat = GL_RGBA16; break; + case PIPE_FORMAT_R8_UNORM: + strb->Base.InternalFormat = GL_R8; + break; + case PIPE_FORMAT_R8G8_UNORM: + strb->Base.InternalFormat = GL_RG8; + break; + case PIPE_FORMAT_R16_UNORM: + strb->Base.InternalFormat = GL_R16; + break; + case PIPE_FORMAT_R16G16_UNORM: + strb->Base.InternalFormat = GL_RG16; + break; default: _mesa_problem(NULL, "Unexpected format in st_new_renderbuffer_fb"); @@ -285,7 +297,7 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw) * Called via ctx->Driver.BindFramebufferEXT(). */ static void -st_bind_framebuffer(GLcontext *ctx, GLenum target, +st_bind_framebuffer(struct gl_context *ctx, GLenum target, struct gl_framebuffer *fb, struct gl_framebuffer *fbread) { @@ -295,7 +307,7 @@ st_bind_framebuffer(GLcontext *ctx, GLenum target, * Called by ctx->Driver.FramebufferRenderbuffer */ static void -st_framebuffer_renderbuffer(GLcontext *ctx, +st_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb) @@ -309,7 +321,7 @@ st_framebuffer_renderbuffer(GLcontext *ctx, * Called by ctx->Driver.RenderTexture */ static void -st_render_texture(GLcontext *ctx, +st_render_texture(struct gl_context *ctx, struct gl_framebuffer *fb, struct gl_renderbuffer_attachment *att) { @@ -399,7 +411,7 @@ st_render_texture(GLcontext *ctx, * Called via ctx->Driver.FinishRenderTexture. */ static void -st_finish_render_texture(GLcontext *ctx, +st_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att) { struct st_context *st = st_context(ctx); @@ -478,7 +490,7 @@ st_is_depth_stencil_combined(const struct gl_renderbuffer_attachment *depth, * For Gallium we only supports combined Z+stencil, not separate buffers. */ static void -st_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) +st_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb) { struct st_context *st = st_context(ctx); struct pipe_screen *screen = st->pipe->screen; @@ -532,10 +544,10 @@ st_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb) * Called via glDrawBuffer. */ static void -st_DrawBuffers(GLcontext *ctx, GLsizei count, const GLenum *buffers) +st_DrawBuffers(struct gl_context *ctx, GLsizei count, const GLenum *buffers) { struct st_context *st = st_context(ctx); - GLframebuffer *fb = ctx->DrawBuffer; + struct gl_framebuffer *fb = ctx->DrawBuffer; GLuint i; (void) count; @@ -553,10 +565,10 @@ st_DrawBuffers(GLcontext *ctx, GLsizei count, const GLenum *buffers) * Called via glReadBuffer. */ static void -st_ReadBuffer(GLcontext *ctx, GLenum buffer) +st_ReadBuffer(struct gl_context *ctx, GLenum buffer) { struct st_context *st = st_context(ctx); - GLframebuffer *fb = ctx->ReadBuffer; + struct gl_framebuffer *fb = ctx->ReadBuffer; (void) buffer; diff --git a/src/mesa/state_tracker/st_cb_feedback.c b/src/mesa/state_tracker/st_cb_feedback.c index e57730b5ec..5c01856f03 100644 --- a/src/mesa/state_tracker/st_cb_feedback.c +++ b/src/mesa/state_tracker/st_cb_feedback.c @@ -62,7 +62,7 @@ struct feedback_stage { struct draw_stage stage; /**< Base class */ - GLcontext *ctx; /**< Rendering context */ + struct gl_context *ctx; /**< Rendering context */ GLboolean reset_stipple_counter; }; @@ -79,7 +79,7 @@ feedback_stage( struct draw_stage *stage ) static void -feedback_vertex(GLcontext *ctx, const struct draw_context *draw, +feedback_vertex(struct gl_context *ctx, const struct draw_context *draw, const struct vertex_header *v) { const struct st_context *st = st_context(ctx); @@ -179,7 +179,7 @@ feedback_destroy( struct draw_stage *stage ) * Create GL feedback drawing stage. */ static struct draw_stage * -draw_glfeedback_stage(GLcontext *ctx, struct draw_context *draw) +draw_glfeedback_stage(struct gl_context *ctx, struct draw_context *draw) { struct feedback_stage *fs = ST_CALLOC_STRUCT(feedback_stage); @@ -252,7 +252,7 @@ select_destroy( struct draw_stage *stage ) * Create GL selection mode drawing stage. */ static struct draw_stage * -draw_glselect_stage(GLcontext *ctx, struct draw_context *draw) +draw_glselect_stage(struct gl_context *ctx, struct draw_context *draw) { struct feedback_stage *fs = ST_CALLOC_STRUCT(feedback_stage); @@ -271,7 +271,7 @@ draw_glselect_stage(GLcontext *ctx, struct draw_context *draw) static void -st_RenderMode(GLcontext *ctx, GLenum newMode ) +st_RenderMode(struct gl_context *ctx, GLenum newMode ) { struct st_context *st = st_context(ctx); struct draw_context *draw = st->draw; diff --git a/src/mesa/state_tracker/st_cb_flush.c b/src/mesa/state_tracker/st_cb_flush.c index 8c9959f954..5a2343d3ae 100644 --- a/src/mesa/state_tracker/st_cb_flush.c +++ b/src/mesa/state_tracker/st_cb_flush.c @@ -51,7 +51,7 @@ static INLINE GLboolean is_front_buffer_dirty(struct st_context *st) { - GLframebuffer *fb = st->ctx->DrawBuffer; + struct gl_framebuffer *fb = st->ctx->DrawBuffer; struct st_renderbuffer *strb = st_renderbuffer(fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer); return strb && strb->defined; @@ -64,7 +64,7 @@ is_front_buffer_dirty(struct st_context *st) static void display_front_buffer(struct st_context *st) { - GLframebuffer *fb = st->ctx->DrawBuffer; + struct gl_framebuffer *fb = st->ctx->DrawBuffer; struct st_renderbuffer *strb = st_renderbuffer(fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer); @@ -113,7 +113,7 @@ void st_finish( struct st_context *st ) /** * Called via ctx->Driver.Flush() */ -static void st_glFlush(GLcontext *ctx) +static void st_glFlush(struct gl_context *ctx) { struct st_context *st = st_context(ctx); @@ -133,7 +133,7 @@ static void st_glFlush(GLcontext *ctx) /** * Called via ctx->Driver.Finish() */ -static void st_glFinish(GLcontext *ctx) +static void st_glFinish(struct gl_context *ctx) { struct st_context *st = st_context(ctx); diff --git a/src/mesa/state_tracker/st_cb_program.c b/src/mesa/state_tracker/st_cb_program.c index 6aa7e79af9..4d83fcc6cc 100644 --- a/src/mesa/state_tracker/st_cb_program.c +++ b/src/mesa/state_tracker/st_cb_program.c @@ -53,7 +53,7 @@ static GLuint SerialNo = 1; * Called via ctx->Driver.BindProgram() to bind an ARB vertex or * fragment program. */ -static void st_bind_program( GLcontext *ctx, +static void st_bind_program( struct gl_context *ctx, GLenum target, struct gl_program *prog ) { @@ -77,7 +77,7 @@ static void st_bind_program( GLcontext *ctx, * Called via ctx->Driver.UseProgram() to bind a linked GLSL program * (vertex shader + fragment shader). */ -static void st_use_program( GLcontext *ctx, struct gl_shader_program *shProg) +static void st_use_program( struct gl_context *ctx, struct gl_shader_program *shProg) { struct st_context *st = st_context(ctx); @@ -92,7 +92,7 @@ static void st_use_program( GLcontext *ctx, struct gl_shader_program *shProg) * Called via ctx->Driver.NewProgram() to allocate a new vertex or * fragment program. */ -static struct gl_program *st_new_program( GLcontext *ctx, +static struct gl_program *st_new_program( struct gl_context *ctx, GLenum target, GLuint id ) { @@ -139,7 +139,7 @@ static struct gl_program *st_new_program( GLcontext *ctx, void -st_delete_program(GLcontext *ctx, struct gl_program *prog) +st_delete_program(struct gl_context *ctx, struct gl_program *prog) { struct st_context *st = st_context(ctx); @@ -195,7 +195,7 @@ st_delete_program(GLcontext *ctx, struct gl_program *prog) } -static GLboolean st_is_program_native( GLcontext *ctx, +static GLboolean st_is_program_native( struct gl_context *ctx, GLenum target, struct gl_program *prog ) { @@ -203,7 +203,7 @@ static GLboolean st_is_program_native( GLcontext *ctx, } -static GLboolean st_program_string_notify( GLcontext *ctx, +static GLboolean st_program_string_notify( struct gl_context *ctx, GLenum target, struct gl_program *prog ) { diff --git a/src/mesa/state_tracker/st_cb_program.h b/src/mesa/state_tracker/st_cb_program.h index 0fd179ef3d..004afb6d81 100644 --- a/src/mesa/state_tracker/st_cb_program.h +++ b/src/mesa/state_tracker/st_cb_program.h @@ -37,7 +37,7 @@ extern void st_init_program_functions(struct dd_function_table *functions); extern void -st_delete_program(GLcontext *ctx, struct gl_program *prog); +st_delete_program(struct gl_context *ctx, struct gl_program *prog); #endif diff --git a/src/mesa/state_tracker/st_cb_queryobj.c b/src/mesa/state_tracker/st_cb_queryobj.c index e423d9d8a5..724464a33f 100644 --- a/src/mesa/state_tracker/st_cb_queryobj.c +++ b/src/mesa/state_tracker/st_cb_queryobj.c @@ -46,7 +46,7 @@ #if FEATURE_queryobj static struct gl_query_object * -st_NewQueryObject(GLcontext *ctx, GLuint id) +st_NewQueryObject(struct gl_context *ctx, GLuint id) { struct st_query_object *stq = ST_CALLOC_STRUCT(st_query_object); if (stq) { @@ -62,7 +62,7 @@ st_NewQueryObject(GLcontext *ctx, GLuint id) static void -st_DeleteQuery(GLcontext *ctx, struct gl_query_object *q) +st_DeleteQuery(struct gl_context *ctx, struct gl_query_object *q) { struct pipe_context *pipe = st_context(ctx)->pipe; struct st_query_object *stq = st_query_object(q); @@ -77,7 +77,7 @@ st_DeleteQuery(GLcontext *ctx, struct gl_query_object *q) static void -st_BeginQuery(GLcontext *ctx, struct gl_query_object *q) +st_BeginQuery(struct gl_context *ctx, struct gl_query_object *q) { struct pipe_context *pipe = st_context(ctx)->pipe; struct st_query_object *stq = st_query_object(q); @@ -121,7 +121,7 @@ st_BeginQuery(GLcontext *ctx, struct gl_query_object *q) static void -st_EndQuery(GLcontext *ctx, struct gl_query_object *q) +st_EndQuery(struct gl_context *ctx, struct gl_query_object *q) { struct pipe_context *pipe = st_context(ctx)->pipe; struct st_query_object *stq = st_query_object(q); @@ -131,7 +131,7 @@ st_EndQuery(GLcontext *ctx, struct gl_query_object *q) static void -st_WaitQuery(GLcontext *ctx, struct gl_query_object *q) +st_WaitQuery(struct gl_context *ctx, struct gl_query_object *q) { struct pipe_context *pipe = st_context(ctx)->pipe; struct st_query_object *stq = st_query_object(q); @@ -153,7 +153,7 @@ st_WaitQuery(GLcontext *ctx, struct gl_query_object *q) static void -st_CheckQuery(GLcontext *ctx, struct gl_query_object *q) +st_CheckQuery(struct gl_context *ctx, struct gl_query_object *q) { struct pipe_context *pipe = st_context(ctx)->pipe; struct st_query_object *stq = st_query_object(q); diff --git a/src/mesa/state_tracker/st_cb_rasterpos.c b/src/mesa/state_tracker/st_cb_rasterpos.c index 7b2eb8012d..15a4f602d1 100644 --- a/src/mesa/state_tracker/st_cb_rasterpos.c +++ b/src/mesa/state_tracker/st_cb_rasterpos.c @@ -44,7 +44,6 @@ #include "st_atom.h" #include "st_draw.h" #include "st_cb_rasterpos.h" -#include "st_draw.h" #include "draw/draw_context.h" #include "draw/draw_pipe.h" #include "vbo/vbo.h" @@ -58,7 +57,7 @@ struct rastpos_stage { struct draw_stage stage; /**< Base class */ - GLcontext *ctx; /**< Rendering context */ + struct gl_context *ctx; /**< Rendering context */ /* vertex attrib info we can setup once and re-use */ struct gl_client_array array[VERT_ATTRIB_MAX]; @@ -111,7 +110,7 @@ rastpos_destroy(struct draw_stage *stage) * else copy the current attrib. */ static void -update_attrib(GLcontext *ctx, const GLuint *outputMapping, +update_attrib(struct gl_context *ctx, const GLuint *outputMapping, const struct vertex_header *vert, GLfloat *dest, GLuint result, GLuint defaultAttrib) @@ -133,7 +132,7 @@ static void rastpos_point(struct draw_stage *stage, struct prim_header *prim) { struct rastpos_stage *rs = rastpos_stage(stage); - GLcontext *ctx = rs->ctx; + struct gl_context *ctx = rs->ctx; struct st_context *st = st_context(ctx); const GLfloat height = (GLfloat) ctx->DrawBuffer->Height; const GLuint *outputMapping = st->vertex_result_to_slot; @@ -178,7 +177,7 @@ rastpos_point(struct draw_stage *stage, struct prim_header *prim) * Create rasterpos "drawing" stage. */ static struct rastpos_stage * -new_draw_rastpos_stage(GLcontext *ctx, struct draw_context *draw) +new_draw_rastpos_stage(struct gl_context *ctx, struct draw_context *draw) { struct rastpos_stage *rs = ST_CALLOC_STRUCT(rastpos_stage); GLuint i; @@ -220,7 +219,7 @@ new_draw_rastpos_stage(GLcontext *ctx, struct draw_context *draw) static void -st_RasterPos(GLcontext *ctx, const GLfloat v[4]) +st_RasterPos(struct gl_context *ctx, const GLfloat v[4]) { struct st_context *st = st_context(ctx); struct draw_context *draw = st->draw; diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index d9e9a527f6..0aad733e34 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.c +++ b/src/mesa/state_tracker/st_cb_readpixels.c @@ -55,7 +55,7 @@ * For color/depth we use get_tile(). For stencil, map the stencil buffer. */ void -st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y, +st_read_stencil_pixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, @@ -174,7 +174,7 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y, * commands. */ struct st_renderbuffer * -st_get_color_read_renderbuffer(GLcontext *ctx) +st_get_color_read_renderbuffer(struct gl_context *ctx) { struct gl_framebuffer *fb = ctx->ReadBuffer; struct st_renderbuffer *strb = @@ -189,7 +189,7 @@ st_get_color_read_renderbuffer(GLcontext *ctx) * \return GL_TRUE for success, GL_FALSE for failure */ static GLboolean -st_fast_readpixels(GLcontext *ctx, struct st_renderbuffer *strb, +st_fast_readpixels(struct gl_context *ctx, struct st_renderbuffer *strb, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, @@ -320,7 +320,7 @@ st_fast_readpixels(GLcontext *ctx, struct st_renderbuffer *strb, * Image transfer ops are done in software too. */ static void -st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, +st_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *pack, GLvoid *dest) diff --git a/src/mesa/state_tracker/st_cb_readpixels.h b/src/mesa/state_tracker/st_cb_readpixels.h index 9e1f7b4925..83c9b659e3 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.h +++ b/src/mesa/state_tracker/st_cb_readpixels.h @@ -34,10 +34,10 @@ struct dd_function_table; extern struct st_renderbuffer * -st_get_color_read_renderbuffer(GLcontext *ctx); +st_get_color_read_renderbuffer(struct gl_context *ctx); extern void -st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y, +st_read_stencil_pixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, diff --git a/src/mesa/state_tracker/st_cb_strings.c b/src/mesa/state_tracker/st_cb_strings.c index 0fcb427f30..21323798fd 100644 --- a/src/mesa/state_tracker/st_cb_strings.c +++ b/src/mesa/state_tracker/st_cb_strings.c @@ -42,7 +42,7 @@ #define ST_VERSION_STRING "0.4" static const GLubyte * -st_get_string(GLcontext * ctx, GLenum name) +st_get_string(struct gl_context * ctx, GLenum name) { struct st_context *st = st_context(ctx); struct pipe_screen *screen = st->pipe->screen; diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index 9d232d417e..062dd34865 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -94,7 +94,7 @@ gl_target_to_pipe(GLenum target) /** called via ctx->Driver.NewTextureImage() */ static struct gl_texture_image * -st_NewTextureImage(GLcontext * ctx) +st_NewTextureImage(struct gl_context * ctx) { DBG("%s\n", __FUNCTION__); (void) ctx; @@ -104,7 +104,7 @@ st_NewTextureImage(GLcontext * ctx) /** called via ctx->Driver.NewTextureObject() */ static struct gl_texture_object * -st_NewTextureObject(GLcontext * ctx, GLuint name, GLenum target) +st_NewTextureObject(struct gl_context * ctx, GLuint name, GLenum target) { struct st_texture_object *obj = ST_CALLOC_STRUCT(st_texture_object); @@ -116,7 +116,7 @@ st_NewTextureObject(GLcontext * ctx, GLuint name, GLenum target) /** called via ctx->Driver.DeleteTextureObject() */ static void -st_DeleteTextureObject(GLcontext *ctx, +st_DeleteTextureObject(struct gl_context *ctx, struct gl_texture_object *texObj) { struct st_context *st = st_context(ctx); @@ -140,7 +140,7 @@ st_DeleteTextureObject(GLcontext *ctx, /** called via ctx->Driver.FreeTexImageData() */ static void -st_FreeTextureImageData(GLcontext * ctx, struct gl_texture_image *texImage) +st_FreeTextureImageData(struct gl_context * ctx, struct gl_texture_image *texImage) { struct st_texture_image *stImage = st_texture_image(texImage); @@ -411,7 +411,7 @@ strip_texture_border(GLint border, * \return GL_TRUE for success, GL_FALSE for failure */ static GLboolean -compress_with_blit(GLcontext * ctx, +compress_with_blit(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, @@ -522,7 +522,7 @@ compress_with_blit(GLcontext * ctx, * Do glTexImage1/2/3D(). */ static void -st_TexImage(GLcontext * ctx, +st_TexImage(struct gl_context * ctx, GLint dims, GLenum target, GLint level, GLint internalFormat, @@ -779,7 +779,7 @@ done: static void -st_TexImage3D(GLcontext * ctx, +st_TexImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint depth, @@ -796,7 +796,7 @@ st_TexImage3D(GLcontext * ctx, static void -st_TexImage2D(GLcontext * ctx, +st_TexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, @@ -811,7 +811,7 @@ st_TexImage2D(GLcontext * ctx, static void -st_TexImage1D(GLcontext * ctx, +st_TexImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint border, @@ -826,7 +826,7 @@ st_TexImage1D(GLcontext * ctx, static void -st_CompressedTexImage2D(GLcontext *ctx, GLenum target, GLint level, +st_CompressedTexImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLsizei imageSize, const GLvoid *data, @@ -844,7 +844,7 @@ st_CompressedTexImage2D(GLcontext *ctx, GLenum target, GLint level, * a textured quad. Store the results in the user's buffer. */ static void -decompress_with_blit(GLcontext * ctx, GLenum target, GLint level, +decompress_with_blit(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -940,7 +940,7 @@ decompress_with_blit(GLcontext * ctx, GLenum target, GLint level, * then unmap it. */ static void -st_get_tex_image(GLcontext * ctx, GLenum target, GLint level, +st_get_tex_image(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage, GLboolean compressed_dst) @@ -1031,7 +1031,7 @@ st_get_tex_image(GLcontext * ctx, GLenum target, GLint level, static void -st_GetTexImage(GLcontext * ctx, GLenum target, GLint level, +st_GetTexImage(struct gl_context * ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -1042,7 +1042,7 @@ st_GetTexImage(GLcontext * ctx, GLenum target, GLint level, static void -st_GetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level, +st_GetCompressedTexImage(struct gl_context *ctx, GLenum target, GLint level, GLvoid *pixels, struct gl_texture_object *texObj, struct gl_texture_image *texImage) @@ -1054,7 +1054,7 @@ st_GetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level, static void -st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level, +st_TexSubimage(struct gl_context *ctx, GLint dims, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint width, GLint height, GLint depth, GLenum format, GLenum type, const void *pixels, @@ -1160,7 +1160,7 @@ done: static void -st_TexSubImage3D(GLcontext *ctx, GLenum target, GLint level, +st_TexSubImage3D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels, @@ -1175,7 +1175,7 @@ st_TexSubImage3D(GLcontext *ctx, GLenum target, GLint level, static void -st_TexSubImage2D(GLcontext *ctx, GLenum target, GLint level, +st_TexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels, @@ -1190,7 +1190,7 @@ st_TexSubImage2D(GLcontext *ctx, GLenum target, GLint level, static void -st_TexSubImage1D(GLcontext *ctx, GLenum target, GLint level, +st_TexSubImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels, const struct gl_pixelstore_attrib *packing, @@ -1203,7 +1203,7 @@ st_TexSubImage1D(GLcontext *ctx, GLenum target, GLint level, static void -st_CompressedTexSubImage1D(GLcontext *ctx, GLenum target, GLint level, +st_CompressedTexSubImage1D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data, @@ -1215,7 +1215,7 @@ st_CompressedTexSubImage1D(GLcontext *ctx, GLenum target, GLint level, static void -st_CompressedTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, +st_CompressedTexSubImage2D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLint height, GLenum format, @@ -1270,7 +1270,7 @@ st_CompressedTexSubImage2D(GLcontext *ctx, GLenum target, GLint level, static void -st_CompressedTexSubImage3D(GLcontext *ctx, GLenum target, GLint level, +st_CompressedTexSubImage3D(struct gl_context *ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLint height, GLint depth, GLenum format, @@ -1291,7 +1291,7 @@ st_CompressedTexSubImage3D(GLcontext *ctx, GLenum target, GLint level, * Note: srcY=0=TOP of renderbuffer */ static void -fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level, +fallback_copy_texsubimage(struct gl_context *ctx, GLenum target, GLint level, struct st_renderbuffer *strb, struct st_texture_image *stImage, GLenum baseFormat, @@ -1416,7 +1416,7 @@ fallback_copy_texsubimage(GLcontext *ctx, GLenum target, GLint level, * If the src/dest are incompatible, return 0. */ static unsigned -compatible_src_dst_formats(GLcontext *ctx, +compatible_src_dst_formats(struct gl_context *ctx, const struct gl_renderbuffer *src, const struct gl_texture_image *dst) { @@ -1483,7 +1483,7 @@ compatible_src_dst_formats(GLcontext *ctx, * Note: srcY=0=Bottom of renderbuffer (GL convention) */ static void -st_copy_texsubimage(GLcontext *ctx, +st_copy_texsubimage(struct gl_context *ctx, GLenum target, GLint level, GLint destX, GLint destY, GLint destZ, GLint srcX, GLint srcY, @@ -1670,7 +1670,7 @@ st_copy_texsubimage(GLcontext *ctx, static void -st_CopyTexImage1D(GLcontext * ctx, GLenum target, GLint level, +st_CopyTexImage1D(struct gl_context * ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border) { @@ -1696,7 +1696,7 @@ st_CopyTexImage1D(GLcontext * ctx, GLenum target, GLint level, static void -st_CopyTexImage2D(GLcontext * ctx, GLenum target, GLint level, +st_CopyTexImage2D(struct gl_context * ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) @@ -1723,7 +1723,7 @@ st_CopyTexImage2D(GLcontext * ctx, GLenum target, GLint level, static void -st_CopyTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, +st_CopyTexSubImage1D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) { const GLint yoffset = 0, zoffset = 0; @@ -1735,7 +1735,7 @@ st_CopyTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, static void -st_CopyTexSubImage2D(GLcontext * ctx, GLenum target, GLint level, +st_CopyTexSubImage2D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { @@ -1747,7 +1747,7 @@ st_CopyTexSubImage2D(GLcontext * ctx, GLenum target, GLint level, static void -st_CopyTexSubImage3D(GLcontext * ctx, GLenum target, GLint level, +st_CopyTexSubImage3D(struct gl_context * ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) { @@ -1812,7 +1812,7 @@ copy_image_data_to_texture(struct st_context *st, * \return GL_TRUE for success, GL_FALSE for failure (out of mem) */ GLboolean -st_finalize_texture(GLcontext *ctx, +st_finalize_texture(struct gl_context *ctx, struct pipe_context *pipe, struct gl_texture_object *tObj) { diff --git a/src/mesa/state_tracker/st_cb_texture.h b/src/mesa/state_tracker/st_cb_texture.h index 6942478e81..60987055eb 100644 --- a/src/mesa/state_tracker/st_cb_texture.h +++ b/src/mesa/state_tracker/st_cb_texture.h @@ -38,7 +38,7 @@ struct pipe_context; struct st_context; extern GLboolean -st_finalize_texture(GLcontext *ctx, +st_finalize_texture(struct gl_context *ctx, struct pipe_context *pipe, struct gl_texture_object *tObj); diff --git a/src/mesa/state_tracker/st_cb_viewport.c b/src/mesa/state_tracker/st_cb_viewport.c index a1fe45cac4..049755e45c 100644 --- a/src/mesa/state_tracker/st_cb_viewport.c +++ b/src/mesa/state_tracker/st_cb_viewport.c @@ -34,19 +34,19 @@ #include "util/u_atomic.h" /** - * Cast wrapper to convert a GLframebuffer to an st_framebuffer. - * Return NULL if the GLframebuffer is a user-created framebuffer. + * Cast wrapper to convert a struct gl_framebuffer to an st_framebuffer. + * Return NULL if the struct gl_framebuffer is a user-created framebuffer. * We'll only return non-null for window system framebuffers. * Note that this function may fail. */ static INLINE struct st_framebuffer * -st_ws_framebuffer(GLframebuffer *fb) +st_ws_framebuffer(struct gl_framebuffer *fb) { /* FBO cannot be casted. See st_new_framebuffer */ return (struct st_framebuffer *) ((fb && !fb->Name) ? fb : NULL); } -static void st_viewport(GLcontext * ctx, GLint x, GLint y, +static void st_viewport(struct gl_context * ctx, GLint x, GLint y, GLsizei width, GLsizei height) { struct st_context *st = ctx->st; diff --git a/src/mesa/state_tracker/st_cb_xformfb.c b/src/mesa/state_tracker/st_cb_xformfb.c index 749e88e8db..838a0a4a93 100644 --- a/src/mesa/state_tracker/st_cb_xformfb.c +++ b/src/mesa/state_tracker/st_cb_xformfb.c @@ -44,7 +44,7 @@ #if 0 static struct gl_transform_feedback_object * -st_new_transform_feedback(GLcontext *ctx, GLuint name) +st_new_transform_feedback(struct gl_context *ctx, GLuint name) { struct gl_transform_feedback_object *obj; obj = CALLOC_STRUCT(gl_transform_feedback_object); @@ -58,7 +58,7 @@ st_new_transform_feedback(GLcontext *ctx, GLuint name) #if 0 static void -st_delete_transform_feedback(GLcontext *ctx, +st_delete_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { GLuint i; @@ -73,7 +73,7 @@ st_delete_transform_feedback(GLcontext *ctx, static void -st_begin_transform_feedback(GLcontext *ctx, GLenum mode, +st_begin_transform_feedback(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj) { /* to-do */ @@ -81,7 +81,7 @@ st_begin_transform_feedback(GLcontext *ctx, GLenum mode, static void -st_end_transform_feedback(GLcontext *ctx, +st_end_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* to-do */ @@ -89,7 +89,7 @@ st_end_transform_feedback(GLcontext *ctx, static void -st_pause_transform_feedback(GLcontext *ctx, +st_pause_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* to-do */ @@ -97,7 +97,7 @@ st_pause_transform_feedback(GLcontext *ctx, static void -st_resume_transform_feedback(GLcontext *ctx, +st_resume_transform_feedback(struct gl_context *ctx, struct gl_transform_feedback_object *obj) { /* to-do */ @@ -105,7 +105,7 @@ st_resume_transform_feedback(GLcontext *ctx, static void -st_draw_transform_feedback(GLcontext *ctx, GLenum mode, +st_draw_transform_feedback(struct gl_context *ctx, GLenum mode, struct gl_transform_feedback_object *obj) { /* XXX to do */ diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 3b046962ef..75fd69540f 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -69,7 +69,7 @@ DEBUG_GET_ONCE_BOOL_OPTION(mesa_mvp_dp4, "MESA_MVP_DP4", FALSE) /** * Called via ctx->Driver.UpdateState() */ -void st_invalidate_state(GLcontext * ctx, GLuint new_state) +void st_invalidate_state(struct gl_context * ctx, GLuint new_state) { struct st_context *st = st_context(ctx); @@ -97,7 +97,7 @@ st_get_msaa(void) static struct st_context * -st_create_context_priv( GLcontext *ctx, struct pipe_context *pipe ) +st_create_context_priv( struct gl_context *ctx, struct pipe_context *pipe ) { uint i; struct st_context *st = ST_CALLOC_STRUCT( st_context ); @@ -163,11 +163,11 @@ st_create_context_priv( GLcontext *ctx, struct pipe_context *pipe ) struct st_context *st_create_context(gl_api api, struct pipe_context *pipe, - const __GLcontextModes *visual, + const struct gl_config *visual, struct st_context *share) { - GLcontext *ctx; - GLcontext *shareCtx = share ? share->ctx : NULL; + struct gl_context *ctx; + struct gl_context *shareCtx = share ? share->ctx : NULL; struct dd_function_table funcs; memset(&funcs, 0, sizeof(funcs)); @@ -221,7 +221,7 @@ void st_destroy_context( struct st_context *st ) { struct pipe_context *pipe = st->pipe; struct cso_context *cso = st->cso_context; - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; GLuint i; /* need to unbind and destroy CSO objects before anything else */ diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index 991feee300..d342c0cff1 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -68,7 +68,7 @@ struct st_context { struct st_context_iface iface; - GLcontext *ctx; + struct gl_context *ctx; struct pipe_context *pipe; @@ -160,7 +160,7 @@ struct st_context /** for glDraw/CopyPixels */ struct { - struct st_fragment_program *z_shader; + struct st_fragment_program *shaders[4]; void *vert_shaders[2]; /**< ureg shaders */ } drawpix; @@ -195,19 +195,19 @@ struct st_context /* Need this so that we can implement Mesa callbacks in this module. */ -static INLINE struct st_context *st_context(GLcontext *ctx) +static INLINE struct st_context *st_context(struct gl_context *ctx) { return ctx->st; } /** - * Wrapper for GLframebuffer. + * Wrapper for struct gl_framebuffer. * This is an opaque type to the outside world. */ struct st_framebuffer { - GLframebuffer Base; + struct gl_framebuffer Base; void *Private; struct st_framebuffer_iface *iface; @@ -219,7 +219,7 @@ struct st_framebuffer extern void st_init_driver_functions(struct dd_function_table *functions); -void st_invalidate_state(GLcontext * ctx, GLuint new_state); +void st_invalidate_state(struct gl_context * ctx, GLuint new_state); @@ -260,7 +260,7 @@ st_get_msaa(void); extern struct st_context * st_create_context(gl_api api, struct pipe_context *pipe, - const __GLcontextModes *visual, + const struct gl_config *visual, struct st_context *share); extern void diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c index 318e08886c..f6f5bb1793 100644 --- a/src/mesa/state_tracker/st_draw.c +++ b/src/mesa/state_tracker/st_draw.c @@ -341,7 +341,7 @@ get_arrays_bounds(const struct st_vertex_program *vp, * \param velements returns vertex element info */ static void -setup_interleaved_attribs(GLcontext *ctx, +setup_interleaved_attribs(struct gl_context *ctx, const struct st_vertex_program *vp, const struct st_vp_varient *vpv, const struct gl_client_array **arrays, @@ -407,7 +407,7 @@ setup_interleaved_attribs(GLcontext *ctx, * \param velements returns vertex element info */ static void -setup_non_interleaved_attribs(GLcontext *ctx, +setup_non_interleaved_attribs(struct gl_context *ctx, const struct st_vertex_program *vp, const struct st_vp_varient *vpv, const struct gl_client_array **arrays, @@ -496,7 +496,7 @@ setup_non_interleaved_attribs(GLcontext *ctx, static void -setup_index_buffer(GLcontext *ctx, +setup_index_buffer(struct gl_context *ctx, const struct _mesa_index_buffer *ib, struct pipe_index_buffer *ibuffer) { @@ -545,7 +545,7 @@ setup_index_buffer(GLcontext *ctx, * issue a warning. */ static void -check_uniforms(GLcontext *ctx) +check_uniforms(struct gl_context *ctx) { const struct gl_shader_program *shProg = ctx->Shader.CurrentProgram; if (shProg && shProg->LinkStatus) { @@ -567,7 +567,7 @@ check_uniforms(GLcontext *ctx) * the corresponding Gallium type. */ static unsigned -translate_prim(const GLcontext *ctx, unsigned prim) +translate_prim(const struct gl_context *ctx, unsigned prim) { /* GL prims should match Gallium prims, spot-check a few */ assert(GL_POINTS == PIPE_PRIM_POINTS); @@ -595,7 +595,7 @@ translate_prim(const GLcontext *ctx, unsigned prim) * Basically, translate the information into the format expected by gallium. */ void -st_draw_vbo(GLcontext *ctx, +st_draw_vbo(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, @@ -736,7 +736,7 @@ st_draw_vbo(GLcontext *ctx, void st_init_draw( struct st_context *st ) { - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; vbo_set_draw_func(ctx, st_draw_vbo); diff --git a/src/mesa/state_tracker/st_draw.h b/src/mesa/state_tracker/st_draw.h index f36184487a..2e4c468cff 100644 --- a/src/mesa/state_tracker/st_draw.h +++ b/src/mesa/state_tracker/st_draw.h @@ -47,7 +47,7 @@ void st_init_draw( struct st_context *st ); void st_destroy_draw( struct st_context *st ); extern void -st_draw_vbo(GLcontext *ctx, +st_draw_vbo(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, @@ -57,7 +57,7 @@ st_draw_vbo(GLcontext *ctx, GLuint max_index); extern void -st_feedback_draw_vbo(GLcontext *ctx, +st_feedback_draw_vbo(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, diff --git a/src/mesa/state_tracker/st_draw_feedback.c b/src/mesa/state_tracker/st_draw_feedback.c index df05c7f70d..7f392fc491 100644 --- a/src/mesa/state_tracker/st_draw_feedback.c +++ b/src/mesa/state_tracker/st_draw_feedback.c @@ -52,7 +52,7 @@ * GL_SELECT or GL_FEEDBACK mode or for glRasterPos. */ static void -set_feedback_vertex_format(GLcontext *ctx) +set_feedback_vertex_format(struct gl_context *ctx) { #if 0 struct st_context *st = st_context(ctx); @@ -90,7 +90,7 @@ set_feedback_vertex_format(GLcontext *ctx) * Might move this into the failover module some day. */ void -st_feedback_draw_vbo(GLcontext *ctx, +st_feedback_draw_vbo(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 225f75e3af..96e4efcafa 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -204,7 +204,7 @@ void st_init_limits(struct st_context *st) void st_init_extensions(struct st_context *st) { struct pipe_screen *screen = st->pipe->screen; - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; /* * Extensions that are supported by all Gallium drivers: @@ -373,6 +373,12 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.EXT_texture_sRGB = GL_TRUE; } + if (screen->is_format_supported(screen, PIPE_FORMAT_R8G8_UNORM, + PIPE_TEXTURE_2D, 0, + PIPE_BIND_SAMPLER_VIEW, 0)) { + ctx->Extensions.ARB_texture_rg = GL_TRUE; + } + /* s3tc support */ if (screen->is_format_supported(screen, PIPE_FORMAT_DXT5_RGBA, PIPE_TEXTURE_2D, 0, @@ -429,4 +435,8 @@ void st_init_extensions(struct st_context *st) if (screen->get_param(screen, PIPE_CAP_DEPTH_CLAMP)) { ctx->Extensions.ARB_depth_clamp = GL_TRUE; } + + if (screen->get_param(screen, PIPE_CAP_SHADER_STENCIL_EXPORT)) { + ctx->Extensions.ARB_shader_stencil_export = GL_TRUE; + } } diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c index 95064605d7..4e90bd01a3 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -202,6 +202,14 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat) case MESA_FORMAT_SARGB8: return PIPE_FORMAT_B8G8R8A8_SRGB; #endif + case MESA_FORMAT_R8: + return PIPE_FORMAT_R8_UNORM; + case MESA_FORMAT_R16: + return PIPE_FORMAT_R16_UNORM; + case MESA_FORMAT_RG88: + return PIPE_FORMAT_R8G8_UNORM; + case MESA_FORMAT_RG1616: + return PIPE_FORMAT_R16G16_UNORM; default: assert(0); return PIPE_FORMAT_NONE; @@ -299,6 +307,15 @@ st_pipe_format_to_mesa_format(enum pipe_format format) case PIPE_FORMAT_B8G8R8A8_SRGB: return MESA_FORMAT_SARGB8; #endif + + case PIPE_FORMAT_R8_UNORM: + return MESA_FORMAT_R8; + case PIPE_FORMAT_R16_UNORM: + return MESA_FORMAT_R16; + case PIPE_FORMAT_R8G8_UNORM: + return MESA_FORMAT_RG88; + case PIPE_FORMAT_R16G16_UNORM: + return MESA_FORMAT_RG1616; default: assert(0); return MESA_FORMAT_NONE; @@ -688,6 +705,55 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat, return default_srgba_format( screen, target, sample_count, bindings, geom_flags ); + case GL_RED: + case GL_R8: + if (screen->is_format_supported(screen, PIPE_FORMAT_R8_UNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_R8_UNORM; + return PIPE_FORMAT_NONE; + case GL_RG: + case GL_RG8: + if (screen->is_format_supported(screen, PIPE_FORMAT_R8G8_UNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_R8G8_UNORM; + return PIPE_FORMAT_NONE; + + case GL_R16: + if (screen->is_format_supported(screen, PIPE_FORMAT_R16_UNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_R16_UNORM; + return PIPE_FORMAT_NONE; + + case GL_RG16: + if (screen->is_format_supported(screen, PIPE_FORMAT_R16G16_UNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_R16G16_UNORM; + return PIPE_FORMAT_NONE; + + case GL_COMPRESSED_RED_RGTC1: + if (screen->is_format_supported(screen, PIPE_FORMAT_RGTC1_UNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_RGTC1_UNORM; + return PIPE_FORMAT_NONE; + + case GL_COMPRESSED_SIGNED_RED_RGTC1: + if (screen->is_format_supported(screen, PIPE_FORMAT_RGTC1_SNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_RGTC1_SNORM; + return PIPE_FORMAT_NONE; + + case GL_COMPRESSED_RG_RGTC2: + if (screen->is_format_supported(screen, PIPE_FORMAT_RGTC2_UNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_RGTC2_UNORM; + return PIPE_FORMAT_NONE; + + case GL_COMPRESSED_SIGNED_RG_RGTC2: + if (screen->is_format_supported(screen, PIPE_FORMAT_RGTC2_SNORM, target, + sample_count, bindings, geom_flags)) + return PIPE_FORMAT_RGTC2_SNORM; + return PIPE_FORMAT_NONE; + default: return PIPE_FORMAT_NONE; } @@ -715,8 +781,8 @@ st_choose_renderbuffer_format(struct pipe_screen *screen, * Called via ctx->Driver.chooseTextureFormat(). */ gl_format -st_ChooseTextureFormat(GLcontext *ctx, GLint internalFormat, - GLenum format, GLenum type) +st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat, + GLenum format, GLenum type, GLboolean renderable) { struct pipe_screen *screen = st_context(ctx)->pipe->screen; enum pipe_format pFormat; @@ -728,11 +794,14 @@ st_ChooseTextureFormat(GLcontext *ctx, GLint internalFormat, /* GL textures may wind up being render targets, but we don't know * that in advance. Specify potential render target flags now. */ - if (_mesa_is_depth_format(internalFormat) || - _mesa_is_depthstencil_format(internalFormat)) - bindings = PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_DEPTH_STENCIL; - else - bindings = PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_RENDER_TARGET; + bindings = PIPE_BIND_SAMPLER_VIEW; + if (renderable == GL_TRUE) { + if (_mesa_is_depth_format(internalFormat) || + _mesa_is_depth_or_stencil_format(internalFormat)) + bindings |= PIPE_BIND_DEPTH_STENCIL; + else + bindings |= PIPE_BIND_RENDER_TARGET; + } pFormat = st_choose_format(screen, internalFormat, PIPE_TEXTURE_2D, 0, bindings); @@ -751,6 +820,13 @@ st_ChooseTextureFormat(GLcontext *ctx, GLint internalFormat, return st_pipe_format_to_mesa_format(pFormat); } +gl_format +st_ChooseTextureFormat(struct gl_context *ctx, GLint internalFormat, + GLenum format, GLenum type) +{ + return st_ChooseTextureFormat_renderable(ctx, internalFormat, + format, type, GL_TRUE); +} /** * Test if a gallium format is equivalent to a GL format/type. diff --git a/src/mesa/state_tracker/st_format.h b/src/mesa/state_tracker/st_format.h index 841c58cadc..43fa59b100 100644 --- a/src/mesa/state_tracker/st_format.h +++ b/src/mesa/state_tracker/st_format.h @@ -59,8 +59,12 @@ st_choose_renderbuffer_format(struct pipe_screen *screen, GLenum internalFormat, unsigned sample_count); +gl_format +st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat, + GLenum format, GLenum type, GLboolean renderable); + extern gl_format -st_ChooseTextureFormat(GLcontext * ctx, GLint internalFormat, +st_ChooseTextureFormat(struct gl_context * ctx, GLint internalFormat, GLenum format, GLenum type); diff --git a/src/mesa/state_tracker/st_gen_mipmap.c b/src/mesa/state_tracker/st_gen_mipmap.c index 2d587df605..fe31418ddd 100644 --- a/src/mesa/state_tracker/st_gen_mipmap.c +++ b/src/mesa/state_tracker/st_gen_mipmap.c @@ -155,7 +155,7 @@ compress_image(enum pipe_format format, * Software fallback for generate mipmap levels. */ static void -fallback_generate_mipmap(GLcontext *ctx, GLenum target, +fallback_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { struct pipe_context *pipe = st_context(ctx)->pipe; @@ -276,7 +276,7 @@ fallback_generate_mipmap(GLcontext *ctx, GLenum target, * levels should be generated. */ static GLuint -compute_num_levels(GLcontext *ctx, +compute_num_levels(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum target) { @@ -311,7 +311,7 @@ compute_num_levels(GLcontext *ctx, * Called via ctx->Driver.GenerateMipmap(). */ void -st_generate_mipmap(GLcontext *ctx, GLenum target, +st_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj) { struct st_context *st = st_context(ctx); diff --git a/src/mesa/state_tracker/st_gen_mipmap.h b/src/mesa/state_tracker/st_gen_mipmap.h index 016bf3f4bb..3ba091da15 100644 --- a/src/mesa/state_tracker/st_gen_mipmap.h +++ b/src/mesa/state_tracker/st_gen_mipmap.h @@ -43,7 +43,7 @@ st_destroy_generate_mipmap(struct st_context *st); extern void -st_generate_mipmap(GLcontext *ctx, GLenum target, +st_generate_mipmap(struct gl_context *ctx, GLenum target, struct gl_texture_object *texObj); diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 66e32b4c9e..183477a3f3 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -54,13 +54,13 @@ #include "st_manager.h" /** - * Cast wrapper to convert a GLframebuffer to an st_framebuffer. - * Return NULL if the GLframebuffer is a user-created framebuffer. + * Cast wrapper to convert a struct gl_framebuffer to an st_framebuffer. + * Return NULL if the struct gl_framebuffer is a user-created framebuffer. * We'll only return non-null for window system framebuffers. * Note that this function may fail. */ static INLINE struct st_framebuffer * -st_ws_framebuffer(GLframebuffer *fb) +st_ws_framebuffer(struct gl_framebuffer *fb) { /* FBO cannot be casted. See st_new_framebuffer */ return (struct st_framebuffer *) ((fb && !fb->Name) ? fb : NULL); @@ -296,11 +296,11 @@ st_framebuffer_add_renderbuffer(struct st_framebuffer *stfb, } /** - * Intialize a __GLcontextModes from a visual. + * Intialize a struct gl_config from a visual. */ static void st_visual_to_context_mode(const struct st_visual *visual, - __GLcontextModes *mode) + struct gl_config *mode) { memset(mode, 0, sizeof(*mode)); @@ -420,7 +420,7 @@ static struct st_framebuffer * st_framebuffer_create(struct st_framebuffer_iface *stfbi) { struct st_framebuffer *stfb; - __GLcontextModes mode; + struct gl_config mode; gl_buffer_index idx; stfb = CALLOC_STRUCT(st_framebuffer); @@ -429,7 +429,7 @@ st_framebuffer_create(struct st_framebuffer_iface *stfbi) /* for FBO-only context */ if (!stfbi) { - GLframebuffer *base = _mesa_get_incomplete_framebuffer(); + struct gl_framebuffer *base = _mesa_get_incomplete_framebuffer(); stfb->Base = *base; @@ -471,8 +471,8 @@ static void st_framebuffer_reference(struct st_framebuffer **ptr, struct st_framebuffer *stfb) { - GLframebuffer *fb = &stfb->Base; - _mesa_reference_framebuffer((GLframebuffer **) ptr, fb); + struct gl_framebuffer *fb = &stfb->Base; + _mesa_reference_framebuffer((struct gl_framebuffer **) ptr, fb); } static void @@ -486,9 +486,18 @@ st_context_notify_invalid_framebuffer(struct st_context_iface *stctxi, stfb = st_ws_framebuffer(st->ctx->WinSysDrawBuffer); if (!stfb || stfb->iface != stfbi) stfb = st_ws_framebuffer(st->ctx->WinSysReadBuffer); - assert(stfb && stfb->iface == stfbi); - p_atomic_set(&stfb->revalidate, TRUE); + if (stfb && stfb->iface == stfbi) { + p_atomic_set(&stfb->revalidate, TRUE); + } + else { + /* This function is probably getting called when we've detected a + * change in a window's size but the currently bound context is + * not bound to that window. + * If the st_framebuffer_iface structure had a pointer to the + * corresponding st_framebuffer we'd be able to handle this. + */ + } } static void @@ -507,7 +516,7 @@ st_context_teximage(struct st_context_iface *stctxi, enum st_texture_type target struct pipe_resource *tex, boolean mipmap) { struct st_context *st = (struct st_context *) stctxi; - GLcontext *ctx = st->ctx; + struct gl_context *ctx = st->ctx; struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); struct gl_texture_object *texObj; struct gl_texture_image *texImage; @@ -616,7 +625,7 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi, struct st_context *shared_ctx = (struct st_context *) shared_stctxi; struct st_context *st; struct pipe_context *pipe; - __GLcontextModes mode; + struct gl_config mode; gl_api api; if (!(stapi->profile_mask & (1 << attribs->profile))) @@ -823,7 +832,7 @@ st_manager_validate_framebuffers(struct st_context *st) * Add a color renderbuffer on demand. */ boolean -st_manager_add_color_renderbuffer(struct st_context *st, GLframebuffer *fb, +st_manager_add_color_renderbuffer(struct st_context *st, struct gl_framebuffer *fb, gl_buffer_index idx) { struct st_framebuffer *stfb = st_ws_framebuffer(fb); diff --git a/src/mesa/state_tracker/st_manager.h b/src/mesa/state_tracker/st_manager.h index 48a9d4d99a..6a94978390 100644 --- a/src/mesa/state_tracker/st_manager.h +++ b/src/mesa/state_tracker/st_manager.h @@ -46,7 +46,7 @@ void st_manager_validate_framebuffers(struct st_context *st); boolean -st_manager_add_color_renderbuffer(struct st_context *st, GLframebuffer *fb, +st_manager_add_color_renderbuffer(struct st_context *st, struct gl_framebuffer *fb, gl_buffer_index idx); #endif /* ST_MANAGER_H */ diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c index 0ed822b8c2..c5c239b2c9 100644 --- a/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -924,7 +924,7 @@ emit_edgeflags( struct st_translate *t, */ enum pipe_error st_translate_mesa_program( - GLcontext *ctx, + struct gl_context *ctx, uint procType, struct ureg_program *ureg, const struct gl_program *program, @@ -1002,6 +1002,13 @@ st_translate_mesa_program( t->outputs[i] = ureg_writemask( t->outputs[i], TGSI_WRITEMASK_Z ); break; + case TGSI_SEMANTIC_STENCIL: + t->outputs[i] = ureg_DECL_output( ureg, + TGSI_SEMANTIC_STENCIL, /* Stencil */ + outputSemanticIndex[i] ); + t->outputs[i] = ureg_writemask( t->outputs[i], + TGSI_WRITEMASK_Y ); + break; case TGSI_SEMANTIC_COLOR: t->outputs[i] = ureg_DECL_output( ureg, TGSI_SEMANTIC_COLOR, diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.h b/src/mesa/state_tracker/st_mesa_to_tgsi.h index ca076ce362..9bfd4960b6 100644 --- a/src/mesa/state_tracker/st_mesa_to_tgsi.h +++ b/src/mesa/state_tracker/st_mesa_to_tgsi.h @@ -44,7 +44,7 @@ struct gl_program; enum pipe_error st_translate_mesa_program( - GLcontext *ctx, + struct gl_context *ctx, uint procType, struct ureg_program *ureg, const struct gl_program *program, diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 18a7bbe0f9..95e6bd7dac 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -398,11 +398,20 @@ st_translate_fragment_program(struct st_context *st, outputsWritten &= ~(1 << FRAG_RESULT_DEPTH); } + if (outputsWritten & BITFIELD64_BIT(FRAG_RESULT_STENCIL)) { + fs_output_semantic_name[fs_num_outputs] = TGSI_SEMANTIC_STENCIL; + fs_output_semantic_index[fs_num_outputs] = 0; + outputMapping[FRAG_RESULT_STENCIL] = fs_num_outputs; + fs_num_outputs++; + outputsWritten &= ~(1 << FRAG_RESULT_STENCIL); + } + /* handle remaning outputs (color) */ for (attr = 0; attr < FRAG_RESULT_MAX; attr++) { if (outputsWritten & BITFIELD64_BIT(attr)) { switch (attr) { case FRAG_RESULT_DEPTH: + case FRAG_RESULT_STENCIL: /* handled above */ assert(0); break; @@ -707,7 +716,7 @@ st_translate_geometry_program(struct st_context *st, * Debug- print current shader text */ void -st_print_shaders(GLcontext *ctx) +st_print_shaders(struct gl_context *ctx) { struct gl_shader_program *shProg = ctx->Shader.CurrentProgram; if (shProg) { diff --git a/src/mesa/state_tracker/st_program.h b/src/mesa/state_tracker/st_program.h index 3805b9a725..72dbc715fe 100644 --- a/src/mesa/state_tracker/st_program.h +++ b/src/mesa/state_tracker/st_program.h @@ -223,7 +223,7 @@ st_vp_release_varients( struct st_context *st, struct st_vertex_program *stvp ); extern void -st_print_shaders(GLcontext *ctx); +st_print_shaders(struct gl_context *ctx); #endif diff --git a/src/mesa/state_tracker/st_texture.h b/src/mesa/state_tracker/st_texture.h index ed5d271597..c78901c036 100644 --- a/src/mesa/state_tracker/st_texture.h +++ b/src/mesa/state_tracker/st_texture.h @@ -134,6 +134,20 @@ st_create_texture_sampler_view(struct pipe_context *pipe, static INLINE struct pipe_sampler_view * +st_create_texture_sampler_view_format(struct pipe_context *pipe, + struct pipe_resource *texture, + enum pipe_format format) +{ + struct pipe_sampler_view templ; + + u_sampler_view_default_template(&templ, + texture, + format); + + return pipe->create_sampler_view(pipe, texture, &templ); +} + +static INLINE struct pipe_sampler_view * st_get_texture_sampler_view(struct st_texture_object *stObj, struct pipe_context *pipe) diff --git a/src/mesa/swrast/NOTES b/src/mesa/swrast/NOTES index f906e41b95..ea373aa127 100644 --- a/src/mesa/swrast/NOTES +++ b/src/mesa/swrast/NOTES @@ -21,24 +21,24 @@ STATE To create and destroy the module: - GLboolean _swrast_CreateContext( GLcontext *ctx ); - void _swrast_DestroyContext( GLcontext *ctx ); + GLboolean _swrast_CreateContext( struct gl_context *ctx ); + void _swrast_DestroyContext( struct gl_context *ctx ); This module tracks state changes internally and maintains derived values based on the current state. For this to work, the driver ensure the following funciton is called whenever the state changes and the swsetup module is 'awake': - void _swrast_InvalidateState( GLcontext *ctx, GLuint new_state ); + void _swrast_InvalidateState( struct gl_context *ctx, GLuint new_state ); There is no explicit call to put the swrast module to sleep. CUSTOMIZATION - void (*choose_point)( GLcontext * ); - void (*choose_line)( GLcontext * ); - void (*choose_triangle)( GLcontext * ); + void (*choose_point)( struct gl_context * ); + void (*choose_line)( struct gl_context * ); + void (*choose_triangle)( struct gl_context * ); Drivers may add additional triangle/line/point functions to swrast by overriding these functions. It is necessary for the driver to be very diff --git a/src/mesa/swrast/s_aaline.c b/src/mesa/swrast/s_aaline.c index 6ba4604e69..65b9af06af 100644 --- a/src/mesa/swrast/s_aaline.c +++ b/src/mesa/swrast/s_aaline.c @@ -323,7 +323,7 @@ compute_coveragef(const struct LineInfo *info, } -typedef void (*plot_func)(GLcontext *ctx, struct LineInfo *line, +typedef void (*plot_func)(struct gl_context *ctx, struct LineInfo *line, int ix, int iy); @@ -332,7 +332,7 @@ typedef void (*plot_func)(GLcontext *ctx, struct LineInfo *line, * Draw an AA line segment (called many times per line when stippling) */ static void -segment(GLcontext *ctx, +segment(struct gl_context *ctx, struct LineInfo *line, plot_func plot, GLfloat t0, GLfloat t1) @@ -472,7 +472,7 @@ segment(GLcontext *ctx, void -_swrast_choose_aa_line_function(GLcontext *ctx) +_swrast_choose_aa_line_function(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); diff --git a/src/mesa/swrast/s_aaline.h b/src/mesa/swrast/s_aaline.h index 922eb230e5..f7d92c5241 100644 --- a/src/mesa/swrast/s_aaline.h +++ b/src/mesa/swrast/s_aaline.h @@ -32,7 +32,7 @@ extern void -_swrast_choose_aa_line_function(GLcontext *ctx); +_swrast_choose_aa_line_function(struct gl_context *ctx); #endif diff --git a/src/mesa/swrast/s_aalinetemp.h b/src/mesa/swrast/s_aalinetemp.h index c28d47a671..d99d9d3d90 100644 --- a/src/mesa/swrast/s_aalinetemp.h +++ b/src/mesa/swrast/s_aalinetemp.h @@ -34,7 +34,7 @@ * \param iy - integer fragment window Y coordiante */ static void -NAME(plot)(GLcontext *ctx, struct LineInfo *line, int ix, int iy) +NAME(plot)(struct gl_context *ctx, struct LineInfo *line, int ix, int iy) { const SWcontext *swrast = SWRAST_CONTEXT(ctx); const GLfloat fx = (GLfloat) ix; @@ -103,7 +103,7 @@ NAME(plot)(GLcontext *ctx, struct LineInfo *line, int ix, int iy) * Line setup */ static void -NAME(line)(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1) +NAME(line)(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLfloat tStart, tEnd; /* segment start, end along line length */ diff --git a/src/mesa/swrast/s_aatriangle.c b/src/mesa/swrast/s_aatriangle.c index 1d90f322a3..c597808e40 100644 --- a/src/mesa/swrast/s_aatriangle.c +++ b/src/mesa/swrast/s_aatriangle.c @@ -31,7 +31,6 @@ #include "main/glheader.h" #include "main/context.h" #include "main/colormac.h" -#include "main/context.h" #include "main/macros.h" #include "main/imports.h" #include "s_aatriangle.h" @@ -269,7 +268,7 @@ compute_coveragef(const GLfloat v0[3], const GLfloat v1[3], static void -rgba_aa_tri(GLcontext *ctx, +rgba_aa_tri(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2) @@ -280,7 +279,7 @@ rgba_aa_tri(GLcontext *ctx, static void -general_aa_tri(GLcontext *ctx, +general_aa_tri(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2) @@ -297,7 +296,7 @@ general_aa_tri(GLcontext *ctx, * appropriate antialiased triangle rasterizer function. */ void -_swrast_set_aa_triangle_function(GLcontext *ctx) +_swrast_set_aa_triangle_function(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); diff --git a/src/mesa/swrast/s_aatriangle.h b/src/mesa/swrast/s_aatriangle.h index 9aed41a191..746e456f5f 100644 --- a/src/mesa/swrast/s_aatriangle.h +++ b/src/mesa/swrast/s_aatriangle.h @@ -32,7 +32,7 @@ extern void -_swrast_set_aa_triangle_function(GLcontext *ctx); +_swrast_set_aa_triangle_function(struct gl_context *ctx); #endif diff --git a/src/mesa/swrast/s_aatritemp.h b/src/mesa/swrast/s_aatritemp.h index 5c1c6d9044..91d4f7a10a 100644 --- a/src/mesa/swrast/s_aatritemp.h +++ b/src/mesa/swrast/s_aatritemp.h @@ -36,7 +36,7 @@ * DO_ATTRIBS - if defined, compute texcoords, varying, etc. */ -/*void triangle( GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint pv )*/ +/*void triangle( struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint pv )*/ { const SWcontext *swrast = SWRAST_CONTEXT(ctx); const GLfloat *p0 = v0->attrib[FRAG_ATTRIB_WPOS]; diff --git a/src/mesa/swrast/s_accum.c b/src/mesa/swrast/s_accum.c index 854e106b7f..88d107a17d 100644 --- a/src/mesa/swrast/s_accum.c +++ b/src/mesa/swrast/s_accum.c @@ -78,7 +78,7 @@ * representing the range[-1, 1]. */ static void -rescale_accum( GLcontext *ctx ) +rescale_accum( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); struct gl_renderbuffer *rb @@ -125,7 +125,7 @@ rescale_accum( GLcontext *ctx ) * Clear the accumulation Buffer. */ void -_swrast_clear_accum_buffer( GLcontext *ctx, struct gl_renderbuffer *rb ) +_swrast_clear_accum_buffer( struct gl_context *ctx, struct gl_renderbuffer *rb ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint x, y, width, height; @@ -179,7 +179,7 @@ _swrast_clear_accum_buffer( GLcontext *ctx, struct gl_renderbuffer *rb ) static void -accum_add(GLcontext *ctx, GLfloat value, +accum_add(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -222,7 +222,7 @@ accum_add(GLcontext *ctx, GLfloat value, static void -accum_mult(GLcontext *ctx, GLfloat mult, +accum_mult(struct gl_context *ctx, GLfloat mult, GLint xpos, GLint ypos, GLint width, GLint height ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -265,7 +265,7 @@ accum_mult(GLcontext *ctx, GLfloat mult, static void -accum_accum(GLcontext *ctx, GLfloat value, +accum_accum(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -341,7 +341,7 @@ accum_accum(GLcontext *ctx, GLfloat value, static void -accum_load(GLcontext *ctx, GLfloat value, +accum_load(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -423,7 +423,7 @@ accum_load(GLcontext *ctx, GLfloat value, static void -accum_return(GLcontext *ctx, GLfloat value, +accum_return(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -540,7 +540,7 @@ accum_return(GLcontext *ctx, GLfloat value, * Software fallback for glAccum. */ void -_swrast_Accum(GLcontext *ctx, GLenum op, GLfloat value) +_swrast_Accum(struct gl_context *ctx, GLenum op, GLfloat value) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLint xpos, ypos, width, height; diff --git a/src/mesa/swrast/s_accum.h b/src/mesa/swrast/s_accum.h index 42e38cf02b..071644b64f 100644 --- a/src/mesa/swrast/s_accum.h +++ b/src/mesa/swrast/s_accum.h @@ -31,7 +31,7 @@ extern void -_swrast_clear_accum_buffer(GLcontext *ctx, struct gl_renderbuffer *rb); +_swrast_clear_accum_buffer(struct gl_context *ctx, struct gl_renderbuffer *rb); #endif diff --git a/src/mesa/swrast/s_alpha.c b/src/mesa/swrast/s_alpha.c index 509477433a..df2181ba96 100644 --- a/src/mesa/swrast/s_alpha.c +++ b/src/mesa/swrast/s_alpha.c @@ -90,7 +90,7 @@ do { \ * 1 if one or more pixels passed the alpha test. */ GLint -_swrast_alpha_test(const GLcontext *ctx, SWspan *span) +_swrast_alpha_test(const struct gl_context *ctx, SWspan *span) { const GLuint n = span->end; GLubyte *mask = span->array->mask; diff --git a/src/mesa/swrast/s_alpha.h b/src/mesa/swrast/s_alpha.h index 239484a974..7cd6d800b2 100644 --- a/src/mesa/swrast/s_alpha.h +++ b/src/mesa/swrast/s_alpha.h @@ -33,7 +33,7 @@ extern GLint -_swrast_alpha_test( const GLcontext *ctx, SWspan *span ); +_swrast_alpha_test( const struct gl_context *ctx, SWspan *span ); #endif diff --git a/src/mesa/swrast/s_atifragshader.c b/src/mesa/swrast/s_atifragshader.c index 1338b6802d..1eb026e009 100644 --- a/src/mesa/swrast/s_atifragshader.c +++ b/src/mesa/swrast/s_atifragshader.c @@ -43,7 +43,7 @@ struct atifs_machine * Fetch a texel. */ static void -fetch_texel(GLcontext * ctx, const GLfloat texcoord[4], GLfloat lambda, +fetch_texel(struct gl_context * ctx, const GLfloat texcoord[4], GLfloat lambda, GLuint unit, GLfloat color[4]) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -272,7 +272,7 @@ handle_pass_op(struct atifs_machine *machine, struct atifs_setupinst *texinst, } static void -handle_sample_op(GLcontext * ctx, struct atifs_machine *machine, +handle_sample_op(struct gl_context * ctx, struct atifs_machine *machine, struct atifs_setupinst *texinst, const SWspan *span, GLuint column, GLuint idx) { @@ -311,7 +311,7 @@ do { \ * \param column - which pixel [i] we're operating on in the span */ static void -execute_shader(GLcontext *ctx, const struct ati_fragment_shader *shader, +execute_shader(struct gl_context *ctx, const struct ati_fragment_shader *shader, struct atifs_machine *machine, const SWspan *span, GLuint column) { @@ -555,7 +555,7 @@ execute_shader(GLcontext *ctx, const struct ati_fragment_shader *shader, * Init fragment shader virtual machine state. */ static void -init_machine(GLcontext * ctx, struct atifs_machine *machine, +init_machine(struct gl_context * ctx, struct atifs_machine *machine, const struct ati_fragment_shader *shader, const SWspan *span, GLuint col) { @@ -577,7 +577,7 @@ init_machine(GLcontext * ctx, struct atifs_machine *machine, * Execute the current ATI shader program, operating on the given span. */ void -_swrast_exec_fragment_shader(GLcontext * ctx, SWspan *span) +_swrast_exec_fragment_shader(struct gl_context * ctx, SWspan *span) { const struct ati_fragment_shader *shader = ctx->ATIFragmentShader.Current; struct atifs_machine machine; diff --git a/src/mesa/swrast/s_atifragshader.h b/src/mesa/swrast/s_atifragshader.h index cce455a046..39a6e64ed9 100644 --- a/src/mesa/swrast/s_atifragshader.h +++ b/src/mesa/swrast/s_atifragshader.h @@ -32,7 +32,7 @@ extern void -_swrast_exec_fragment_shader( GLcontext *ctx, SWspan *span ); +_swrast_exec_fragment_shader( struct gl_context *ctx, SWspan *span ); #endif diff --git a/src/mesa/swrast/s_bitmap.c b/src/mesa/swrast/s_bitmap.c index da730213ac..21488d3ba3 100644 --- a/src/mesa/swrast/s_bitmap.c +++ b/src/mesa/swrast/s_bitmap.c @@ -45,7 +45,7 @@ * All parameter error checking will have been done before this is called. */ void -_swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, +_swrast_Bitmap( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ) @@ -144,7 +144,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, * draw or skip. */ void -_swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, +_swrast_Bitmap( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ) diff --git a/src/mesa/swrast/s_blend.c b/src/mesa/swrast/s_blend.c index 5b090c72c7..1a550c445d 100644 --- a/src/mesa/swrast/s_blend.c +++ b/src/mesa/swrast/s_blend.c @@ -70,7 +70,7 @@ * Any chanType ok. */ static void _BLENDAPI -blend_noop(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_noop(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLint bytes; @@ -98,7 +98,7 @@ blend_noop(GLcontext *ctx, GLuint n, const GLubyte mask[], * Any chanType ok. */ static void _BLENDAPI -blend_replace(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_replace(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { ASSERT(ctx->Color.BlendEquationRGB == GL_FUNC_ADD); @@ -118,7 +118,7 @@ blend_replace(GLcontext *ctx, GLuint n, const GLubyte mask[], * glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA). */ static void _BLENDAPI -blend_transparency_ubyte(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_transparency_ubyte(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLubyte (*rgba)[4] = (GLubyte (*)[4]) src; @@ -163,7 +163,7 @@ blend_transparency_ubyte(GLcontext *ctx, GLuint n, const GLubyte mask[], static void _BLENDAPI -blend_transparency_ushort(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_transparency_ushort(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLushort (*rgba)[4] = (GLushort (*)[4]) src; @@ -201,7 +201,7 @@ blend_transparency_ushort(GLcontext *ctx, GLuint n, const GLubyte mask[], static void _BLENDAPI -blend_transparency_float(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_transparency_float(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLfloat (*rgba)[4] = (GLfloat (*)[4]) src; @@ -243,7 +243,7 @@ blend_transparency_float(GLcontext *ctx, GLuint n, const GLubyte mask[], * Any chanType ok. */ static void _BLENDAPI -blend_add(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_add(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLuint i; @@ -309,7 +309,7 @@ blend_add(GLcontext *ctx, GLuint n, const GLubyte mask[], * Any chanType ok. */ static void _BLENDAPI -blend_min(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_min(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLuint i; @@ -362,7 +362,7 @@ blend_min(GLcontext *ctx, GLuint n, const GLubyte mask[], * Any chanType ok. */ static void _BLENDAPI -blend_max(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_max(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLuint i; @@ -416,7 +416,7 @@ blend_max(GLcontext *ctx, GLuint n, const GLubyte mask[], * Any chanType ok. */ static void _BLENDAPI -blend_modulate(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_modulate(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType) { GLuint i; @@ -471,7 +471,7 @@ blend_modulate(GLcontext *ctx, GLuint n, const GLubyte mask[], * \param dest array of pixels from the dest color buffer */ static void -blend_general_float(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_general_float(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLfloat rgba[][4], GLfloat dest[][4], GLenum chanType) { @@ -816,7 +816,7 @@ blend_general_float(GLcontext *ctx, GLuint n, const GLubyte mask[], * Do any blending operation, any chanType. */ static void -blend_general(GLcontext *ctx, GLuint n, const GLubyte mask[], +blend_general(struct gl_context *ctx, GLuint n, const GLubyte mask[], void *src, const void *dst, GLenum chanType) { GLfloat rgbaF[MAX_WIDTH][4], destF[MAX_WIDTH][4]; @@ -892,7 +892,7 @@ blend_general(GLcontext *ctx, GLuint n, const GLubyte mask[], * Result: the ctx->Color.BlendFunc pointer is updated. */ void -_swrast_choose_blend_func(GLcontext *ctx, GLenum chanType) +_swrast_choose_blend_func(struct gl_context *ctx, GLenum chanType) { SWcontext *swrast = SWRAST_CONTEXT(ctx); const GLenum eq = ctx->Color.BlendEquationRGB; @@ -985,7 +985,7 @@ _swrast_choose_blend_func(GLcontext *ctx, GLenum chanType) * pixel coordinates. */ void -_swrast_blend_span(GLcontext *ctx, struct gl_renderbuffer *rb, SWspan *span) +_swrast_blend_span(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span) { SWcontext *swrast = SWRAST_CONTEXT(ctx); void *rbPixels; diff --git a/src/mesa/swrast/s_blend.h b/src/mesa/swrast/s_blend.h index 9cedde3bf2..8b06dd5031 100644 --- a/src/mesa/swrast/s_blend.h +++ b/src/mesa/swrast/s_blend.h @@ -32,11 +32,11 @@ extern void -_swrast_blend_span(GLcontext *ctx, struct gl_renderbuffer *rb, SWspan *span); +_swrast_blend_span(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span); extern void -_swrast_choose_blend_func(GLcontext *ctx, GLenum chanType); +_swrast_choose_blend_func(struct gl_context *ctx, GLenum chanType); #endif diff --git a/src/mesa/swrast/s_blit.c b/src/mesa/swrast/s_blit.c index 753f3136f5..d943e09b29 100644 --- a/src/mesa/swrast/s_blit.c +++ b/src/mesa/swrast/s_blit.c @@ -103,7 +103,7 @@ RESAMPLE(resample_row_16, GLuint, 4) * Blit color, depth or stencil with GL_NEAREST filtering. */ static void -blit_nearest(GLcontext *ctx, +blit_nearest(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield buffer) @@ -316,7 +316,7 @@ resample_linear_row_ub(GLint srcWidth, GLint dstWidth, * Bilinear filtered blit (color only). */ static void -blit_linear(GLcontext *ctx, +blit_linear(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1) { @@ -455,7 +455,7 @@ blit_linear(GLcontext *ctx, * XXX we could easily support vertical flipping here. */ static void -simple_blit(GLcontext *ctx, +simple_blit(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield buffer) @@ -556,7 +556,7 @@ simple_blit(GLcontext *ctx, * Software fallback for glBlitFramebufferEXT(). */ void -_swrast_BlitFramebuffer(GLcontext *ctx, +_swrast_BlitFramebuffer(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) diff --git a/src/mesa/swrast/s_clear.c b/src/mesa/swrast/s_clear.c index efe500ae2b..75805f9605 100644 --- a/src/mesa/swrast/s_clear.c +++ b/src/mesa/swrast/s_clear.c @@ -40,7 +40,7 @@ * Clear the color buffer when glColorMask is in effect. */ static void -clear_rgba_buffer_with_masking(GLcontext *ctx, struct gl_renderbuffer *rb, +clear_rgba_buffer_with_masking(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint buf) { const GLint x = ctx->DrawBuffer->_Xmin; @@ -106,7 +106,7 @@ clear_rgba_buffer_with_masking(GLcontext *ctx, struct gl_renderbuffer *rb, * Clear an rgba color buffer without channel masking. */ static void -clear_rgba_buffer(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint buf) +clear_rgba_buffer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint buf) { const GLint x = ctx->DrawBuffer->_Xmin; const GLint y = ctx->DrawBuffer->_Ymin; @@ -159,7 +159,7 @@ clear_rgba_buffer(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint buf) * clear its own color buffers for some reason (such as with masking). */ static void -clear_color_buffers(GLcontext *ctx) +clear_color_buffers(struct gl_context *ctx) { GLuint buf; @@ -186,7 +186,7 @@ clear_color_buffers(GLcontext *ctx) * \param all if GL_TRUE, clear whole buffer, else clear specified region. */ void -_swrast_Clear(GLcontext *ctx, GLbitfield buffers) +_swrast_Clear(struct gl_context *ctx, GLbitfield buffers) { #ifdef DEBUG_FOO { diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c index f76a2b68ec..491fcfcdbb 100644 --- a/src/mesa/swrast/s_context.c +++ b/src/mesa/swrast/s_context.c @@ -50,7 +50,7 @@ * stenciling, logic-op, fog, etc?). */ static void -_swrast_update_rasterflags( GLcontext *ctx ) +_swrast_update_rasterflags( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLbitfield rasterMask = 0; @@ -129,7 +129,7 @@ _swrast_update_rasterflags( GLcontext *ctx ) * factors in. */ static void -_swrast_update_polygon( GLcontext *ctx ) +_swrast_update_polygon( struct gl_context *ctx ) { GLfloat backface_sign; @@ -165,7 +165,7 @@ _swrast_update_polygon( GLcontext *ctx ) * fog blend factors (from the fog coords) per-fragment. */ static void -_swrast_update_fog_hint( GLcontext *ctx ) +_swrast_update_fog_hint( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); swrast->_PreferPixelFog = (!swrast->AllowVertexFog || @@ -180,7 +180,7 @@ _swrast_update_fog_hint( GLcontext *ctx ) * Update the swrast->_TextureCombinePrimary flag. */ static void -_swrast_update_texture_env( GLcontext *ctx ) +_swrast_update_texture_env( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint i; @@ -211,7 +211,7 @@ _swrast_update_texture_env( GLcontext *ctx ) * lots of fragments. */ static void -_swrast_update_deferred_texture(GLcontext *ctx) +_swrast_update_deferred_texture(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); if (ctx->Color.AlphaEnabled) { @@ -243,7 +243,7 @@ _swrast_update_deferred_texture(GLcontext *ctx) * Update swrast->_FogColor and swrast->_FogEnable values. */ static void -_swrast_update_fog_state( GLcontext *ctx ) +_swrast_update_fog_state( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); const struct gl_fragment_program *fp = ctx->FragmentProgram._Current; @@ -268,7 +268,7 @@ _swrast_update_fog_state( GLcontext *ctx ) * program parameters with current state values. */ static void -_swrast_update_fragment_program(GLcontext *ctx, GLbitfield newState) +_swrast_update_fragment_program(struct gl_context *ctx, GLbitfield newState) { const struct gl_fragment_program *fp = ctx->FragmentProgram._Current; if (fp) { @@ -282,7 +282,7 @@ _swrast_update_fragment_program(GLcontext *ctx, GLbitfield newState) * add per vertex instead of per-fragment. */ static void -_swrast_update_specular_vertex_add(GLcontext *ctx) +_swrast_update_specular_vertex_add(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLboolean separateSpecular = ctx->Fog.ColorSumEnabled || @@ -346,7 +346,7 @@ _swrast_update_specular_vertex_add(GLcontext *ctx) * after a state change. */ static void -_swrast_validate_triangle( GLcontext *ctx, +_swrast_validate_triangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ) @@ -371,7 +371,7 @@ _swrast_validate_triangle( GLcontext *ctx, * line routine. Then call it. */ static void -_swrast_validate_line( GLcontext *ctx, const SWvertex *v0, const SWvertex *v1 ) +_swrast_validate_line( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1 ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -392,7 +392,7 @@ _swrast_validate_line( GLcontext *ctx, const SWvertex *v0, const SWvertex *v1 ) * point routine. Then call it. */ static void -_swrast_validate_point( GLcontext *ctx, const SWvertex *v0 ) +_swrast_validate_point( struct gl_context *ctx, const SWvertex *v0 ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -413,7 +413,7 @@ _swrast_validate_point( GLcontext *ctx, const SWvertex *v0 ) * function, then call it. */ static void _ASMAPI -_swrast_validate_blend_func(GLcontext *ctx, GLuint n, const GLubyte mask[], +_swrast_validate_blend_func(struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType ) { @@ -431,7 +431,7 @@ _swrast_validate_blend_func(GLcontext *ctx, GLuint n, const GLubyte mask[], * for subsequent rendering. */ static void -_swrast_validate_texture_images(GLcontext *ctx) +_swrast_validate_texture_images(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint u; @@ -470,7 +470,7 @@ _swrast_validate_texture_images(GLcontext *ctx) * from software to hardware rendering. */ void -_swrast_eject_texture_images(GLcontext *ctx) +_swrast_eject_texture_images(struct gl_context *ctx) { GLuint u; @@ -504,14 +504,14 @@ _swrast_eject_texture_images(GLcontext *ctx) static void -_swrast_sleep( GLcontext *ctx, GLbitfield new_state ) +_swrast_sleep( struct gl_context *ctx, GLbitfield new_state ) { (void) ctx; (void) new_state; } static void -_swrast_invalidate_state( GLcontext *ctx, GLbitfield new_state ) +_swrast_invalidate_state( struct gl_context *ctx, GLbitfield new_state ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint i; @@ -546,7 +546,7 @@ _swrast_invalidate_state( GLcontext *ctx, GLbitfield new_state ) void -_swrast_update_texture_samplers(GLcontext *ctx) +_swrast_update_texture_samplers(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint u; @@ -569,7 +569,7 @@ _swrast_update_texture_samplers(GLcontext *ctx) * swrast->_ActiveAtttribMask. */ static void -_swrast_update_active_attribs(GLcontext *ctx) +_swrast_update_active_attribs(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint attribsMask; @@ -626,7 +626,7 @@ _swrast_update_active_attribs(GLcontext *ctx) void -_swrast_validate_derived( GLcontext *ctx ) +_swrast_validate_derived( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -681,7 +681,7 @@ _swrast_validate_derived( GLcontext *ctx ) /* Public entrypoints: See also s_accum.c, s_bitmap.c, etc. */ void -_swrast_Quad( GLcontext *ctx, +_swrast_Quad( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2, const SWvertex *v3 ) { @@ -697,7 +697,7 @@ _swrast_Quad( GLcontext *ctx, } void -_swrast_Triangle( GLcontext *ctx, const SWvertex *v0, +_swrast_Triangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ) { if (SWRAST_DEBUG) { @@ -710,7 +710,7 @@ _swrast_Triangle( GLcontext *ctx, const SWvertex *v0, } void -_swrast_Line( GLcontext *ctx, const SWvertex *v0, const SWvertex *v1 ) +_swrast_Line( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1 ) { if (SWRAST_DEBUG) { _mesa_debug(ctx, "_swrast_Line\n"); @@ -721,7 +721,7 @@ _swrast_Line( GLcontext *ctx, const SWvertex *v0, const SWvertex *v1 ) } void -_swrast_Point( GLcontext *ctx, const SWvertex *v0 ) +_swrast_Point( struct gl_context *ctx, const SWvertex *v0 ) { if (SWRAST_DEBUG) { _mesa_debug(ctx, "_swrast_Point\n"); @@ -731,7 +731,7 @@ _swrast_Point( GLcontext *ctx, const SWvertex *v0 ) } void -_swrast_InvalidateState( GLcontext *ctx, GLbitfield new_state ) +_swrast_InvalidateState( struct gl_context *ctx, GLbitfield new_state ) { if (SWRAST_DEBUG) { _mesa_debug(ctx, "_swrast_InvalidateState\n"); @@ -740,7 +740,7 @@ _swrast_InvalidateState( GLcontext *ctx, GLbitfield new_state ) } void -_swrast_ResetLineStipple( GLcontext *ctx ) +_swrast_ResetLineStipple( struct gl_context *ctx ) { if (SWRAST_DEBUG) { _mesa_debug(ctx, "_swrast_ResetLineStipple\n"); @@ -749,13 +749,13 @@ _swrast_ResetLineStipple( GLcontext *ctx ) } void -_swrast_SetFacing(GLcontext *ctx, GLuint facing) +_swrast_SetFacing(struct gl_context *ctx, GLuint facing) { SWRAST_CONTEXT(ctx)->PointLineFacing = facing; } void -_swrast_allow_vertex_fog( GLcontext *ctx, GLboolean value ) +_swrast_allow_vertex_fog( struct gl_context *ctx, GLboolean value ) { if (SWRAST_DEBUG) { _mesa_debug(ctx, "_swrast_allow_vertex_fog %d\n", value); @@ -765,7 +765,7 @@ _swrast_allow_vertex_fog( GLcontext *ctx, GLboolean value ) } void -_swrast_allow_pixel_fog( GLcontext *ctx, GLboolean value ) +_swrast_allow_pixel_fog( struct gl_context *ctx, GLboolean value ) { if (SWRAST_DEBUG) { _mesa_debug(ctx, "_swrast_allow_pixel_fog %d\n", value); @@ -776,7 +776,7 @@ _swrast_allow_pixel_fog( GLcontext *ctx, GLboolean value ) GLboolean -_swrast_CreateContext( GLcontext *ctx ) +_swrast_CreateContext( struct gl_context *ctx ) { GLuint i; SWcontext *swrast = (SWcontext *)CALLOC(sizeof(SWcontext)); @@ -848,7 +848,7 @@ _swrast_CreateContext( GLcontext *ctx ) } void -_swrast_DestroyContext( GLcontext *ctx ) +_swrast_DestroyContext( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -867,14 +867,14 @@ _swrast_DestroyContext( GLcontext *ctx ) struct swrast_device_driver * -_swrast_GetDeviceDriverReference( GLcontext *ctx ) +_swrast_GetDeviceDriverReference( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); return &swrast->Driver; } void -_swrast_flush( GLcontext *ctx ) +_swrast_flush( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); /* flush any pending fragments from rendering points */ @@ -885,7 +885,7 @@ _swrast_flush( GLcontext *ctx ) } void -_swrast_render_primitive( GLcontext *ctx, GLenum prim ) +_swrast_render_primitive( struct gl_context *ctx, GLenum prim ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); if (swrast->Primitive == GL_POINTS && prim != GL_POINTS) { @@ -896,7 +896,7 @@ _swrast_render_primitive( GLcontext *ctx, GLenum prim ) void -_swrast_render_start( GLcontext *ctx ) +_swrast_render_start( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); if (swrast->Driver.SpanRenderStart) @@ -905,7 +905,7 @@ _swrast_render_start( GLcontext *ctx ) } void -_swrast_render_finish( GLcontext *ctx ) +_swrast_render_finish( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); if (swrast->Driver.SpanRenderFinish) @@ -918,7 +918,7 @@ _swrast_render_finish( GLcontext *ctx ) #define SWRAST_DEBUG_VERTICES 0 void -_swrast_print_vertex( GLcontext *ctx, const SWvertex *v ) +_swrast_print_vertex( struct gl_context *ctx, const SWvertex *v ) { GLuint i; diff --git a/src/mesa/swrast/s_context.h b/src/mesa/swrast/s_context.h index 6d81f74768..5dbdd609ad 100644 --- a/src/mesa/swrast/s_context.h +++ b/src/mesa/swrast/s_context.h @@ -50,26 +50,26 @@ #include "s_span.h" -typedef void (*texture_sample_func)(GLcontext *ctx, +typedef void (*texture_sample_func)(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]); -typedef void (_ASMAPIP blend_func)( GLcontext *ctx, GLuint n, +typedef void (_ASMAPIP blend_func)( struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *src, const GLvoid *dst, GLenum chanType); -typedef void (*swrast_point_func)( GLcontext *ctx, const SWvertex *); +typedef void (*swrast_point_func)( struct gl_context *ctx, const SWvertex *); -typedef void (*swrast_line_func)( GLcontext *ctx, +typedef void (*swrast_line_func)( struct gl_context *ctx, const SWvertex *, const SWvertex *); -typedef void (*swrast_tri_func)( GLcontext *ctx, const SWvertex *, +typedef void (*swrast_tri_func)( struct gl_context *ctx, const SWvertex *, const SWvertex *, const SWvertex *); -typedef void (*validate_texture_image_func)(GLcontext *ctx, +typedef void (*validate_texture_image_func)(struct gl_context *ctx, struct gl_texture_object *texObj, GLuint face, GLuint level); @@ -160,7 +160,7 @@ typedef struct GLenum Primitive; /* current primitive being drawn (ala glBegin) */ GLboolean SpecularVertexAdd; /**< Add specular/secondary color per vertex */ - void (*InvalidateState)( GLcontext *ctx, GLbitfield new_state ); + void (*InvalidateState)( struct gl_context *ctx, GLbitfield new_state ); /** * When the NewState mask intersects these masks, we invalidate the @@ -177,9 +177,9 @@ typedef struct * Will be called when the GL state change mask intersects the above masks. */ /*@{*/ - void (*choose_point)( GLcontext * ); - void (*choose_line)( GLcontext * ); - void (*choose_triangle)( GLcontext * ); + void (*choose_point)( struct gl_context * ); + void (*choose_line)( struct gl_context * ); + void (*choose_triangle)( struct gl_context * ); /*@}*/ /** @@ -234,22 +234,22 @@ typedef struct extern void -_swrast_validate_derived( GLcontext *ctx ); +_swrast_validate_derived( struct gl_context *ctx ); extern void -_swrast_update_texture_samplers(GLcontext *ctx); +_swrast_update_texture_samplers(struct gl_context *ctx); -/** Return SWcontext for the given GLcontext */ +/** Return SWcontext for the given struct gl_context */ static INLINE SWcontext * -SWRAST_CONTEXT(GLcontext *ctx) +SWRAST_CONTEXT(struct gl_context *ctx) { return (SWcontext *) ctx->swrast_context; } /** const version of above */ static INLINE const SWcontext * -CONST_SWRAST_CONTEXT(const GLcontext *ctx) +CONST_SWRAST_CONTEXT(const struct gl_context *ctx) { return (const SWcontext *) ctx->swrast_context; } @@ -261,7 +261,7 @@ CONST_SWRAST_CONTEXT(const GLcontext *ctx) * driver's opportunity to map renderbuffers and textures. */ static INLINE void -swrast_render_start(GLcontext *ctx) +swrast_render_start(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); if (swrast->Driver.SpanRenderStart) @@ -271,7 +271,7 @@ swrast_render_start(GLcontext *ctx) /** Called after framebuffer reading/writing */ static INLINE void -swrast_render_finish(GLcontext *ctx) +swrast_render_finish(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); if (swrast->Driver.SpanRenderFinish) diff --git a/src/mesa/swrast/s_copypix.c b/src/mesa/swrast/s_copypix.c index c35494e385..86fe3e0a89 100644 --- a/src/mesa/swrast/s_copypix.c +++ b/src/mesa/swrast/s_copypix.c @@ -96,7 +96,7 @@ regions_overlap(GLint srcx, GLint srcy, * RGBA copypixels */ static void -copy_rgba_pixels(GLcontext *ctx, GLint srcx, GLint srcy, +copy_rgba_pixels(struct gl_context *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty) { GLfloat *tmpImage, *p; @@ -205,7 +205,7 @@ copy_rgba_pixels(GLcontext *ctx, GLint srcx, GLint srcy, * Z scale and bias. */ static void -scale_and_bias_z(GLcontext *ctx, GLuint width, +scale_and_bias_z(struct gl_context *ctx, GLuint width, const GLfloat depth[], GLuint z[]) { const GLuint depthMax = ctx->DrawBuffer->_DepthMax; @@ -240,7 +240,7 @@ scale_and_bias_z(GLcontext *ctx, GLuint width, * TODO: Optimize!!!! */ static void -copy_depth_pixels( GLcontext *ctx, GLint srcx, GLint srcy, +copy_depth_pixels( struct gl_context *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty ) { @@ -334,7 +334,7 @@ copy_depth_pixels( GLcontext *ctx, GLint srcx, GLint srcy, static void -copy_stencil_pixels( GLcontext *ctx, GLint srcx, GLint srcy, +copy_stencil_pixels( struct gl_context *ctx, GLint srcx, GLint srcy, GLint width, GLint height, GLint destx, GLint desty ) { @@ -427,7 +427,7 @@ copy_stencil_pixels( GLcontext *ctx, GLint srcx, GLint srcy, * CopyPixels function. */ static void -copy_depth_stencil_pixels(GLcontext *ctx, +copy_depth_stencil_pixels(struct gl_context *ctx, const GLint srcX, const GLint srcY, const GLint width, const GLint height, const GLint destX, const GLint destY) @@ -602,7 +602,7 @@ copy_depth_stencil_pixels(GLcontext *ctx, * Try to do a fast copy pixels. */ static GLboolean -fast_copy_pixels(GLcontext *ctx, +fast_copy_pixels(struct gl_context *ctx, GLint srcX, GLint srcY, GLsizei width, GLsizei height, GLint dstX, GLint dstY, GLenum type) { @@ -684,7 +684,7 @@ fast_copy_pixels(GLcontext *ctx, * By time we get here, all parameters will have been error-checked. */ void -_swrast_CopyPixels( GLcontext *ctx, +_swrast_CopyPixels( struct gl_context *ctx, GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLint destx, GLint desty, GLenum type ) { diff --git a/src/mesa/swrast/s_depth.c b/src/mesa/swrast/s_depth.c index f952fd6baa..58440cb97b 100644 --- a/src/mesa/swrast/s_depth.c +++ b/src/mesa/swrast/s_depth.c @@ -40,7 +40,7 @@ * Return: number of fragments which pass the test. */ static GLuint -depth_test_span16( GLcontext *ctx, GLuint n, +depth_test_span16( struct gl_context *ctx, GLuint n, GLushort zbuffer[], const GLuint z[], GLubyte mask[] ) { GLuint passed = 0; @@ -269,7 +269,7 @@ depth_test_span16( GLcontext *ctx, GLuint n, static GLuint -depth_test_span32( GLcontext *ctx, GLuint n, +depth_test_span32( struct gl_context *ctx, GLuint n, GLuint zbuffer[], const GLuint z[], GLubyte mask[] ) { GLuint passed = 0; @@ -506,7 +506,7 @@ depth_test_span32( GLcontext *ctx, GLuint n, * [0,1] range. */ void -_swrast_depth_clamp_span( GLcontext *ctx, SWspan *span ) +_swrast_depth_clamp_span( struct gl_context *ctx, SWspan *span ) { struct gl_framebuffer *fb = ctx->DrawBuffer; const GLuint count = span->end; @@ -552,7 +552,7 @@ _swrast_depth_clamp_span( GLcontext *ctx, SWspan *span ) * Apply depth test to span of fragments. */ static GLuint -depth_test_span( GLcontext *ctx, SWspan *span) +depth_test_span( struct gl_context *ctx, SWspan *span) { struct gl_framebuffer *fb = ctx->DrawBuffer; struct gl_renderbuffer *rb = fb->_DepthBuffer; @@ -610,7 +610,7 @@ depth_test_span( GLcontext *ctx, SWspan *span) * Do depth testing for an array of fragments at assorted locations. */ static void -direct_depth_test_pixels16(GLcontext *ctx, GLushort *zStart, GLuint stride, +direct_depth_test_pixels16(struct gl_context *ctx, GLushort *zStart, GLuint stride, GLuint n, const GLint x[], const GLint y[], const GLuint z[], GLubyte mask[] ) { @@ -856,7 +856,7 @@ direct_depth_test_pixels16(GLcontext *ctx, GLushort *zStart, GLuint stride, * Do depth testing for an array of fragments with direct access to zbuffer. */ static void -direct_depth_test_pixels32(GLcontext *ctx, GLuint *zStart, GLuint stride, +direct_depth_test_pixels32(struct gl_context *ctx, GLuint *zStart, GLuint stride, GLuint n, const GLint x[], const GLint y[], const GLuint z[], GLubyte mask[] ) { @@ -1100,7 +1100,7 @@ direct_depth_test_pixels32(GLcontext *ctx, GLuint *zStart, GLuint stride, static GLuint -depth_test_pixels( GLcontext *ctx, SWspan *span ) +depth_test_pixels( struct gl_context *ctx, SWspan *span ) { struct gl_framebuffer *fb = ctx->DrawBuffer; struct gl_renderbuffer *rb = fb->_DepthBuffer; @@ -1150,7 +1150,7 @@ depth_test_pixels( GLcontext *ctx, SWspan *span ) * \return approx number of pixels that passed (only zero is reliable) */ GLuint -_swrast_depth_test_span( GLcontext *ctx, SWspan *span) +_swrast_depth_test_span( struct gl_context *ctx, SWspan *span) { if (span->arrayMask & SPAN_XY) return depth_test_pixels(ctx, span); @@ -1167,7 +1167,7 @@ _swrast_depth_test_span( GLcontext *ctx, SWspan *span) * \return GL_TRUE if any fragments pass, GL_FALSE if no fragments pass */ GLboolean -_swrast_depth_bounds_test( GLcontext *ctx, SWspan *span ) +_swrast_depth_bounds_test( struct gl_context *ctx, SWspan *span ) { struct gl_framebuffer *fb = ctx->DrawBuffer; struct gl_renderbuffer *rb = fb->_DepthBuffer; @@ -1252,7 +1252,7 @@ _swrast_depth_bounds_test( GLcontext *ctx, SWspan *span ) * _swrast_ReadPixels. */ void -_swrast_read_depth_span_float( GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_depth_span_float( struct gl_context *ctx, struct gl_renderbuffer *rb, GLint n, GLint x, GLint y, GLfloat depth[] ) { const GLfloat scale = 1.0F / ctx->DrawBuffer->_DepthMaxF; @@ -1318,7 +1318,7 @@ _swrast_read_depth_span_float( GLcontext *ctx, struct gl_renderbuffer *rb, * As above, but return 32-bit GLuint values. */ void -_swrast_read_depth_span_uint( GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_depth_span_uint( struct gl_context *ctx, struct gl_renderbuffer *rb, GLint n, GLint x, GLint y, GLuint depth[] ) { GLuint depthBits; @@ -1400,7 +1400,7 @@ _swrast_read_depth_span_uint( GLcontext *ctx, struct gl_renderbuffer *rb, * Clear the given z/depth renderbuffer. */ void -_swrast_clear_depth_buffer( GLcontext *ctx, struct gl_renderbuffer *rb ) +_swrast_clear_depth_buffer( struct gl_context *ctx, struct gl_renderbuffer *rb ) { GLuint clearValue; GLint x, y, width, height; diff --git a/src/mesa/swrast/s_depth.h b/src/mesa/swrast/s_depth.h index 878d242f5e..e5dae7ef86 100644 --- a/src/mesa/swrast/s_depth.h +++ b/src/mesa/swrast/s_depth.h @@ -32,27 +32,27 @@ extern GLuint -_swrast_depth_test_span( GLcontext *ctx, SWspan *span); +_swrast_depth_test_span( struct gl_context *ctx, SWspan *span); extern void -_swrast_depth_clamp_span( GLcontext *ctx, SWspan *span ); +_swrast_depth_clamp_span( struct gl_context *ctx, SWspan *span ); extern GLboolean -_swrast_depth_bounds_test( GLcontext *ctx, SWspan *span ); +_swrast_depth_bounds_test( struct gl_context *ctx, SWspan *span ); extern void -_swrast_read_depth_span_float( GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_depth_span_float( struct gl_context *ctx, struct gl_renderbuffer *rb, GLint n, GLint x, GLint y, GLfloat depth[] ); extern void -_swrast_read_depth_span_uint( GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_depth_span_uint( struct gl_context *ctx, struct gl_renderbuffer *rb, GLint n, GLint x, GLint y, GLuint depth[] ); extern void -_swrast_clear_depth_buffer( GLcontext *ctx, struct gl_renderbuffer *rb ); +_swrast_clear_depth_buffer( struct gl_context *ctx, struct gl_renderbuffer *rb ); #endif diff --git a/src/mesa/swrast/s_drawpix.c b/src/mesa/swrast/s_drawpix.c index 7778820c5c..4e7cd9414f 100644 --- a/src/mesa/swrast/s_drawpix.c +++ b/src/mesa/swrast/s_drawpix.c @@ -44,7 +44,7 @@ * Return: GL_TRUE if success, GL_FALSE if slow path must be used instead */ static GLboolean -fast_draw_rgba_pixels(GLcontext *ctx, GLint x, GLint y, +fast_draw_rgba_pixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *userUnpack, @@ -310,7 +310,7 @@ fast_draw_rgba_pixels(GLcontext *ctx, GLint x, GLint y, * Draw stencil image. */ static void -draw_stencil_pixels( GLcontext *ctx, GLint x, GLint y, +draw_stencil_pixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -354,7 +354,7 @@ draw_stencil_pixels( GLcontext *ctx, GLint x, GLint y, * Draw depth image. */ static void -draw_depth_pixels( GLcontext *ctx, GLint x, GLint y, +draw_depth_pixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -460,7 +460,7 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y, * Draw RGBA image. */ static void -draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y, +draw_rgba_pixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, @@ -557,7 +557,7 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y, * color buffer(s). */ static void -draw_depth_stencil_pixels(GLcontext *ctx, GLint x, GLint y, +draw_depth_stencil_pixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels) @@ -687,7 +687,7 @@ draw_depth_stencil_pixels(GLcontext *ctx, GLint x, GLint y, * By time we get here, all error checking will have been done. */ void -_swrast_DrawPixels( GLcontext *ctx, +_swrast_DrawPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, diff --git a/src/mesa/swrast/s_feedback.c b/src/mesa/swrast/s_feedback.c index 6ac8ac73b0..00f92d463c 100644 --- a/src/mesa/swrast/s_feedback.c +++ b/src/mesa/swrast/s_feedback.c @@ -34,7 +34,7 @@ static void -feedback_vertex(GLcontext * ctx, const SWvertex * v, const SWvertex * pv) +feedback_vertex(struct gl_context * ctx, const SWvertex * v, const SWvertex * pv) { GLfloat win[4]; const GLfloat *vtc = v->attrib[FRAG_ATTRIB_TEX0]; @@ -53,7 +53,7 @@ feedback_vertex(GLcontext * ctx, const SWvertex * v, const SWvertex * pv) * Put triangle in feedback buffer. */ void -_swrast_feedback_triangle(GLcontext *ctx, const SWvertex *v0, +_swrast_feedback_triangle(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2) { if (!_swrast_culltriangle(ctx, v0, v1, v2)) { @@ -75,7 +75,7 @@ _swrast_feedback_triangle(GLcontext *ctx, const SWvertex *v0, void -_swrast_feedback_line(GLcontext *ctx, const SWvertex *v0, +_swrast_feedback_line(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1) { GLenum token = GL_LINE_TOKEN; @@ -100,7 +100,7 @@ _swrast_feedback_line(GLcontext *ctx, const SWvertex *v0, void -_swrast_feedback_point(GLcontext *ctx, const SWvertex *v) +_swrast_feedback_point(struct gl_context *ctx, const SWvertex *v) { _mesa_feedback_token(ctx, (GLfloat) (GLint) GL_POINT_TOKEN); feedback_vertex(ctx, v, v); @@ -108,7 +108,7 @@ _swrast_feedback_point(GLcontext *ctx, const SWvertex *v) void -_swrast_select_triangle(GLcontext *ctx, const SWvertex *v0, +_swrast_select_triangle(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2) { if (!_swrast_culltriangle(ctx, v0, v1, v2)) { @@ -122,7 +122,7 @@ _swrast_select_triangle(GLcontext *ctx, const SWvertex *v0, void -_swrast_select_line(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1) +_swrast_select_line(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1) { const GLfloat zs = 1.0F / ctx->DrawBuffer->_DepthMaxF; _mesa_update_hitflag( ctx, v0->attrib[FRAG_ATTRIB_WPOS][2] * zs ); @@ -131,7 +131,7 @@ _swrast_select_line(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1) void -_swrast_select_point(GLcontext *ctx, const SWvertex *v) +_swrast_select_point(struct gl_context *ctx, const SWvertex *v) { const GLfloat zs = 1.0F / ctx->DrawBuffer->_DepthMaxF; _mesa_update_hitflag( ctx, v->attrib[FRAG_ATTRIB_WPOS][2] * zs ); diff --git a/src/mesa/swrast/s_feedback.h b/src/mesa/swrast/s_feedback.h index 9feab75dbb..6bfd49735c 100644 --- a/src/mesa/swrast/s_feedback.h +++ b/src/mesa/swrast/s_feedback.h @@ -31,20 +31,20 @@ #include "swrast.h" -extern void _swrast_feedback_point( GLcontext *ctx, const SWvertex *v ); +extern void _swrast_feedback_point( struct gl_context *ctx, const SWvertex *v ); -extern void _swrast_feedback_line( GLcontext *ctx, +extern void _swrast_feedback_line( struct gl_context *ctx, const SWvertex *v1, const SWvertex *v2 ); -extern void _swrast_feedback_triangle( GLcontext *ctx, const SWvertex *v0, +extern void _swrast_feedback_triangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ); -extern void _swrast_select_point( GLcontext *ctx, const SWvertex *v ); +extern void _swrast_select_point( struct gl_context *ctx, const SWvertex *v ); -extern void _swrast_select_line( GLcontext *ctx, +extern void _swrast_select_line( struct gl_context *ctx, const SWvertex *v1, const SWvertex *v2 ); -extern void _swrast_select_triangle( GLcontext *ctx, const SWvertex *v0, +extern void _swrast_select_triangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ); #endif diff --git a/src/mesa/swrast/s_fog.c b/src/mesa/swrast/s_fog.c index 689500a613..d808e2b2a2 100644 --- a/src/mesa/swrast/s_fog.c +++ b/src/mesa/swrast/s_fog.c @@ -35,7 +35,7 @@ * Used to convert current raster distance to a fog factor in [0,1]. */ GLfloat -_swrast_z_to_fogfactor(GLcontext *ctx, GLfloat z) +_swrast_z_to_fogfactor(struct gl_context *ctx, GLfloat z) { GLfloat d, f; @@ -129,7 +129,7 @@ else { \ * _PreferPixelFog should be in sync with that state! */ void -_swrast_fog_rgba_span( const GLcontext *ctx, SWspan *span ) +_swrast_fog_rgba_span( const struct gl_context *ctx, SWspan *span ) { const SWcontext *swrast = CONST_SWRAST_CONTEXT(ctx); GLfloat rFog, gFog, bFog; diff --git a/src/mesa/swrast/s_fog.h b/src/mesa/swrast/s_fog.h index a496746d10..ebc3513f49 100644 --- a/src/mesa/swrast/s_fog.h +++ b/src/mesa/swrast/s_fog.h @@ -33,9 +33,9 @@ extern GLfloat -_swrast_z_to_fogfactor(GLcontext *ctx, GLfloat z); +_swrast_z_to_fogfactor(struct gl_context *ctx, GLfloat z); extern void -_swrast_fog_rgba_span( const GLcontext *ctx, SWspan *span ); +_swrast_fog_rgba_span( const struct gl_context *ctx, SWspan *span ); #endif diff --git a/src/mesa/swrast/s_fragprog.c b/src/mesa/swrast/s_fragprog.c index 9facb44d9b..e421d218d7 100644 --- a/src/mesa/swrast/s_fragprog.c +++ b/src/mesa/swrast/s_fragprog.c @@ -62,7 +62,7 @@ swizzle_texel(const GLfloat texel[4], GLfloat colorOut[4], GLuint swizzle) * Called via machine->FetchTexelLod() */ static void -fetch_texel_lod( GLcontext *ctx, const GLfloat texcoord[4], GLfloat lambda, +fetch_texel_lod( struct gl_context *ctx, const GLfloat texcoord[4], GLfloat lambda, GLuint unit, GLfloat color[4] ) { const struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current; @@ -92,7 +92,7 @@ fetch_texel_lod( GLcontext *ctx, const GLfloat texcoord[4], GLfloat lambda, * otherwise zero. */ static void -fetch_texel_deriv( GLcontext *ctx, const GLfloat texcoord[4], +fetch_texel_deriv( struct gl_context *ctx, const GLfloat texcoord[4], const GLfloat texdx[4], const GLfloat texdy[4], GLfloat lodBias, GLuint unit, GLfloat color[4] ) { @@ -140,7 +140,7 @@ fetch_texel_deriv( GLcontext *ctx, const GLfloat texcoord[4], * \param col which element (column) of the span we'll operate on */ static void -init_machine(GLcontext *ctx, struct gl_program_machine *machine, +init_machine(struct gl_context *ctx, struct gl_program_machine *machine, const struct gl_fragment_program *program, const SWspan *span, GLuint col) { @@ -194,7 +194,7 @@ init_machine(GLcontext *ctx, struct gl_program_machine *machine, * Run fragment program on the pixels in span from 'start' to 'end' - 1. */ static void -run_program(GLcontext *ctx, SWspan *span, GLuint start, GLuint end) +run_program(struct gl_context *ctx, SWspan *span, GLuint start, GLuint end) { SWcontext *swrast = SWRAST_CONTEXT(ctx); const struct gl_fragment_program *program = ctx->FragmentProgram._Current; @@ -253,7 +253,7 @@ run_program(GLcontext *ctx, SWspan *span, GLuint start, GLuint end) * in the given span. */ void -_swrast_exec_fragment_program( GLcontext *ctx, SWspan *span ) +_swrast_exec_fragment_program( struct gl_context *ctx, SWspan *span ) { const struct gl_fragment_program *program = ctx->FragmentProgram._Current; diff --git a/src/mesa/swrast/s_fragprog.h b/src/mesa/swrast/s_fragprog.h index 92b9d01e17..689d3fc82e 100644 --- a/src/mesa/swrast/s_fragprog.h +++ b/src/mesa/swrast/s_fragprog.h @@ -32,7 +32,7 @@ extern void -_swrast_exec_fragment_program(GLcontext *ctx, SWspan *span); +_swrast_exec_fragment_program(struct gl_context *ctx, SWspan *span); #endif /* S_FRAGPROG_H */ diff --git a/src/mesa/swrast/s_lines.c b/src/mesa/swrast/s_lines.c index 7db5af4ae1..95a2a5d96f 100644 --- a/src/mesa/swrast/s_lines.c +++ b/src/mesa/swrast/s_lines.c @@ -38,7 +38,7 @@ * Init the mask[] array to implement a line stipple. */ static void -compute_stipple_mask( GLcontext *ctx, GLuint len, GLubyte mask[] ) +compute_stipple_mask( struct gl_context *ctx, GLuint len, GLubyte mask[] ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint i; @@ -60,7 +60,7 @@ compute_stipple_mask( GLcontext *ctx, GLuint len, GLubyte mask[] ) * To draw a wide line we can simply redraw the span N times, side by side. */ static void -draw_wide_line( GLcontext *ctx, SWspan *span, GLboolean xMajor ) +draw_wide_line( struct gl_context *ctx, SWspan *span, GLboolean xMajor ) { const GLint width = (GLint) CLAMP(ctx->Line.Width, ctx->Const.MinLineWidth, @@ -160,7 +160,7 @@ draw_wide_line( GLcontext *ctx, SWspan *span, GLboolean xMajor ) void -_swrast_add_spec_terms_line(GLcontext *ctx, +_swrast_add_spec_terms_line(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1) { SWvertex *ncv0 = (SWvertex *)v0; @@ -222,7 +222,7 @@ do { \ * tests to this code. */ void -_swrast_choose_line( GLcontext *ctx ) +_swrast_choose_line( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLboolean specular = (ctx->Fog.ColorSumEnabled || diff --git a/src/mesa/swrast/s_lines.h b/src/mesa/swrast/s_lines.h index 22979a02b6..a4c98a8558 100644 --- a/src/mesa/swrast/s_lines.h +++ b/src/mesa/swrast/s_lines.h @@ -30,10 +30,10 @@ #include "swrast.h" void -_swrast_choose_line( GLcontext *ctx ); +_swrast_choose_line( struct gl_context *ctx ); void -_swrast_add_spec_terms_line( GLcontext *ctx, +_swrast_add_spec_terms_line( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1 ); diff --git a/src/mesa/swrast/s_linetemp.h b/src/mesa/swrast/s_linetemp.h index 033431df23..f9f2d29341 100644 --- a/src/mesa/swrast/s_linetemp.h +++ b/src/mesa/swrast/s_linetemp.h @@ -63,7 +63,7 @@ static void -NAME( GLcontext *ctx, const SWvertex *vert0, const SWvertex *vert1 ) +NAME( struct gl_context *ctx, const SWvertex *vert0, const SWvertex *vert1 ) { const SWcontext *swrast = SWRAST_CONTEXT(ctx); SWspan span; diff --git a/src/mesa/swrast/s_logic.c b/src/mesa/swrast/s_logic.c index c36a16e665..b93b4b7af3 100644 --- a/src/mesa/swrast/s_logic.c +++ b/src/mesa/swrast/s_logic.c @@ -158,7 +158,7 @@ do { \ static INLINE void -logicop_uint1(GLcontext *ctx, GLuint n, GLuint src[], const GLuint dest[], +logicop_uint1(struct gl_context *ctx, GLuint n, GLuint src[], const GLuint dest[], const GLubyte mask[]) { LOGIC_OP_LOOP(ctx->Color.LogicOp, 1); @@ -166,7 +166,7 @@ logicop_uint1(GLcontext *ctx, GLuint n, GLuint src[], const GLuint dest[], static INLINE void -logicop_uint2(GLcontext *ctx, GLuint n, GLuint src[], const GLuint dest[], +logicop_uint2(struct gl_context *ctx, GLuint n, GLuint src[], const GLuint dest[], const GLubyte mask[]) { LOGIC_OP_LOOP(ctx->Color.LogicOp, 2); @@ -174,7 +174,7 @@ logicop_uint2(GLcontext *ctx, GLuint n, GLuint src[], const GLuint dest[], static INLINE void -logicop_uint4(GLcontext *ctx, GLuint n, GLuint src[], const GLuint dest[], +logicop_uint4(struct gl_context *ctx, GLuint n, GLuint src[], const GLuint dest[], const GLubyte mask[]) { LOGIC_OP_LOOP(ctx->Color.LogicOp, 4); @@ -188,7 +188,7 @@ logicop_uint4(GLcontext *ctx, GLuint n, GLuint src[], const GLuint dest[], * pixel coordinates. */ void -_swrast_logicop_rgba_span(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_logicop_rgba_span(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span) { void *rbPixels; diff --git a/src/mesa/swrast/s_logic.h b/src/mesa/swrast/s_logic.h index d609513348..95c7fe3e15 100644 --- a/src/mesa/swrast/s_logic.h +++ b/src/mesa/swrast/s_logic.h @@ -31,7 +31,7 @@ #include "s_span.h" extern void -_swrast_logicop_rgba_span(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_logicop_rgba_span(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span); diff --git a/src/mesa/swrast/s_masking.c b/src/mesa/swrast/s_masking.c index e38d90f199..2e68f8c4bd 100644 --- a/src/mesa/swrast/s_masking.c +++ b/src/mesa/swrast/s_masking.c @@ -40,7 +40,7 @@ * Apply the color mask to a span of rgba values. */ void -_swrast_mask_rgba_span(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_mask_rgba_span(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span, GLuint buf) { const GLuint n = span->end; diff --git a/src/mesa/swrast/s_masking.h b/src/mesa/swrast/s_masking.h index cb000da0fd..3712c82163 100644 --- a/src/mesa/swrast/s_masking.h +++ b/src/mesa/swrast/s_masking.h @@ -32,7 +32,7 @@ extern void -_swrast_mask_rgba_span(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_mask_rgba_span(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span, GLuint buf); #endif diff --git a/src/mesa/swrast/s_points.c b/src/mesa/swrast/s_points.c index 12431662c4..06c6ef4ef7 100644 --- a/src/mesa/swrast/s_points.c +++ b/src/mesa/swrast/s_points.c @@ -52,7 +52,7 @@ * Must also clamp to user-defined range and implmentation limits. */ static INLINE GLfloat -get_size(const GLcontext *ctx, const SWvertex *vert, GLboolean smoothed) +get_size(const struct gl_context *ctx, const SWvertex *vert, GLboolean smoothed) { GLfloat size; @@ -80,7 +80,7 @@ get_size(const GLcontext *ctx, const SWvertex *vert, GLboolean smoothed) * Draw a point sprite */ static void -sprite_point(GLcontext *ctx, const SWvertex *vert) +sprite_point(struct gl_context *ctx, const SWvertex *vert) { SWcontext *swrast = SWRAST_CONTEXT(ctx); SWspan span; @@ -240,7 +240,7 @@ sprite_point(GLcontext *ctx, const SWvertex *vert) * Draw smooth/antialiased point. RGB or CI mode. */ static void -smooth_point(GLcontext *ctx, const SWvertex *vert) +smooth_point(struct gl_context *ctx, const SWvertex *vert) { SWcontext *swrast = SWRAST_CONTEXT(ctx); SWspan span; @@ -360,7 +360,7 @@ smooth_point(GLcontext *ctx, const SWvertex *vert) * Draw large (size >= 1) non-AA point. RGB or CI mode. */ static void -large_point(GLcontext *ctx, const SWvertex *vert) +large_point(struct gl_context *ctx, const SWvertex *vert) { SWcontext *swrast = SWRAST_CONTEXT(ctx); SWspan span; @@ -449,7 +449,7 @@ large_point(GLcontext *ctx, const SWvertex *vert) * Draw size=1, single-pixel point */ static void -pixel_point(GLcontext *ctx, const SWvertex *vert) +pixel_point(struct gl_context *ctx, const SWvertex *vert) { SWcontext *swrast = SWRAST_CONTEXT(ctx); /* @@ -513,7 +513,7 @@ pixel_point(GLcontext *ctx, const SWvertex *vert) * primary color. */ void -_swrast_add_spec_terms_point(GLcontext *ctx, const SWvertex *v0) +_swrast_add_spec_terms_point(struct gl_context *ctx, const SWvertex *v0) { SWvertex *ncv0 = (SWvertex *) v0; /* cast away const */ GLfloat rSum, gSum, bSum; @@ -539,7 +539,7 @@ _swrast_add_spec_terms_point(GLcontext *ctx, const SWvertex *v0) * Examine current state to determine which point drawing function to use. */ void -_swrast_choose_point(GLcontext *ctx) +_swrast_choose_point(struct gl_context *ctx) { SWcontext *swrast = SWRAST_CONTEXT(ctx); const GLfloat size = CLAMP(ctx->Point.Size, diff --git a/src/mesa/swrast/s_points.h b/src/mesa/swrast/s_points.h index 9e39c601ef..0b6550e801 100644 --- a/src/mesa/swrast/s_points.h +++ b/src/mesa/swrast/s_points.h @@ -30,10 +30,10 @@ #include "swrast.h" extern void -_swrast_choose_point( GLcontext *ctx ); +_swrast_choose_point( struct gl_context *ctx ); extern void -_swrast_add_spec_terms_point( GLcontext *ctx, +_swrast_add_spec_terms_point( struct gl_context *ctx, const SWvertex *v0 ); #endif diff --git a/src/mesa/swrast/s_readpix.c b/src/mesa/swrast/s_readpix.c index b0a3d36420..55fa60749e 100644 --- a/src/mesa/swrast/s_readpix.c +++ b/src/mesa/swrast/s_readpix.c @@ -43,7 +43,7 @@ * Read pixels for format=GL_DEPTH_COMPONENT. */ static void -read_depth_pixels( GLcontext *ctx, +read_depth_pixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, GLvoid *pixels, @@ -139,7 +139,7 @@ read_depth_pixels( GLcontext *ctx, * Read pixels for format=GL_STENCIL_INDEX. */ static void -read_stencil_pixels( GLcontext *ctx, +read_stencil_pixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, GLvoid *pixels, @@ -177,7 +177,7 @@ read_stencil_pixels( GLcontext *ctx, * \return GL_TRUE if success, GL_FALSE if unable to do the readpixels */ static GLboolean -fast_read_rgba_pixels( GLcontext *ctx, +fast_read_rgba_pixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -297,7 +297,7 @@ adjust_colors(const struct gl_framebuffer *fb, GLuint n, GLfloat rgba[][4]) * Read R, G, B, A, RGB, L, or LA pixels. */ static void -read_rgba_pixels( GLcontext *ctx, +read_rgba_pixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels, @@ -362,7 +362,7 @@ read_rgba_pixels( GLcontext *ctx, * depth and stencil buffers really exist. */ static void -read_depth_stencil_pixels(GLcontext *ctx, +read_depth_stencil_pixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type, GLvoid *pixels, @@ -453,7 +453,7 @@ read_depth_stencil_pixels(GLcontext *ctx, * By time we get here, all error checking will have been done. */ void -_swrast_ReadPixels( GLcontext *ctx, +_swrast_ReadPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *packing, diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c index 28c82990e0..3240b13577 100644 --- a/src/mesa/swrast/s_span.c +++ b/src/mesa/swrast/s_span.c @@ -57,7 +57,7 @@ * and glBitmap. */ void -_swrast_span_default_attribs(GLcontext *ctx, SWspan *span) +_swrast_span_default_attribs(struct gl_context *ctx, SWspan *span) { GLchan r, g, b, a; /* Z*/ @@ -163,7 +163,7 @@ _swrast_span_default_attribs(GLcontext *ctx, SWspan *span) * should have computed attrStart/Step values for FRAG_ATTRIB_WPOS[3]! */ static INLINE void -interpolate_active_attribs(GLcontext *ctx, SWspan *span, GLbitfield attrMask) +interpolate_active_attribs(struct gl_context *ctx, SWspan *span, GLbitfield attrMask) { const SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -210,7 +210,7 @@ interpolate_active_attribs(GLcontext *ctx, SWspan *span, GLbitfield attrMask) * color array. */ static INLINE void -interpolate_int_colors(GLcontext *ctx, SWspan *span) +interpolate_int_colors(struct gl_context *ctx, SWspan *span) { const GLuint n = span->end; GLuint i; @@ -370,7 +370,7 @@ interpolate_float_colors(SWspan *span) * Fill in the span.zArray array from the span->z, zStep values. */ void -_swrast_span_interpolate_z( const GLcontext *ctx, SWspan *span ) +_swrast_span_interpolate_z( const struct gl_context *ctx, SWspan *span ) { const GLuint n = span->end; GLuint i; @@ -460,7 +460,7 @@ _swrast_compute_lambda(GLfloat dsdx, GLfloat dsdy, GLfloat dtdx, GLfloat dtdy, * texels with (s/q, t/q, r/q). */ static void -interpolate_texcoords(GLcontext *ctx, SWspan *span) +interpolate_texcoords(struct gl_context *ctx, SWspan *span) { const GLuint maxUnit = (ctx->Texture._EnabledCoordUnits > 1) ? ctx->Const.MaxTextureUnits : 1; @@ -601,7 +601,7 @@ interpolate_texcoords(GLcontext *ctx, SWspan *span) * Fill in the arrays->attribs[FRAG_ATTRIB_WPOS] array. */ static INLINE void -interpolate_wpos(GLcontext *ctx, SWspan *span) +interpolate_wpos(struct gl_context *ctx, SWspan *span) { GLfloat (*wpos)[4] = span->array->attribs[FRAG_ATTRIB_WPOS]; GLuint i; @@ -635,7 +635,7 @@ interpolate_wpos(GLcontext *ctx, SWspan *span) * Apply the current polygon stipple pattern to a span of pixels. */ static INLINE void -stipple_polygon_span(GLcontext *ctx, SWspan *span) +stipple_polygon_span(struct gl_context *ctx, SWspan *span) { GLubyte *mask = span->array->mask; @@ -680,7 +680,7 @@ stipple_polygon_span(GLcontext *ctx, SWspan *span) * GL_FALSE nothing visible */ static INLINE GLuint -clip_span( GLcontext *ctx, SWspan *span ) +clip_span( struct gl_context *ctx, SWspan *span ) { const GLint xmin = ctx->DrawBuffer->_Xmin; const GLint xmax = ctx->DrawBuffer->_Xmax; @@ -807,7 +807,7 @@ clip_span( GLcontext *ctx, SWspan *span ) * Result is float color array (FRAG_ATTRIB_COL0). */ static INLINE void -add_specular(GLcontext *ctx, SWspan *span) +add_specular(struct gl_context *ctx, SWspan *span) { const SWcontext *swrast = SWRAST_CONTEXT(ctx); const GLubyte *mask = span->array->mask; @@ -951,7 +951,7 @@ convert_color_type(SWspan *span, GLenum newType, GLuint output) * Apply fragment shader, fragment program or normal texturing to span. */ static INLINE void -shade_texture_span(GLcontext *ctx, SWspan *span) +shade_texture_span(struct gl_context *ctx, SWspan *span) { GLbitfield inputsRead; @@ -1029,7 +1029,7 @@ shade_texture_span(GLcontext *ctx, SWspan *span) * to their original values before returning. */ void -_swrast_write_rgba_span( GLcontext *ctx, SWspan *span) +_swrast_write_rgba_span( struct gl_context *ctx, SWspan *span) { const SWcontext *swrast = SWRAST_CONTEXT(ctx); const GLuint *colorMask = (GLuint *) ctx->Color.ColorMask; @@ -1304,7 +1304,7 @@ end: * \param rgba the returned colors */ void -_swrast_read_rgba_span( GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_rgba_span( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLenum dstType, GLvoid *rgba) { @@ -1373,7 +1373,7 @@ _swrast_read_rgba_span( GLcontext *ctx, struct gl_renderbuffer *rb, * values array. */ void -_swrast_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values, GLuint valueSize) { @@ -1409,7 +1409,7 @@ _swrast_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, * \param valueSize size of each value (pixel) in bytes */ void -_swrast_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_put_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const GLvoid *values, GLuint valueSize) { @@ -1444,7 +1444,7 @@ _swrast_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, * \param valueSize size of each value (pixel) in bytes */ void -_swrast_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, GLvoid *values, GLuint valueSize) { @@ -1479,7 +1479,7 @@ _swrast_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, * \return pointer to the colors we read. */ void * -_swrast_get_dest_rgba(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_get_dest_rgba(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span) { const GLuint pixelSize = RGBA_PIXEL_SIZE(span->array->ChanType); diff --git a/src/mesa/swrast/s_span.h b/src/mesa/swrast/s_span.h index aaf1fec2a8..18e275ec8a 100644 --- a/src/mesa/swrast/s_span.h +++ b/src/mesa/swrast/s_span.h @@ -176,10 +176,10 @@ do { \ extern void -_swrast_span_default_attribs(GLcontext *ctx, SWspan *span); +_swrast_span_default_attribs(struct gl_context *ctx, SWspan *span); extern void -_swrast_span_interpolate_z( const GLcontext *ctx, SWspan *span ); +_swrast_span_interpolate_z( const struct gl_context *ctx, SWspan *span ); extern GLfloat _swrast_compute_lambda(GLfloat dsdx, GLfloat dsdy, GLfloat dtdx, GLfloat dtdy, @@ -188,31 +188,31 @@ _swrast_compute_lambda(GLfloat dsdx, GLfloat dsdy, GLfloat dtdx, GLfloat dtdy, extern void -_swrast_write_rgba_span( GLcontext *ctx, SWspan *span); +_swrast_write_rgba_span( struct gl_context *ctx, SWspan *span); extern void -_swrast_read_rgba_span(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_rgba_span(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLenum type, GLvoid *rgba); extern void -_swrast_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values, GLuint valueSize); extern void -_swrast_put_row(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_put_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const GLvoid *values, GLuint valueSize); extern void -_swrast_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, GLvoid *values, GLuint valueSize); extern void * -_swrast_get_dest_rgba(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_get_dest_rgba(struct gl_context *ctx, struct gl_renderbuffer *rb, SWspan *span); #endif diff --git a/src/mesa/swrast/s_spantemp.h b/src/mesa/swrast/s_spantemp.h index 2948a90f6b..8a9485085e 100644 --- a/src/mesa/swrast/s_spantemp.h +++ b/src/mesa/swrast/s_spantemp.h @@ -51,7 +51,7 @@ static void -NAME(get_row)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(get_row)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values ) { #ifdef SPAN_VARS @@ -69,7 +69,7 @@ NAME(get_row)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(get_values)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(get_values)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values ) { #ifdef SPAN_VARS @@ -86,7 +86,7 @@ NAME(get_values)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_row)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_row)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte mask[] ) { @@ -115,7 +115,7 @@ NAME(put_row)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_row_rgb)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_row_rgb)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *values, const GLubyte mask[] ) { @@ -140,7 +140,7 @@ NAME(put_row_rgb)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_mono_row)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_mono_row)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, const void *value, const GLubyte mask[] ) { @@ -169,7 +169,7 @@ NAME(put_mono_row)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_values)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_values)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *values, const GLubyte mask[] ) { @@ -190,7 +190,7 @@ NAME(put_values)( GLcontext *ctx, struct gl_renderbuffer *rb, static void -NAME(put_mono_values)( GLcontext *ctx, struct gl_renderbuffer *rb, +NAME(put_mono_values)( struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], const void *value, const GLubyte mask[] ) { diff --git a/src/mesa/swrast/s_stencil.c b/src/mesa/swrast/s_stencil.c index aa74b21ee8..5bec71c057 100644 --- a/src/mesa/swrast/s_stencil.c +++ b/src/mesa/swrast/s_stencil.c @@ -61,7 +61,7 @@ ENDIF * Output: stencil - modified values */ static void -apply_stencil_op( const GLcontext *ctx, GLenum oper, GLuint face, +apply_stencil_op( const struct gl_context *ctx, GLenum oper, GLuint face, GLuint n, GLstencil stencil[], const GLubyte mask[] ) { const GLstencil ref = ctx->Stencil.Ref[face]; @@ -225,7 +225,7 @@ apply_stencil_op( const GLcontext *ctx, GLenum oper, GLuint face, * Return: GL_FALSE = all pixels failed, GL_TRUE = zero or more pixels passed. */ static GLboolean -do_stencil_test( GLcontext *ctx, GLuint face, GLuint n, GLstencil stencil[], +do_stencil_test( struct gl_context *ctx, GLuint face, GLuint n, GLstencil stencil[], GLubyte mask[] ) { GLubyte fail[MAX_WIDTH]; @@ -418,7 +418,7 @@ compute_pass_fail_masks(GLuint n, const GLubyte origMask[], * */ static GLboolean -stencil_and_ztest_span(GLcontext *ctx, SWspan *span, GLuint face) +stencil_and_ztest_span(struct gl_context *ctx, SWspan *span, GLuint face) { struct gl_framebuffer *fb = ctx->DrawBuffer; struct gl_renderbuffer *rb = fb->_StencilBuffer; @@ -524,7 +524,7 @@ stencil_and_ztest_span(GLcontext *ctx, SWspan *span, GLuint face) * mask - array [n] of flag: 1=apply operator, 0=don't apply operator */ static void -apply_stencil_op_to_pixels( GLcontext *ctx, +apply_stencil_op_to_pixels( struct gl_context *ctx, GLuint n, const GLint x[], const GLint y[], GLenum oper, GLuint face, const GLubyte mask[] ) { @@ -698,7 +698,7 @@ apply_stencil_op_to_pixels( GLcontext *ctx, * \return GL_FALSE = all pixels failed, GL_TRUE = zero or more pixels passed. */ static GLboolean -stencil_test_pixels( GLcontext *ctx, GLuint face, GLuint n, +stencil_test_pixels( struct gl_context *ctx, GLuint face, GLuint n, const GLint x[], const GLint y[], GLubyte mask[] ) { const struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -897,7 +897,7 @@ stencil_test_pixels( GLcontext *ctx, GLuint face, GLuint n, * GL_TRUE - one or more fragments passed the testing */ static GLboolean -stencil_and_ztest_pixels( GLcontext *ctx, SWspan *span, GLuint face ) +stencil_and_ztest_pixels( struct gl_context *ctx, SWspan *span, GLuint face ) { GLubyte passMask[MAX_WIDTH], failMask[MAX_WIDTH], origMask[MAX_WIDTH]; struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -990,7 +990,7 @@ stencil_and_ztest_pixels( GLcontext *ctx, SWspan *span, GLuint face ) * GL_FALSE = all fragments failed. */ GLboolean -_swrast_stencil_and_ztest_span(GLcontext *ctx, SWspan *span) +_swrast_stencil_and_ztest_span(struct gl_context *ctx, SWspan *span) { const GLuint face = (span->facing == 0) ? 0 : ctx->Stencil._BackFace; @@ -1042,7 +1042,7 @@ clip_span(GLuint bufferWidth, GLuint bufferHeight, * Output: stencil - the array of stencil values */ void -_swrast_read_stencil_span(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_stencil_span(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint n, GLint x, GLint y, GLstencil stencil[]) { if (y < 0 || y >= (GLint) rb->Height || @@ -1079,7 +1079,7 @@ _swrast_read_stencil_span(GLcontext *ctx, struct gl_renderbuffer *rb, * stencil - the array of stencil values */ void -_swrast_write_stencil_span(GLcontext *ctx, GLint n, GLint x, GLint y, +_swrast_write_stencil_span(struct gl_context *ctx, GLint n, GLint x, GLint y, const GLstencil stencil[] ) { struct gl_framebuffer *fb = ctx->DrawBuffer; @@ -1128,7 +1128,7 @@ _swrast_write_stencil_span(GLcontext *ctx, GLint n, GLint x, GLint y, * Clear the stencil buffer. */ void -_swrast_clear_stencil_buffer( GLcontext *ctx, struct gl_renderbuffer *rb ) +_swrast_clear_stencil_buffer( struct gl_context *ctx, struct gl_renderbuffer *rb ) { const GLubyte stencilBits = ctx->DrawBuffer->Visual.stencilBits; const GLuint mask = ctx->Stencil.WriteMask[0]; diff --git a/src/mesa/swrast/s_stencil.h b/src/mesa/swrast/s_stencil.h index c076ebbe2a..00f5179e04 100644 --- a/src/mesa/swrast/s_stencil.h +++ b/src/mesa/swrast/s_stencil.h @@ -33,21 +33,21 @@ extern GLboolean -_swrast_stencil_and_ztest_span(GLcontext *ctx, SWspan *span); +_swrast_stencil_and_ztest_span(struct gl_context *ctx, SWspan *span); extern void -_swrast_read_stencil_span(GLcontext *ctx, struct gl_renderbuffer *rb, +_swrast_read_stencil_span(struct gl_context *ctx, struct gl_renderbuffer *rb, GLint n, GLint x, GLint y, GLstencil stencil[]); extern void -_swrast_write_stencil_span( GLcontext *ctx, GLint n, GLint x, GLint y, +_swrast_write_stencil_span( struct gl_context *ctx, GLint n, GLint x, GLint y, const GLstencil stencil[] ); extern void -_swrast_clear_stencil_buffer( GLcontext *ctx, struct gl_renderbuffer *rb ); +_swrast_clear_stencil_buffer( struct gl_context *ctx, struct gl_renderbuffer *rb ); #endif diff --git a/src/mesa/swrast/s_texcombine.c b/src/mesa/swrast/s_texcombine.c index 2ac0aaa246..1775810eff 100644 --- a/src/mesa/swrast/s_texcombine.c +++ b/src/mesa/swrast/s_texcombine.c @@ -72,7 +72,7 @@ get_texel_array(SWcontext *swrast, GLuint unit) * \param rgba incoming/result fragment colors */ static void -texture_combine( GLcontext *ctx, GLuint unit, GLuint n, +texture_combine( struct gl_context *ctx, GLuint unit, GLuint n, const float4_array primary_rgba, const GLfloat *texelBuffer, GLchan (*rgbaChan)[4] ) @@ -556,7 +556,7 @@ swizzle_texels(GLuint swizzle, GLuint count, float4_array texels) * Apply texture mapping to a span of fragments. */ void -_swrast_texture_span( GLcontext *ctx, SWspan *span ) +_swrast_texture_span( struct gl_context *ctx, SWspan *span ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLfloat primary_rgba[MAX_WIDTH][4]; diff --git a/src/mesa/swrast/s_texcombine.h b/src/mesa/swrast/s_texcombine.h index 4f5dfbe1af..5f47ebecbf 100644 --- a/src/mesa/swrast/s_texcombine.h +++ b/src/mesa/swrast/s_texcombine.h @@ -31,6 +31,6 @@ #include "s_span.h" extern void -_swrast_texture_span( GLcontext *ctx, SWspan *span ); +_swrast_texture_span( struct gl_context *ctx, SWspan *span ); #endif diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index 1aa2bcaf74..ec281776d0 100644 --- a/src/mesa/swrast/s_texfilter.c +++ b/src/mesa/swrast/s_texfilter.c @@ -798,7 +798,7 @@ get_border_color(const struct gl_texture_object *tObj, * Return the texture sample for coordinate (s) using GL_NEAREST filter. */ static INLINE void -sample_1d_nearest(GLcontext *ctx, +sample_1d_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], GLfloat rgba[4]) @@ -822,7 +822,7 @@ sample_1d_nearest(GLcontext *ctx, * Return the texture sample for coordinate (s) using GL_LINEAR filter. */ static INLINE void -sample_1d_linear(GLcontext *ctx, +sample_1d_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], GLfloat rgba[4]) @@ -863,7 +863,7 @@ sample_1d_linear(GLcontext *ctx, static void -sample_1d_nearest_mipmap_nearest(GLcontext *ctx, +sample_1d_nearest_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -878,7 +878,7 @@ sample_1d_nearest_mipmap_nearest(GLcontext *ctx, static void -sample_1d_linear_mipmap_nearest(GLcontext *ctx, +sample_1d_linear_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -893,7 +893,7 @@ sample_1d_linear_mipmap_nearest(GLcontext *ctx, static void -sample_1d_nearest_mipmap_linear(GLcontext *ctx, +sample_1d_nearest_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -918,7 +918,7 @@ sample_1d_nearest_mipmap_linear(GLcontext *ctx, static void -sample_1d_linear_mipmap_linear(GLcontext *ctx, +sample_1d_linear_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -944,7 +944,7 @@ sample_1d_linear_mipmap_linear(GLcontext *ctx, /** Sample 1D texture, nearest filtering for both min/magnification */ static void -sample_nearest_1d( GLcontext *ctx, +sample_nearest_1d( struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4] ) @@ -960,7 +960,7 @@ sample_nearest_1d( GLcontext *ctx, /** Sample 1D texture, linear filtering for both min/magnification */ static void -sample_linear_1d( GLcontext *ctx, +sample_linear_1d( struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4] ) @@ -976,7 +976,7 @@ sample_linear_1d( GLcontext *ctx, /** Sample 1D texture, using lambda to choose between min/magnification */ static void -sample_lambda_1d( GLcontext *ctx, +sample_lambda_1d( struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4] ) @@ -1055,7 +1055,7 @@ sample_lambda_1d( GLcontext *ctx, * Return the texture sample for coordinate (s,t) using GL_NEAREST filter. */ static INLINE void -sample_2d_nearest(GLcontext *ctx, +sample_2d_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -1088,7 +1088,7 @@ sample_2d_nearest(GLcontext *ctx, * New sampling code contributed by Lynn Quam <quam@ai.sri.com>. */ static INLINE void -sample_2d_linear(GLcontext *ctx, +sample_2d_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -1152,7 +1152,7 @@ sample_2d_linear(GLcontext *ctx, * We don't have to worry about the texture border. */ static INLINE void -sample_2d_linear_repeat(GLcontext *ctx, +sample_2d_linear_repeat(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -1185,7 +1185,7 @@ sample_2d_linear_repeat(GLcontext *ctx, static void -sample_2d_nearest_mipmap_nearest(GLcontext *ctx, +sample_2d_nearest_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1199,7 +1199,7 @@ sample_2d_nearest_mipmap_nearest(GLcontext *ctx, static void -sample_2d_linear_mipmap_nearest(GLcontext *ctx, +sample_2d_linear_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1214,7 +1214,7 @@ sample_2d_linear_mipmap_nearest(GLcontext *ctx, static void -sample_2d_nearest_mipmap_linear(GLcontext *ctx, +sample_2d_nearest_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1239,7 +1239,7 @@ sample_2d_nearest_mipmap_linear(GLcontext *ctx, static void -sample_2d_linear_mipmap_linear( GLcontext *ctx, +sample_2d_linear_mipmap_linear( struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4] ) @@ -1264,7 +1264,7 @@ sample_2d_linear_mipmap_linear( GLcontext *ctx, static void -sample_2d_linear_mipmap_linear_repeat(GLcontext *ctx, +sample_2d_linear_mipmap_linear_repeat(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1294,7 +1294,7 @@ sample_2d_linear_mipmap_linear_repeat(GLcontext *ctx, /** Sample 2D texture, nearest filtering for both min/magnification */ static void -sample_nearest_2d(GLcontext *ctx, +sample_nearest_2d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1310,7 +1310,7 @@ sample_nearest_2d(GLcontext *ctx, /** Sample 2D texture, linear filtering for both min/magnification */ static void -sample_linear_2d(GLcontext *ctx, +sample_linear_2d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1343,7 +1343,7 @@ sample_linear_2d(GLcontext *ctx, * Format = GL_RGB */ static void -opt_sample_rgb_2d(GLcontext *ctx, +opt_sample_rgb_2d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1384,7 +1384,7 @@ opt_sample_rgb_2d(GLcontext *ctx, * Format = GL_RGBA */ static void -opt_sample_rgba_2d(GLcontext *ctx, +opt_sample_rgba_2d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1419,7 +1419,7 @@ opt_sample_rgba_2d(GLcontext *ctx, /** Sample 2D texture, using lambda to choose between min/magnification */ static void -sample_lambda_2d(GLcontext *ctx, +sample_lambda_2d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1540,7 +1540,7 @@ sample_lambda_2d(GLcontext *ctx, * Return the texture sample for coordinate (s,t,r) using GL_NEAREST filter. */ static INLINE void -sample_3d_nearest(GLcontext *ctx, +sample_3d_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -1572,7 +1572,7 @@ sample_3d_nearest(GLcontext *ctx, * Return the texture sample for coordinate (s,t,r) using GL_LINEAR filter. */ static void -sample_3d_linear(GLcontext *ctx, +sample_3d_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -1666,7 +1666,7 @@ sample_3d_linear(GLcontext *ctx, static void -sample_3d_nearest_mipmap_nearest(GLcontext *ctx, +sample_3d_nearest_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4] ) @@ -1680,7 +1680,7 @@ sample_3d_nearest_mipmap_nearest(GLcontext *ctx, static void -sample_3d_linear_mipmap_nearest(GLcontext *ctx, +sample_3d_linear_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1695,7 +1695,7 @@ sample_3d_linear_mipmap_nearest(GLcontext *ctx, static void -sample_3d_nearest_mipmap_linear(GLcontext *ctx, +sample_3d_nearest_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1720,7 +1720,7 @@ sample_3d_nearest_mipmap_linear(GLcontext *ctx, static void -sample_3d_linear_mipmap_linear(GLcontext *ctx, +sample_3d_linear_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1746,7 +1746,7 @@ sample_3d_linear_mipmap_linear(GLcontext *ctx, /** Sample 3D texture, nearest filtering for both min/magnification */ static void -sample_nearest_3d(GLcontext *ctx, +sample_nearest_3d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1762,7 +1762,7 @@ sample_nearest_3d(GLcontext *ctx, /** Sample 3D texture, linear filtering for both min/magnification */ static void -sample_linear_3d(GLcontext *ctx, +sample_linear_3d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1778,7 +1778,7 @@ sample_linear_3d(GLcontext *ctx, /** Sample 3D texture, using lambda to choose between min/magnification */ static void -sample_lambda_3d(GLcontext *ctx, +sample_lambda_3d(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1933,7 +1933,7 @@ choose_cube_face(const struct gl_texture_object *texObj, static void -sample_nearest_cube(GLcontext *ctx, +sample_nearest_cube(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1951,7 +1951,7 @@ sample_nearest_cube(GLcontext *ctx, static void -sample_linear_cube(GLcontext *ctx, +sample_linear_cube(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1969,7 +1969,7 @@ sample_linear_cube(GLcontext *ctx, static void -sample_cube_nearest_mipmap_nearest(GLcontext *ctx, +sample_cube_nearest_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -1998,7 +1998,7 @@ sample_cube_nearest_mipmap_nearest(GLcontext *ctx, static void -sample_cube_linear_mipmap_nearest(GLcontext *ctx, +sample_cube_linear_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2017,7 +2017,7 @@ sample_cube_linear_mipmap_nearest(GLcontext *ctx, static void -sample_cube_nearest_mipmap_linear(GLcontext *ctx, +sample_cube_nearest_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2046,7 +2046,7 @@ sample_cube_nearest_mipmap_linear(GLcontext *ctx, static void -sample_cube_linear_mipmap_linear(GLcontext *ctx, +sample_cube_linear_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2076,7 +2076,7 @@ sample_cube_linear_mipmap_linear(GLcontext *ctx, /** Sample cube texture, using lambda to choose between min/magnification */ static void -sample_lambda_cube(GLcontext *ctx, +sample_lambda_cube(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2150,7 +2150,7 @@ sample_lambda_cube(GLcontext *ctx, static void -sample_nearest_rect(GLcontext *ctx, +sample_nearest_rect(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2184,7 +2184,7 @@ sample_nearest_rect(GLcontext *ctx, static void -sample_linear_rect(GLcontext *ctx, +sample_linear_rect(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2250,7 +2250,7 @@ sample_linear_rect(GLcontext *ctx, /** Sample Rect texture, using lambda to choose between min/magnification */ static void -sample_lambda_rect(GLcontext *ctx, +sample_lambda_rect(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2294,7 +2294,7 @@ sample_lambda_rect(GLcontext *ctx, * Return the texture sample for coordinate (s,t,r) using GL_NEAREST filter. */ static void -sample_2d_array_nearest(GLcontext *ctx, +sample_2d_array_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -2327,7 +2327,7 @@ sample_2d_array_nearest(GLcontext *ctx, * Return the texture sample for coordinate (s,t,r) using GL_LINEAR filter. */ static void -sample_2d_array_linear(GLcontext *ctx, +sample_2d_array_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -2397,7 +2397,7 @@ sample_2d_array_linear(GLcontext *ctx, static void -sample_2d_array_nearest_mipmap_nearest(GLcontext *ctx, +sample_2d_array_nearest_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2412,7 +2412,7 @@ sample_2d_array_nearest_mipmap_nearest(GLcontext *ctx, static void -sample_2d_array_linear_mipmap_nearest(GLcontext *ctx, +sample_2d_array_linear_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2428,7 +2428,7 @@ sample_2d_array_linear_mipmap_nearest(GLcontext *ctx, static void -sample_2d_array_nearest_mipmap_linear(GLcontext *ctx, +sample_2d_array_nearest_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2455,7 +2455,7 @@ sample_2d_array_nearest_mipmap_linear(GLcontext *ctx, static void -sample_2d_array_linear_mipmap_linear(GLcontext *ctx, +sample_2d_array_linear_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2483,7 +2483,7 @@ sample_2d_array_linear_mipmap_linear(GLcontext *ctx, /** Sample 2D Array texture, nearest filtering for both min/magnification */ static void -sample_nearest_2d_array(GLcontext *ctx, +sample_nearest_2d_array(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2500,7 +2500,7 @@ sample_nearest_2d_array(GLcontext *ctx, /** Sample 2D Array texture, linear filtering for both min/magnification */ static void -sample_linear_2d_array(GLcontext *ctx, +sample_linear_2d_array(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2516,7 +2516,7 @@ sample_linear_2d_array(GLcontext *ctx, /** Sample 2D Array texture, using lambda to choose between min/magnification */ static void -sample_lambda_2d_array(GLcontext *ctx, +sample_lambda_2d_array(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2604,7 +2604,7 @@ sample_lambda_2d_array(GLcontext *ctx, * Return the texture sample for coordinate (s,t,r) using GL_NEAREST filter. */ static void -sample_1d_array_nearest(GLcontext *ctx, +sample_1d_array_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -2634,7 +2634,7 @@ sample_1d_array_nearest(GLcontext *ctx, * Return the texture sample for coordinate (s,t,r) using GL_LINEAR filter. */ static void -sample_1d_array_linear(GLcontext *ctx, +sample_1d_array_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, const struct gl_texture_image *img, const GLfloat texcoord[4], @@ -2683,7 +2683,7 @@ sample_1d_array_linear(GLcontext *ctx, static void -sample_1d_array_nearest_mipmap_nearest(GLcontext *ctx, +sample_1d_array_nearest_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2698,7 +2698,7 @@ sample_1d_array_nearest_mipmap_nearest(GLcontext *ctx, static void -sample_1d_array_linear_mipmap_nearest(GLcontext *ctx, +sample_1d_array_linear_mipmap_nearest(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2714,7 +2714,7 @@ sample_1d_array_linear_mipmap_nearest(GLcontext *ctx, static void -sample_1d_array_nearest_mipmap_linear(GLcontext *ctx, +sample_1d_array_nearest_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2739,7 +2739,7 @@ sample_1d_array_nearest_mipmap_linear(GLcontext *ctx, static void -sample_1d_array_linear_mipmap_linear(GLcontext *ctx, +sample_1d_array_linear_mipmap_linear(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoord[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2765,7 +2765,7 @@ sample_1d_array_linear_mipmap_linear(GLcontext *ctx, /** Sample 1D Array texture, nearest filtering for both min/magnification */ static void -sample_nearest_1d_array(GLcontext *ctx, +sample_nearest_1d_array(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2781,7 +2781,7 @@ sample_nearest_1d_array(GLcontext *ctx, /** Sample 1D Array texture, linear filtering for both min/magnification */ static void -sample_linear_1d_array(GLcontext *ctx, +sample_linear_1d_array(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2797,7 +2797,7 @@ sample_linear_1d_array(GLcontext *ctx, /** Sample 1D Array texture, using lambda to choose between min/magnification */ static void -sample_lambda_1d_array(GLcontext *ctx, +sample_lambda_1d_array(struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -2975,11 +2975,16 @@ choose_depth_texture_level(const struct gl_texture_object *tObj, GLfloat lambda) { GLint level; - lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); - - level = (GLint) lambda; - - level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); + if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) { + /* no mipmapping - use base level */ + level = tObj->BaseLevel; + } + else { + /* choose mipmap level */ + lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); + level = (GLint) lambda; + level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); + } return level; } @@ -2990,7 +2995,7 @@ choose_depth_texture_level(const struct gl_texture_object *tObj, GLfloat lambda) * check for minification vs. magnification, etc. */ static void -sample_depth_texture( GLcontext *ctx, +sample_depth_texture( struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat texel[][4] ) @@ -3051,6 +3056,9 @@ sample_depth_texture( GLcontext *ctx, case GL_ALPHA: ASSIGN_4V(texel[i], 0.0F, 0.0F, 0.0F, result); break; + case GL_RED: + ASSIGN_4V(texel[i], result, 0.0F, 0.0F, 1.0F); + break; default: _mesa_problem(ctx, "Bad depth texture mode"); } @@ -3156,7 +3164,7 @@ sample_depth_texture( GLcontext *ctx, * Note: fragment programs don't observe the texture enable/disable flags. */ static void -null_sample_func( GLcontext *ctx, +null_sample_func( struct gl_context *ctx, const struct gl_texture_object *tObj, GLuint n, const GLfloat texcoords[][4], const GLfloat lambda[], GLfloat rgba[][4]) @@ -3179,7 +3187,7 @@ null_sample_func( GLcontext *ctx, * Choose the texture sampling function for the given texture object. */ texture_sample_func -_swrast_choose_texture_sample_func( GLcontext *ctx, +_swrast_choose_texture_sample_func( struct gl_context *ctx, const struct gl_texture_object *t ) { if (!t || !t->_Complete) { diff --git a/src/mesa/swrast/s_texfilter.h b/src/mesa/swrast/s_texfilter.h index eceab59658..34520f2294 100644 --- a/src/mesa/swrast/s_texfilter.h +++ b/src/mesa/swrast/s_texfilter.h @@ -32,7 +32,7 @@ extern texture_sample_func -_swrast_choose_texture_sample_func( GLcontext *ctx, +_swrast_choose_texture_sample_func( struct gl_context *ctx, const struct gl_texture_object *tObj ); diff --git a/src/mesa/swrast/s_triangle.c b/src/mesa/swrast/s_triangle.c index d1b369bcdf..85513e1f20 100644 --- a/src/mesa/swrast/s_triangle.c +++ b/src/mesa/swrast/s_triangle.c @@ -49,7 +49,7 @@ * \return GL_TRUE if the triangle is to be culled, GL_FALSE otherwise. */ GLboolean -_swrast_culltriangle( GLcontext *ctx, +_swrast_culltriangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ) @@ -256,7 +256,7 @@ ilerp_2d(GLint ia, GLint ib, GLint v00, GLint v10, GLint v01, GLint v11) * texture env modes. */ static INLINE void -affine_span(GLcontext *ctx, SWspan *span, +affine_span(struct gl_context *ctx, SWspan *span, struct affine_info *info) { GLchan sample[4]; /* the filtered texture sample */ @@ -591,7 +591,7 @@ struct persp_info static INLINE void -fast_persp_span(GLcontext *ctx, SWspan *span, +fast_persp_span(struct gl_context *ctx, SWspan *span, struct persp_info *info) { GLchan sample[4]; /* the filtered texture sample */ @@ -903,7 +903,7 @@ fast_persp_span(GLcontext *ctx, SWspan *span, static void -nodraw_triangle( GLcontext *ctx, +nodraw_triangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ) @@ -919,7 +919,7 @@ nodraw_triangle( GLcontext *ctx, * Inefficient, but seldom needed. */ void -_swrast_add_spec_terms_triangle(GLcontext *ctx, const SWvertex *v0, +_swrast_add_spec_terms_triangle(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2) { SWvertex *ncv0 = (SWvertex *)v0; /* drop const qualifier */ @@ -992,7 +992,7 @@ do { \ * remove tests to this code. */ void -_swrast_choose_triangle( GLcontext *ctx ) +_swrast_choose_triangle( struct gl_context *ctx ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); diff --git a/src/mesa/swrast/s_triangle.h b/src/mesa/swrast/s_triangle.h index b81932c730..46e23d4208 100644 --- a/src/mesa/swrast/s_triangle.h +++ b/src/mesa/swrast/s_triangle.h @@ -32,16 +32,16 @@ extern GLboolean -_swrast_culltriangle( GLcontext *ctx, +_swrast_culltriangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2); extern void -_swrast_choose_triangle( GLcontext *ctx ); +_swrast_choose_triangle( struct gl_context *ctx ); extern void -_swrast_add_spec_terms_triangle( GLcontext *ctx, +_swrast_add_spec_terms_triangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ); diff --git a/src/mesa/swrast/s_tritemp.h b/src/mesa/swrast/s_tritemp.h index 0aa8739f4f..4d6309b82a 100644 --- a/src/mesa/swrast/s_tritemp.h +++ b/src/mesa/swrast/s_tritemp.h @@ -108,7 +108,7 @@ do { \ #endif -static void NAME(GLcontext *ctx, const SWvertex *v0, +static void NAME(struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ) { diff --git a/src/mesa/swrast/s_zoom.c b/src/mesa/swrast/s_zoom.c index f224627d50..4e04691cd7 100644 --- a/src/mesa/swrast/s_zoom.c +++ b/src/mesa/swrast/s_zoom.c @@ -45,7 +45,7 @@ * \return GL_TRUE if any zoomed pixels visible, GL_FALSE if totally clipped */ static GLboolean -compute_zoomed_bounds(GLcontext *ctx, GLint imageX, GLint imageY, +compute_zoomed_bounds(struct gl_context *ctx, GLint imageX, GLint imageY, GLint spanX, GLint spanY, GLint width, GLint *x0, GLint *x1, GLint *y0, GLint *y1) { @@ -127,7 +127,7 @@ unzoom_x(GLfloat zoomX, GLint imageX, GLint zx) * index/depth_span(). */ static void -zoom_span( GLcontext *ctx, GLint imgX, GLint imgY, const SWspan *span, +zoom_span( struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span, const GLvoid *src, GLenum format ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -320,7 +320,7 @@ zoom_span( GLcontext *ctx, GLint imgX, GLint imgY, const SWspan *span, void -_swrast_write_zoomed_rgba_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_rgba_span(struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span, const GLvoid *rgba) { zoom_span(ctx, imgX, imgY, span, rgba, GL_RGBA); @@ -328,7 +328,7 @@ _swrast_write_zoomed_rgba_span(GLcontext *ctx, GLint imgX, GLint imgY, void -_swrast_write_zoomed_rgb_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_rgb_span(struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span, const GLvoid *rgb) { zoom_span(ctx, imgX, imgY, span, rgb, GL_RGB); @@ -336,7 +336,7 @@ _swrast_write_zoomed_rgb_span(GLcontext *ctx, GLint imgX, GLint imgY, void -_swrast_write_zoomed_depth_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_depth_span(struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span) { zoom_span(ctx, imgX, imgY, span, @@ -349,7 +349,7 @@ _swrast_write_zoomed_depth_span(GLcontext *ctx, GLint imgX, GLint imgY, * No per-fragment operations are applied. */ void -_swrast_write_zoomed_stencil_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_stencil_span(struct gl_context *ctx, GLint imgX, GLint imgY, GLint width, GLint spanX, GLint spanY, const GLstencil stencil[]) { @@ -386,7 +386,7 @@ _swrast_write_zoomed_stencil_span(GLcontext *ctx, GLint imgX, GLint imgY, * No per-fragment operations are applied. */ void -_swrast_write_zoomed_z_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_z_span(struct gl_context *ctx, GLint imgX, GLint imgY, GLint width, GLint spanX, GLint spanY, const GLvoid *z) { diff --git a/src/mesa/swrast/s_zoom.h b/src/mesa/swrast/s_zoom.h index 09f624efad..581ea178e8 100644 --- a/src/mesa/swrast/s_zoom.h +++ b/src/mesa/swrast/s_zoom.h @@ -30,25 +30,25 @@ extern void -_swrast_write_zoomed_rgba_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_rgba_span(struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span, const GLvoid *rgba); extern void -_swrast_write_zoomed_rgb_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_rgb_span(struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span, const GLvoid *rgb); extern void -_swrast_write_zoomed_depth_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_depth_span(struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span); extern void -_swrast_write_zoomed_stencil_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_stencil_span(struct gl_context *ctx, GLint imgX, GLint imgY, GLint width, GLint spanX, GLint spanY, const GLstencil stencil[]); extern void -_swrast_write_zoomed_z_span(GLcontext *ctx, GLint imgX, GLint imgY, +_swrast_write_zoomed_z_span(struct gl_context *ctx, GLint imgX, GLint imgY, GLint width, GLint spanX, GLint spanY, const GLvoid *z); diff --git a/src/mesa/swrast/swrast.h b/src/mesa/swrast/swrast.h index c01cf7d1f0..9b88c70220 100644 --- a/src/mesa/swrast/swrast.h +++ b/src/mesa/swrast/swrast.h @@ -85,32 +85,32 @@ struct swrast_device_driver; */ extern GLboolean -_swrast_CreateContext( GLcontext *ctx ); +_swrast_CreateContext( struct gl_context *ctx ); extern void -_swrast_DestroyContext( GLcontext *ctx ); +_swrast_DestroyContext( struct gl_context *ctx ); /* Get a (non-const) reference to the device driver struct for swrast. */ extern struct swrast_device_driver * -_swrast_GetDeviceDriverReference( GLcontext *ctx ); +_swrast_GetDeviceDriverReference( struct gl_context *ctx ); extern void -_swrast_Bitmap( GLcontext *ctx, +_swrast_Bitmap( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ); extern void -_swrast_CopyPixels( GLcontext *ctx, +_swrast_CopyPixels( struct gl_context *ctx, GLint srcx, GLint srcy, GLint destx, GLint desty, GLsizei width, GLsizei height, GLenum type ); extern void -_swrast_DrawPixels( GLcontext *ctx, +_swrast_DrawPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, @@ -118,37 +118,37 @@ _swrast_DrawPixels( GLcontext *ctx, const GLvoid *pixels ); extern void -_swrast_ReadPixels( GLcontext *ctx, +_swrast_ReadPixels( struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, const struct gl_pixelstore_attrib *unpack, GLvoid *pixels ); extern void -_swrast_BlitFramebuffer(GLcontext *ctx, +_swrast_BlitFramebuffer(struct gl_context *ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); extern void -_swrast_Clear(GLcontext *ctx, GLbitfield buffers); +_swrast_Clear(struct gl_context *ctx, GLbitfield buffers); extern void -_swrast_Accum(GLcontext *ctx, GLenum op, GLfloat value); +_swrast_Accum(struct gl_context *ctx, GLenum op, GLfloat value); /* Reset the stipple counter */ extern void -_swrast_ResetLineStipple( GLcontext *ctx ); +_swrast_ResetLineStipple( struct gl_context *ctx ); /** * Indicates front/back facing for subsequent points/lines when drawing * unfilled polygons. Needed for two-side stencil. */ extern void -_swrast_SetFacing(GLcontext *ctx, GLuint facing); +_swrast_SetFacing(struct gl_context *ctx, GLuint facing); /* These will always render the correct point/line/triangle for the * current state. @@ -156,54 +156,54 @@ _swrast_SetFacing(GLcontext *ctx, GLuint facing); * For flatshaded primitives, the provoking vertex is the final one. */ extern void -_swrast_Point( GLcontext *ctx, const SWvertex *v ); +_swrast_Point( struct gl_context *ctx, const SWvertex *v ); extern void -_swrast_Line( GLcontext *ctx, const SWvertex *v0, const SWvertex *v1 ); +_swrast_Line( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1 ); extern void -_swrast_Triangle( GLcontext *ctx, const SWvertex *v0, +_swrast_Triangle( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2 ); extern void -_swrast_Quad( GLcontext *ctx, +_swrast_Quad( struct gl_context *ctx, const SWvertex *v0, const SWvertex *v1, const SWvertex *v2, const SWvertex *v3); extern void -_swrast_flush( GLcontext *ctx ); +_swrast_flush( struct gl_context *ctx ); extern void -_swrast_render_primitive( GLcontext *ctx, GLenum mode ); +_swrast_render_primitive( struct gl_context *ctx, GLenum mode ); extern void -_swrast_render_start( GLcontext *ctx ); +_swrast_render_start( struct gl_context *ctx ); extern void -_swrast_render_finish( GLcontext *ctx ); +_swrast_render_finish( struct gl_context *ctx ); /* Tell the software rasterizer about core state changes. */ extern void -_swrast_InvalidateState( GLcontext *ctx, GLbitfield new_state ); +_swrast_InvalidateState( struct gl_context *ctx, GLbitfield new_state ); /* Configure software rasterizer to match hardware rasterizer characteristics: */ extern void -_swrast_allow_vertex_fog( GLcontext *ctx, GLboolean value ); +_swrast_allow_vertex_fog( struct gl_context *ctx, GLboolean value ); extern void -_swrast_allow_pixel_fog( GLcontext *ctx, GLboolean value ); +_swrast_allow_pixel_fog( struct gl_context *ctx, GLboolean value ); /* Debug: */ extern void -_swrast_print_vertex( GLcontext *ctx, const SWvertex *v ); +_swrast_print_vertex( struct gl_context *ctx, const SWvertex *v ); extern void -_swrast_eject_texture_images(GLcontext *ctx); +_swrast_eject_texture_images(struct gl_context *ctx); @@ -223,8 +223,8 @@ struct swrast_device_driver { * these functions. Locking in that case must be organized by the * driver by other mechanisms. */ - void (*SpanRenderStart)(GLcontext *ctx); - void (*SpanRenderFinish)(GLcontext *ctx); + void (*SpanRenderStart)(struct gl_context *ctx); + void (*SpanRenderFinish)(struct gl_context *ctx); }; diff --git a/src/mesa/swrast_setup/NOTES b/src/mesa/swrast_setup/NOTES index c6cb4ab348..bdf57c39ef 100644 --- a/src/mesa/swrast_setup/NOTES +++ b/src/mesa/swrast_setup/NOTES @@ -28,15 +28,15 @@ STATE To create and destroy the module: - GLboolean _swsetup_CreateContext( GLcontext *ctx ); - void _swsetup_DestroyContext( GLcontext *ctx ); + GLboolean _swsetup_CreateContext( struct gl_context *ctx ); + void _swsetup_DestroyContext( struct gl_context *ctx ); The module is not active by default, and must be installed by calling _swrast_Wakeup(). This function installs internal swrast_setup functions into all the tnl->Driver.Render driver hooks, thus taking over the task of rasterization entirely: - void _swrast_Wakeup( GLcontext *ctx ); + void _swrast_Wakeup( struct gl_context *ctx ); This module tracks state changes internally and maintains derived @@ -44,7 +44,7 @@ values based on the current state. For this to work, the driver ensure the following funciton is called whenever the state changes and the swsetup module is 'awake': - void _swsetup_InvalidateState( GLcontext *ctx, GLuint new_state ); + void _swsetup_InvalidateState( struct gl_context *ctx, GLuint new_state ); There is no explicit call to put the swsetup module to sleep. Simply install other function pointers into all the tnl->Driver.Render.* @@ -54,8 +54,8 @@ DRIVER INTERFACE The module offers a minimal driver interface: - void (*Start)( GLcontext *ctx ); - void (*Finish)( GLcontext *ctx ); + void (*Start)( struct gl_context *ctx ); + void (*Finish)( struct gl_context *ctx ); These are called before and after the completion of all swrast drawing activity. As swrast doesn't call callbacks during triangle, line or diff --git a/src/mesa/swrast_setup/ss_context.c b/src/mesa/swrast_setup/ss_context.c index 0fcb7c77af..5da2e1eabe 100644 --- a/src/mesa/swrast_setup/ss_context.c +++ b/src/mesa/swrast_setup/ss_context.c @@ -47,7 +47,7 @@ GLboolean -_swsetup_CreateContext( GLcontext *ctx ) +_swsetup_CreateContext( struct gl_context *ctx ) { SScontext *swsetup = (SScontext *)CALLOC(sizeof(SScontext)); @@ -67,7 +67,7 @@ _swsetup_CreateContext( GLcontext *ctx ) } void -_swsetup_DestroyContext( GLcontext *ctx ) +_swsetup_DestroyContext( struct gl_context *ctx ) { SScontext *swsetup = SWSETUP_CONTEXT(ctx); @@ -80,7 +80,7 @@ _swsetup_DestroyContext( GLcontext *ctx ) } static void -_swsetup_RenderPrimitive( GLcontext *ctx, GLenum mode ) +_swsetup_RenderPrimitive( struct gl_context *ctx, GLenum mode ) { SWSETUP_CONTEXT(ctx)->render_prim = mode; _swrast_render_primitive( ctx, mode ); @@ -108,7 +108,7 @@ do { \ * _tnl_install_attrs(). */ static void -setup_vertex_format(GLcontext *ctx) +setup_vertex_format(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); SScontext *swsetup = SWSETUP_CONTEXT(ctx); @@ -184,7 +184,7 @@ setup_vertex_format(GLcontext *ctx) * Called via tnl->Driver.Render.Start. */ static void -_swsetup_RenderStart( GLcontext *ctx ) +_swsetup_RenderStart( struct gl_context *ctx ) { SScontext *swsetup = SWSETUP_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -217,13 +217,13 @@ _swsetup_RenderStart( GLcontext *ctx ) * It's called when we finish rendering a vertex buffer. */ static void -_swsetup_RenderFinish( GLcontext *ctx ) +_swsetup_RenderFinish( struct gl_context *ctx ) { _swrast_render_finish( ctx ); } void -_swsetup_InvalidateState( GLcontext *ctx, GLuint new_state ) +_swsetup_InvalidateState( struct gl_context *ctx, GLuint new_state ) { SScontext *swsetup = SWSETUP_CONTEXT(ctx); swsetup->NewState |= new_state; @@ -232,7 +232,7 @@ _swsetup_InvalidateState( GLcontext *ctx, GLuint new_state ) void -_swsetup_Wakeup( GLcontext *ctx ) +_swsetup_Wakeup( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); SScontext *swsetup = SWSETUP_CONTEXT(ctx); @@ -267,7 +267,7 @@ _swsetup_Wakeup( GLcontext *ctx ) * Populate a swrast SWvertex from an attrib-style vertex. */ void -_swsetup_Translate( GLcontext *ctx, const void *vertex, SWvertex *dest ) +_swsetup_Translate( struct gl_context *ctx, const void *vertex, SWvertex *dest ) { const GLfloat *m = ctx->Viewport._WindowMap.m; GLfloat tmp[4]; diff --git a/src/mesa/swrast_setup/ss_triangle.c b/src/mesa/swrast_setup/ss_triangle.c index f22bc52f0a..5d1c70e948 100644 --- a/src/mesa/swrast_setup/ss_triangle.c +++ b/src/mesa/swrast_setup/ss_triangle.c @@ -47,7 +47,7 @@ static tnl_quad_func quad_tab[SS_MAX_TRIFUNC]; /* * Render a triangle respecting edge flags. */ -typedef void (* swsetup_edge_render_prim_tri)(GLcontext *ctx, +typedef void (* swsetup_edge_render_prim_tri)(struct gl_context *ctx, const GLubyte *ef, GLuint e0, GLuint e1, @@ -60,7 +60,7 @@ typedef void (* swsetup_edge_render_prim_tri)(GLcontext *ctx, * Render a triangle using lines and respecting edge flags. */ static void -_swsetup_edge_render_line_tri(GLcontext *ctx, +_swsetup_edge_render_line_tri(struct gl_context *ctx, const GLubyte *ef, GLuint e0, GLuint e1, @@ -86,7 +86,7 @@ _swsetup_edge_render_line_tri(GLcontext *ctx, * Render a triangle using points and respecting edge flags. */ static void -_swsetup_edge_render_point_tri(GLcontext *ctx, +_swsetup_edge_render_point_tri(struct gl_context *ctx, const GLubyte *ef, GLuint e0, GLuint e1, @@ -105,7 +105,7 @@ _swsetup_edge_render_point_tri(GLcontext *ctx, /* * Render a triangle respecting cull and shade model. */ -static void _swsetup_render_tri(GLcontext *ctx, +static void _swsetup_render_tri(struct gl_context *ctx, GLuint e0, GLuint e1, GLuint e2, @@ -195,7 +195,7 @@ static void _swsetup_render_tri(GLcontext *ctx, #include "ss_tritmp.h" -void _swsetup_trifuncs_init( GLcontext *ctx ) +void _swsetup_trifuncs_init( struct gl_context *ctx ) { (void) ctx; @@ -210,7 +210,7 @@ void _swsetup_trifuncs_init( GLcontext *ctx ) } -static void swsetup_points( GLcontext *ctx, GLuint first, GLuint last ) +static void swsetup_points( struct gl_context *ctx, GLuint first, GLuint last ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; SWvertex *verts = SWSETUP_CONTEXT(ctx)->verts; @@ -228,7 +228,7 @@ static void swsetup_points( GLcontext *ctx, GLuint first, GLuint last ) } } -static void swsetup_line( GLcontext *ctx, GLuint v0, GLuint v1 ) +static void swsetup_line( struct gl_context *ctx, GLuint v0, GLuint v1 ) { SWvertex *verts = SWSETUP_CONTEXT(ctx)->verts; _swrast_Line( ctx, &verts[v0], &verts[v1] ); @@ -236,7 +236,7 @@ static void swsetup_line( GLcontext *ctx, GLuint v0, GLuint v1 ) -void _swsetup_choose_trifuncs( GLcontext *ctx ) +void _swsetup_choose_trifuncs( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLuint ind = 0; diff --git a/src/mesa/swrast_setup/ss_triangle.h b/src/mesa/swrast_setup/ss_triangle.h index ac553cbd01..05110865da 100644 --- a/src/mesa/swrast_setup/ss_triangle.h +++ b/src/mesa/swrast_setup/ss_triangle.h @@ -32,7 +32,7 @@ #include "main/mtypes.h" -void _swsetup_trifuncs_init( GLcontext *ctx ); -void _swsetup_choose_trifuncs( GLcontext *ctx ); +void _swsetup_trifuncs_init( struct gl_context *ctx ); +void _swsetup_choose_trifuncs( struct gl_context *ctx ); #endif diff --git a/src/mesa/swrast_setup/ss_tritmp.h b/src/mesa/swrast_setup/ss_tritmp.h index 8e9fa1bd55..5844ad594c 100644 --- a/src/mesa/swrast_setup/ss_tritmp.h +++ b/src/mesa/swrast_setup/ss_tritmp.h @@ -30,7 +30,7 @@ * This is where we handle assigning vertex colors based on front/back * facing, compute polygon offset and handle glPolygonMode(). */ -static void TAG(triangle)(GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2 ) +static void TAG(triangle)(struct gl_context *ctx, GLuint e0, GLuint e1, GLuint e2 ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; SScontext *swsetup = SWSETUP_CONTEXT(ctx); @@ -213,7 +213,7 @@ static void TAG(triangle)(GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2 ) /* Need to fixup edgeflags when decomposing to triangles: */ -static void TAG(quadfunc)( GLcontext *ctx, GLuint v0, +static void TAG(quadfunc)( struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) { if (IND & SS_UNFILLED_BIT) { diff --git a/src/mesa/swrast_setup/ss_vb.h b/src/mesa/swrast_setup/ss_vb.h index 944a3b78d8..b8322f35a3 100644 --- a/src/mesa/swrast_setup/ss_vb.h +++ b/src/mesa/swrast_setup/ss_vb.h @@ -31,7 +31,7 @@ #include "main/mtypes.h" -void _swsetup_vb_init( GLcontext *ctx ); -void _swsetup_choose_rastersetup_func( GLcontext *ctx ); +void _swsetup_vb_init( struct gl_context *ctx ); +void _swsetup_choose_rastersetup_func( struct gl_context *ctx ); #endif diff --git a/src/mesa/swrast_setup/swrast_setup.h b/src/mesa/swrast_setup/swrast_setup.h index 5dcbe2675b..1d87ec1082 100644 --- a/src/mesa/swrast_setup/swrast_setup.h +++ b/src/mesa/swrast_setup/swrast_setup.h @@ -41,21 +41,21 @@ #include "swrast/swrast.h" extern GLboolean -_swsetup_CreateContext( GLcontext *ctx ); +_swsetup_CreateContext( struct gl_context *ctx ); extern void -_swsetup_DestroyContext( GLcontext *ctx ); +_swsetup_DestroyContext( struct gl_context *ctx ); extern void -_swsetup_InvalidateState( GLcontext *ctx, GLuint new_state ); +_swsetup_InvalidateState( struct gl_context *ctx, GLuint new_state ); extern void -_swsetup_Wakeup( GLcontext *ctx ); +_swsetup_Wakeup( struct gl_context *ctx ); /* Helper function to translate a hardware vertex (as understood by * the tnl/t_vertex.c code) to a swrast vertex. */ extern void -_swsetup_Translate( GLcontext *ctx, const void *vertex, SWvertex *dest ); +_swsetup_Translate( struct gl_context *ctx, const void *vertex, SWvertex *dest ); #endif diff --git a/src/mesa/tnl/NOTES b/src/mesa/tnl/NOTES index c39b43485e..aac5884da8 100644 --- a/src/mesa/tnl/NOTES +++ b/src/mesa/tnl/NOTES @@ -17,16 +17,16 @@ STATE To create and destroy the module: - GLboolean _tnl_CreateContext( GLcontext *ctx ); - void _tnl_DestroyContext( GLcontext *ctx ); + GLboolean _tnl_CreateContext( struct gl_context *ctx ); + void _tnl_DestroyContext( struct gl_context *ctx ); The module is not active by default, and must be installed by calling _tnl_Wakeup(). This function installs internal tnl functions into all the vtxfmt dispatch hooks, thus taking over the task of transformation and lighting entirely: - void _tnl_wakeup_exec( GLcontext *ctx ); - void _tnl_wakeup_save_exec( GLcontext *ctx ); + void _tnl_wakeup_exec( struct gl_context *ctx ); + void _tnl_wakeup_save_exec( struct gl_context *ctx ); This module tracks state changes internally and maintains derived @@ -34,7 +34,7 @@ values based on the current state. For this to work, the driver ensure the following funciton is called whenever the state changes and the swsetup module is 'awake': - void _tnl_InvalidateState( GLcontext *ctx, GLuint new_state ); + void _tnl_InvalidateState( struct gl_context *ctx, GLuint new_state ); There is no explicit call to put the tnl module to sleep. Simply install other function pointers into all the vtxfmt dispatch slots, @@ -58,13 +58,13 @@ higher-level primitives (for example the radeon driver). In addition, the following functions provide further tweaks: extern void -_tnl_need_projected_coords( GLcontext *ctx, GLboolean flag ); +_tnl_need_projected_coords( struct gl_context *ctx, GLboolean flag ); - Direct the default vertex transformation stage to produce/not produce projected clip coordinates. extern void -_tnl_need_dlist_loopback( GLcontext *ctx, GLboolean flag ); +_tnl_need_dlist_loopback( struct gl_context *ctx, GLboolean flag ); - Direct the display list component of the tnl module to replay display lists as 'glVertex' type calls, rather than @@ -76,7 +76,7 @@ _tnl_need_dlist_loopback( GLcontext *ctx, GLboolean flag ); extern void -_tnl_need_dlist_norm_lengths( GLcontext *ctx, GLboolean flag ); +_tnl_need_dlist_norm_lengths( struct gl_context *ctx, GLboolean flag ); - Direct the display list component to enable/disable caching 1/length values for display list normals. Doing so is @@ -88,7 +88,7 @@ DRIVER INTERFACE The module itself offers a minimal driver interface: - void (*RunPipeline)( GLcontext *ctx ); + void (*RunPipeline)( struct gl_context *ctx ); Normally this is set to _tnl_RunPipeline(), however the driver can use this hook to wrap checks or other code around this call. diff --git a/src/mesa/tnl/t_context.c b/src/mesa/tnl/t_context.c index f27c8ad9d6..47aeeb8859 100644 --- a/src/mesa/tnl/t_context.c +++ b/src/mesa/tnl/t_context.c @@ -42,7 +42,7 @@ #include "vbo/vbo.h" GLboolean -_tnl_CreateContext( GLcontext *ctx ) +_tnl_CreateContext( struct gl_context *ctx ) { TNLcontext *tnl; @@ -90,7 +90,7 @@ _tnl_CreateContext( GLcontext *ctx ) void -_tnl_DestroyContext( GLcontext *ctx ) +_tnl_DestroyContext( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -102,7 +102,7 @@ _tnl_DestroyContext( GLcontext *ctx ) void -_tnl_InvalidateState( GLcontext *ctx, GLuint new_state ) +_tnl_InvalidateState( struct gl_context *ctx, GLuint new_state ) { TNLcontext *tnl = TNL_CONTEXT(ctx); const struct gl_vertex_program *vp = ctx->VertexProgram._Current; @@ -173,7 +173,7 @@ _tnl_InvalidateState( GLcontext *ctx, GLuint new_state ) void -_tnl_wakeup( GLcontext *ctx ) +_tnl_wakeup( struct gl_context *ctx ) { /* Assume we haven't been getting state updates either: */ @@ -196,14 +196,14 @@ _tnl_wakeup( GLcontext *ctx ) * we should "Divide-by-W". Software renders will want that. */ void -_tnl_need_projected_coords( GLcontext *ctx, GLboolean mode ) +_tnl_need_projected_coords( struct gl_context *ctx, GLboolean mode ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->NeedNdcCoords = mode; } void -_tnl_allow_vertex_fog( GLcontext *ctx, GLboolean value ) +_tnl_allow_vertex_fog( struct gl_context *ctx, GLboolean value ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->AllowVertexFog = value; @@ -213,7 +213,7 @@ _tnl_allow_vertex_fog( GLcontext *ctx, GLboolean value ) } void -_tnl_allow_pixel_fog( GLcontext *ctx, GLboolean value ) +_tnl_allow_pixel_fog( struct gl_context *ctx, GLboolean value ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->AllowPixelFog = value; diff --git a/src/mesa/tnl/t_context.h b/src/mesa/tnl/t_context.h index 258906f795..bc01646247 100644 --- a/src/mesa/tnl/t_context.h +++ b/src/mesa/tnl/t_context.h @@ -235,7 +235,7 @@ struct tnl_pipeline_stage /* Allocate private data */ - GLboolean (*create)( GLcontext *ctx, struct tnl_pipeline_stage * ); + GLboolean (*create)( struct gl_context *ctx, struct tnl_pipeline_stage * ); /* Free private data. */ @@ -244,7 +244,7 @@ struct tnl_pipeline_stage /* Called on any statechange or input array size change or * input array change to/from zero stride. */ - void (*validate)( GLcontext *ctx, struct tnl_pipeline_stage * ); + void (*validate)( struct gl_context *ctx, struct tnl_pipeline_stage * ); /* Called from _tnl_run_pipeline(). The stage.changed_inputs value * encodes all inputs to thee struct which have changed. If @@ -254,7 +254,7 @@ struct tnl_pipeline_stage * Return value: GL_TRUE - keep going * GL_FALSE - finished pipeline */ - GLboolean (*run)( GLcontext *ctx, struct tnl_pipeline_stage * ); + GLboolean (*run)( struct gl_context *ctx, struct tnl_pipeline_stage * ); }; @@ -284,7 +284,7 @@ typedef void (*tnl_insert_func)( const struct tnl_clipspace_attr *a, GLubyte *v, const GLfloat *in ); -typedef void (*tnl_emit_func)( GLcontext *ctx, +typedef void (*tnl_emit_func)( struct gl_context *ctx, GLuint count, GLubyte *dest ); @@ -311,19 +311,19 @@ struct tnl_clipspace_attr -typedef void (*tnl_points_func)( GLcontext *ctx, GLuint first, GLuint last ); -typedef void (*tnl_line_func)( GLcontext *ctx, GLuint v1, GLuint v2 ); -typedef void (*tnl_triangle_func)( GLcontext *ctx, +typedef void (*tnl_points_func)( struct gl_context *ctx, GLuint first, GLuint last ); +typedef void (*tnl_line_func)( struct gl_context *ctx, GLuint v1, GLuint v2 ); +typedef void (*tnl_triangle_func)( struct gl_context *ctx, GLuint v1, GLuint v2, GLuint v3 ); -typedef void (*tnl_quad_func)( GLcontext *ctx, GLuint v1, GLuint v2, +typedef void (*tnl_quad_func)( struct gl_context *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4 ); -typedef void (*tnl_render_func)( GLcontext *ctx, GLuint start, GLuint count, +typedef void (*tnl_render_func)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ); -typedef void (*tnl_interp_func)( GLcontext *ctx, +typedef void (*tnl_interp_func)( struct gl_context *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary ); -typedef void (*tnl_copy_pv_func)( GLcontext *ctx, GLuint dst, GLuint src ); -typedef void (*tnl_setup_func)( GLcontext *ctx, +typedef void (*tnl_copy_pv_func)( struct gl_context *ctx, GLuint dst, GLuint src ); +typedef void (*tnl_setup_func)( struct gl_context *ctx, GLuint start, GLuint end, GLuint new_inputs); @@ -377,7 +377,7 @@ struct tnl_clipspace struct tnl_clipspace_fastpath *fastpath; - void (*codegen_emit)( GLcontext *ctx ); + void (*codegen_emit)( struct gl_context *ctx ); }; @@ -387,13 +387,13 @@ struct tnl_device_driver *** TNL Pipeline ***/ - void (*RunPipeline)(GLcontext *ctx); + void (*RunPipeline)(struct gl_context *ctx); /* Replaces PipelineStart/PipelineFinish -- intended to allow * drivers to wrap _tnl_run_pipeline() with code to validate state * and grab/release hardware locks. */ - void (*NotifyMaterialChange)(GLcontext *ctx); + void (*NotifyMaterialChange)(struct gl_context *ctx); /* Alert tnl-aware drivers of changes to material. */ @@ -402,14 +402,14 @@ struct tnl_device_driver ***/ struct { - void (*Start)(GLcontext *ctx); - void (*Finish)(GLcontext *ctx); + void (*Start)(struct gl_context *ctx); + void (*Finish)(struct gl_context *ctx); /* Called before and after all rendering operations, including DrawPixels, * ReadPixels, Bitmap, span functions, and CopyTexImage, etc commands. * These are a suitable place for grabbing/releasing hardware locks. */ - void (*PrimitiveNotify)(GLcontext *ctx, GLenum mode); + void (*PrimitiveNotify)(struct gl_context *ctx, GLenum mode); /* Called between RenderStart() and RenderFinish() to indicate the * type of primitive we're about to draw. Mode will be one of the * modes accepted by glBegin(). @@ -427,12 +427,12 @@ struct tnl_device_driver * vertex attributes should be copied. */ - void (*ClippedPolygon)( GLcontext *ctx, const GLuint *elts, GLuint n ); + void (*ClippedPolygon)( struct gl_context *ctx, const GLuint *elts, GLuint n ); /* Render a polygon with <n> vertices whose indexes are in the <elts> * array. */ - void (*ClippedLine)( GLcontext *ctx, GLuint v0, GLuint v1 ); + void (*ClippedLine)( struct gl_context *ctx, GLuint v0, GLuint v1 ); /* Render a line between the two vertices given by indexes v0 and v1. */ tnl_points_func Points; /* must now respect vb->elts */ @@ -452,7 +452,7 @@ struct tnl_device_driver * vertices. */ - void (*ResetLineStipple)( GLcontext *ctx ); + void (*ResetLineStipple)( struct gl_context *ctx ); /* Reset the hardware's line stipple counter. */ @@ -467,7 +467,7 @@ struct tnl_device_driver */ - GLboolean (*Multipass)( GLcontext *ctx, GLuint passno ); + GLboolean (*Multipass)( struct gl_context *ctx, GLuint passno ); /* Driver may request additional render passes by returning GL_TRUE * when this function is called. This function will be called * after the first pass, and passes will be made until the function @@ -539,7 +539,7 @@ typedef struct extern void -tnl_clip_prepare(GLcontext *ctx); +tnl_clip_prepare(struct gl_context *ctx); #endif diff --git a/src/mesa/tnl/t_draw.c b/src/mesa/tnl/t_draw.c index fdde294257..30f1bf323c 100644 --- a/src/mesa/tnl/t_draw.c +++ b/src/mesa/tnl/t_draw.c @@ -38,7 +38,7 @@ -static GLubyte *get_space(GLcontext *ctx, GLuint bytes) +static GLubyte *get_space(struct gl_context *ctx, GLuint bytes) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLubyte *space = malloc(bytes); @@ -48,7 +48,7 @@ static GLubyte *get_space(GLcontext *ctx, GLuint bytes) } -static void free_space(GLcontext *ctx) +static void free_space(struct gl_context *ctx) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLuint i; @@ -128,7 +128,7 @@ convert_half_to_float(const struct gl_client_array *input, /* Adjust pointer to point at first requested element, convert to * floating point, populate VB->AttribPtr[]. */ -static void _tnl_import_array( GLcontext *ctx, +static void _tnl_import_array( struct gl_context *ctx, GLuint attrib, GLuint count, const struct gl_client_array *input, @@ -202,7 +202,7 @@ static void _tnl_import_array( GLcontext *ctx, #define CLIPVERTS ((6 + MAX_CLIP_PLANES) * 2) -static GLboolean *_tnl_import_edgeflag( GLcontext *ctx, +static GLboolean *_tnl_import_edgeflag( struct gl_context *ctx, const GLvector4f *input, GLuint count) { @@ -221,7 +221,7 @@ static GLboolean *_tnl_import_edgeflag( GLcontext *ctx, } -static void bind_inputs( GLcontext *ctx, +static void bind_inputs( struct gl_context *ctx, const struct gl_client_array *inputs[], GLint count, struct gl_buffer_object **bo, @@ -292,7 +292,7 @@ static void bind_inputs( GLcontext *ctx, /* Translate indices to GLuints and store in VB->Elts. */ -static void bind_indices( GLcontext *ctx, +static void bind_indices( struct gl_context *ctx, const struct _mesa_index_buffer *ib, struct gl_buffer_object **bo, GLuint *nr_bo) @@ -345,7 +345,7 @@ static void bind_indices( GLcontext *ctx, } } -static void bind_prims( GLcontext *ctx, +static void bind_prims( struct gl_context *ctx, const struct _mesa_prim *prim, GLuint nr_prims ) { @@ -356,7 +356,7 @@ static void bind_prims( GLcontext *ctx, VB->PrimitiveCount = nr_prims; } -static void unmap_vbos( GLcontext *ctx, +static void unmap_vbos( struct gl_context *ctx, struct gl_buffer_object **bo, GLuint nr_bo ) { @@ -369,7 +369,7 @@ static void unmap_vbos( GLcontext *ctx, } -void _tnl_vbo_draw_prims(GLcontext *ctx, +void _tnl_vbo_draw_prims(struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -388,7 +388,7 @@ void _tnl_vbo_draw_prims(GLcontext *ctx, * module. In a regular swtnl driver, this can be plugged straight * into the vbo->Driver.DrawPrims() callback. */ -void _tnl_draw_prims( GLcontext *ctx, +void _tnl_draw_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, diff --git a/src/mesa/tnl/t_pipeline.c b/src/mesa/tnl/t_pipeline.c index 36fcd074cd..18f095f0d4 100644 --- a/src/mesa/tnl/t_pipeline.c +++ b/src/mesa/tnl/t_pipeline.c @@ -35,7 +35,7 @@ #include "t_vp_build.h" #include "t_vertex.h" -void _tnl_install_pipeline( GLcontext *ctx, +void _tnl_install_pipeline( struct gl_context *ctx, const struct tnl_pipeline_stage **stages ) { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -55,7 +55,7 @@ void _tnl_install_pipeline( GLcontext *ctx, tnl->pipeline.nr_stages = i; } -void _tnl_destroy_pipeline( GLcontext *ctx ) +void _tnl_destroy_pipeline( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLuint i; @@ -71,7 +71,7 @@ void _tnl_destroy_pipeline( GLcontext *ctx ) -static GLuint check_input_changes( GLcontext *ctx ) +static GLuint check_input_changes( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); GLuint i; @@ -89,7 +89,7 @@ static GLuint check_input_changes( GLcontext *ctx ) } -static GLuint check_output_changes( GLcontext *ctx ) +static GLuint check_output_changes( struct gl_context *ctx ) { #if 0 TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -113,7 +113,7 @@ static GLuint check_output_changes( GLcontext *ctx ) } -void _tnl_run_pipeline( GLcontext *ctx ) +void _tnl_run_pipeline( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); unsigned short __tmp; diff --git a/src/mesa/tnl/t_pipeline.h b/src/mesa/tnl/t_pipeline.h index a6429869cb..0eb03395c3 100644 --- a/src/mesa/tnl/t_pipeline.h +++ b/src/mesa/tnl/t_pipeline.h @@ -33,11 +33,11 @@ #include "main/mtypes.h" #include "t_context.h" -extern void _tnl_run_pipeline( GLcontext *ctx ); +extern void _tnl_run_pipeline( struct gl_context *ctx ); -extern void _tnl_destroy_pipeline( GLcontext *ctx ); +extern void _tnl_destroy_pipeline( struct gl_context *ctx ); -extern void _tnl_install_pipeline( GLcontext *ctx, +extern void _tnl_install_pipeline( struct gl_context *ctx, const struct tnl_pipeline_stage **stages ); @@ -64,10 +64,10 @@ extern const struct tnl_pipeline_stage *_tnl_vp_pipeline[]; extern tnl_render_func _tnl_render_tab_elts[]; extern tnl_render_func _tnl_render_tab_verts[]; -extern void _tnl_RenderClippedPolygon( GLcontext *ctx, +extern void _tnl_RenderClippedPolygon( struct gl_context *ctx, const GLuint *elts, GLuint n ); -extern void _tnl_RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ); +extern void _tnl_RenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ); #endif diff --git a/src/mesa/tnl/t_rasterpos.c b/src/mesa/tnl/t_rasterpos.c index d82d5b5073..0492490dfc 100644 --- a/src/mesa/tnl/t_rasterpos.c +++ b/src/mesa/tnl/t_rasterpos.c @@ -84,7 +84,7 @@ viewclip_point_z( const GLfloat v[] ) * \return zero if the point was clipped, or one otherwise. */ static GLuint -userclip_point( GLcontext *ctx, const GLfloat v[] ) +userclip_point( struct gl_context *ctx, const GLfloat v[] ) { GLuint p; @@ -114,7 +114,7 @@ userclip_point( GLcontext *ctx, const GLfloat v[] ) * \param Rindex returned color index */ static void -shade_rastpos(GLcontext *ctx, +shade_rastpos(struct gl_context *ctx, const GLfloat vertex[4], const GLfloat normal[3], GLfloat Rcolor[4], @@ -263,7 +263,7 @@ shade_rastpos(GLcontext *ctx, * \param texcoord incoming texcoord and resulting texcoord */ static void -compute_texgen(GLcontext *ctx, const GLfloat vObj[4], const GLfloat vEye[4], +compute_texgen(struct gl_context *ctx, const GLfloat vObj[4], const GLfloat vEye[4], const GLfloat normal[3], GLuint unit, GLfloat texcoord[4]) { const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -373,7 +373,7 @@ compute_texgen(GLcontext *ctx, const GLfloat vObj[4], const GLfloat vEye[4], * \param vObj vertex position in object space */ void -_tnl_RasterPos(GLcontext *ctx, const GLfloat vObj[4]) +_tnl_RasterPos(struct gl_context *ctx, const GLfloat vObj[4]) { if (ctx->VertexProgram._Enabled) { /* XXX implement this */ diff --git a/src/mesa/tnl/t_vb_cliptmp.h b/src/mesa/tnl/t_vb_cliptmp.h index 8cc36e666d..d593193435 100644 --- a/src/mesa/tnl/t_vb_cliptmp.h +++ b/src/mesa/tnl/t_vb_cliptmp.h @@ -115,7 +115,7 @@ do { \ /* Clip a line against the viewport and user clip planes. */ static INLINE void -TAG(clip_line)( GLcontext *ctx, GLuint v0, GLuint v1, GLubyte mask ) +TAG(clip_line)( struct gl_context *ctx, GLuint v0, GLuint v1, GLubyte mask ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -184,7 +184,7 @@ TAG(clip_line)( GLcontext *ctx, GLuint v0, GLuint v1, GLubyte mask ) /* Clip a triangle against the viewport and user clip planes. */ static INLINE void -TAG(clip_tri)( GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLubyte mask ) +TAG(clip_tri)( struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLubyte mask ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -263,7 +263,7 @@ TAG(clip_tri)( GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLubyte mask ) /* Clip a quad against the viewport and user clip planes. */ static INLINE void -TAG(clip_quad)( GLcontext *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3, +TAG(clip_quad)( struct gl_context *ctx, GLuint v0, GLuint v1, GLuint v2, GLuint v3, GLubyte mask ) { TNLcontext *tnl = TNL_CONTEXT(ctx); diff --git a/src/mesa/tnl/t_vb_fog.c b/src/mesa/tnl/t_vb_fog.c index 9faae24ec6..cbd8dfc967 100644 --- a/src/mesa/tnl/t_vb_fog.c +++ b/src/mesa/tnl/t_vb_fog.c @@ -94,7 +94,7 @@ init_static_data( void ) * Fog blend factors are in the range [0,1]. */ static void -compute_fog_blend_factors(GLcontext *ctx, GLvector4f *out, const GLvector4f *in) +compute_fog_blend_factors(struct gl_context *ctx, GLvector4f *out, const GLvector4f *in) { GLfloat end = ctx->Fog.End; GLfloat *v = in->start; @@ -140,7 +140,7 @@ compute_fog_blend_factors(GLcontext *ctx, GLvector4f *out, const GLvector4f *in) static GLboolean -run_fog_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) +run_fog_stage(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -235,7 +235,7 @@ run_fog_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) /* Called the first time stage->run() is invoked. */ static GLboolean -alloc_fog_data(GLcontext *ctx, struct tnl_pipeline_stage *stage) +alloc_fog_data(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct fog_stage_data *store; diff --git a/src/mesa/tnl/t_vb_light.c b/src/mesa/tnl/t_vb_light.c index e7309aaac6..3acedf6e57 100644 --- a/src/mesa/tnl/t_vb_light.c +++ b/src/mesa/tnl/t_vb_light.c @@ -41,7 +41,7 @@ #define LIGHT_MATERIAL 0x2 #define MAX_LIGHT_FUNC 0x4 -typedef void (*light_func)( GLcontext *ctx, +typedef void (*light_func)( struct gl_context *ctx, struct vertex_buffer *VB, struct tnl_pipeline_stage *stage, GLvector4f *input ); @@ -85,7 +85,7 @@ struct light_stage_data { * It's called per-vertex in the lighting loop. */ static void -update_materials(GLcontext *ctx, struct light_stage_data *store) +update_materials(struct gl_context *ctx, struct light_stage_data *store) { GLuint i; @@ -110,7 +110,7 @@ update_materials(GLcontext *ctx, struct light_stage_data *store) * Return number of material attributes which will track vertex color. */ static GLuint -prepare_materials(GLcontext *ctx, +prepare_materials(struct gl_context *ctx, struct vertex_buffer *VB, struct light_stage_data *store) { GLuint i; @@ -192,7 +192,7 @@ static void init_lighting_tables( void ) } -static GLboolean run_lighting( GLcontext *ctx, +static GLboolean run_lighting( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct light_stage_data *store = LIGHT_STAGE_DATA(stage); @@ -250,7 +250,7 @@ static GLboolean run_lighting( GLcontext *ctx, /* Called in place of do_lighting when the light table may have changed. */ -static void validate_lighting( GLcontext *ctx, +static void validate_lighting( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { light_func *tab; @@ -284,7 +284,7 @@ static void validate_lighting( GLcontext *ctx, /* Called the first time stage->run is called. In effect, don't * allocate data until the first time the stage is run. */ -static GLboolean init_lighting( GLcontext *ctx, +static GLboolean init_lighting( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { TNLcontext *tnl = TNL_CONTEXT(ctx); diff --git a/src/mesa/tnl/t_vb_lighttmp.h b/src/mesa/tnl/t_vb_lighttmp.h index 0a98c6b02a..aae1d18ff7 100644 --- a/src/mesa/tnl/t_vb_lighttmp.h +++ b/src/mesa/tnl/t_vb_lighttmp.h @@ -44,7 +44,7 @@ * stage is the lighting stage-private data * input is the vector of eye or object-space vertex coordinates */ -static void TAG(light_rgba_spec)( GLcontext *ctx, +static void TAG(light_rgba_spec)( struct gl_context *ctx, struct vertex_buffer *VB, struct tnl_pipeline_stage *stage, GLvector4f *input ) @@ -232,7 +232,7 @@ static void TAG(light_rgba_spec)( GLcontext *ctx, } -static void TAG(light_rgba)( GLcontext *ctx, +static void TAG(light_rgba)( struct gl_context *ctx, struct vertex_buffer *VB, struct tnl_pipeline_stage *stage, GLvector4f *input ) @@ -421,7 +421,7 @@ static void TAG(light_rgba)( GLcontext *ctx, /* As below, but with just a single light. */ -static void TAG(light_fast_rgba_single)( GLcontext *ctx, +static void TAG(light_fast_rgba_single)( struct gl_context *ctx, struct vertex_buffer *VB, struct tnl_pipeline_stage *stage, GLvector4f *input ) @@ -529,7 +529,7 @@ static void TAG(light_fast_rgba_single)( GLcontext *ctx, /* Light infinite lights */ -static void TAG(light_fast_rgba)( GLcontext *ctx, +static void TAG(light_fast_rgba)( struct gl_context *ctx, struct vertex_buffer *VB, struct tnl_pipeline_stage *stage, GLvector4f *input ) diff --git a/src/mesa/tnl/t_vb_normals.c b/src/mesa/tnl/t_vb_normals.c index c2aa655674..c19b48e51e 100644 --- a/src/mesa/tnl/t_vb_normals.c +++ b/src/mesa/tnl/t_vb_normals.c @@ -47,7 +47,7 @@ struct normal_stage_data { static GLboolean -run_normal_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) +run_normal_stage(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { struct normal_stage_data *store = NORMAL_STAGE_DATA(stage); struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -89,7 +89,7 @@ run_normal_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) * to point to the appropriate normal transformation routine. */ static void -validate_normal_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) +validate_normal_stage(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { struct normal_stage_data *store = NORMAL_STAGE_DATA(stage); @@ -146,7 +146,7 @@ validate_normal_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) * Allocate stage's private data (storage for transformed normals). */ static GLboolean -alloc_normal_data(GLcontext *ctx, struct tnl_pipeline_stage *stage) +alloc_normal_data(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct normal_stage_data *store; diff --git a/src/mesa/tnl/t_vb_points.c b/src/mesa/tnl/t_vb_points.c index 20634c80d1..9edbbc708e 100644 --- a/src/mesa/tnl/t_vb_points.c +++ b/src/mesa/tnl/t_vb_points.c @@ -47,7 +47,7 @@ struct point_stage_data { * disabled. */ static GLboolean -run_point_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) +run_point_stage(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { if (ctx->Point._Attenuated && !ctx->VertexProgram._Current) { struct point_stage_data *store = POINT_STAGE_DATA(stage); @@ -77,7 +77,7 @@ run_point_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) static GLboolean -alloc_point_data(GLcontext *ctx, struct tnl_pipeline_stage *stage) +alloc_point_data(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; struct point_stage_data *store; diff --git a/src/mesa/tnl/t_vb_program.c b/src/mesa/tnl/t_vb_program.c index f3a338ef1e..76f8fde3f5 100644 --- a/src/mesa/tnl/t_vb_program.c +++ b/src/mesa/tnl/t_vb_program.c @@ -74,7 +74,7 @@ struct vp_stage_data { static void -userclip( GLcontext *ctx, +userclip( struct gl_context *ctx, GLvector4f *clip, GLubyte *clipmask, GLubyte *clipormask, @@ -120,7 +120,7 @@ userclip( GLcontext *ctx, static GLboolean -do_ndc_cliptest(GLcontext *ctx, struct vp_stage_data *store) +do_ndc_cliptest(struct gl_context *ctx, struct vp_stage_data *store) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -187,7 +187,7 @@ do_ndc_cliptest(GLcontext *ctx, struct vp_stage_data *store) * moved into main/ someday. */ static void -vp_fetch_texel(GLcontext *ctx, const GLfloat texcoord[4], GLfloat lambda, +vp_fetch_texel(struct gl_context *ctx, const GLfloat texcoord[4], GLfloat lambda, GLuint unit, GLfloat color[4]) { SWcontext *swrast = SWRAST_CONTEXT(ctx); @@ -204,7 +204,7 @@ vp_fetch_texel(GLcontext *ctx, const GLfloat texcoord[4], GLfloat lambda, * string has been parsed. */ GLboolean -_tnl_program_string(GLcontext *ctx, GLenum target, struct gl_program *program) +_tnl_program_string(struct gl_context *ctx, GLenum target, struct gl_program *program) { /* No-op. * If we had derived anything from the program that was private to this @@ -218,7 +218,7 @@ _tnl_program_string(GLcontext *ctx, GLenum target, struct gl_program *program) * Initialize virtual machine state prior to executing vertex program. */ static void -init_machine(GLcontext *ctx, struct gl_program_machine *machine) +init_machine(struct gl_context *ctx, struct gl_program_machine *machine) { /* Input registers get initialized from the current vertex attribs */ memcpy(machine->VertAttribs, ctx->Current.Attrib, @@ -261,7 +261,7 @@ init_machine(GLcontext *ctx, struct gl_program_machine *machine) * Map the texture images which the vertex program will access (if any). */ static void -map_textures(GLcontext *ctx, const struct gl_vertex_program *vp) +map_textures(struct gl_context *ctx, const struct gl_vertex_program *vp) { GLuint u; @@ -283,7 +283,7 @@ map_textures(GLcontext *ctx, const struct gl_vertex_program *vp) * Unmap the texture images which were used by the vertex program (if any). */ static void -unmap_textures(GLcontext *ctx, const struct gl_vertex_program *vp) +unmap_textures(struct gl_context *ctx, const struct gl_vertex_program *vp) { GLuint u; @@ -305,7 +305,7 @@ unmap_textures(GLcontext *ctx, const struct gl_vertex_program *vp) * This function executes vertex programs */ static GLboolean -run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage ) +run_vp( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vp_stage_data *store = VP_STAGE_DATA(stage); @@ -493,7 +493,7 @@ run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage ) * allocate data until the first time the stage is run. */ static GLboolean -init_vp(GLcontext *ctx, struct tnl_pipeline_stage *stage) +init_vp(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &(tnl->vb); @@ -546,7 +546,7 @@ dtr(struct tnl_pipeline_stage *stage) static void -validate_vp_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage) +validate_vp_stage(struct gl_context *ctx, struct tnl_pipeline_stage *stage) { if (ctx->VertexProgram._Current) { _swrast_update_texture_samplers(ctx); diff --git a/src/mesa/tnl/t_vb_render.c b/src/mesa/tnl/t_vb_render.c index 7d991009a1..cb31921324 100644 --- a/src/mesa/tnl/t_vb_render.c +++ b/src/mesa/tnl/t_vb_render.c @@ -146,7 +146,7 @@ do { \ /* TODO: do this for all primitives, verts and elts: */ -static void clip_elt_triangles( GLcontext *ctx, +static void clip_elt_triangles( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -235,7 +235,7 @@ static void clip_elt_triangles( GLcontext *ctx, /* Helper functions for drivers */ /**********************************************************************/ -void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) +void _tnl_RenderClippedPolygon( struct gl_context *ctx, const GLuint *elts, GLuint n ) { TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; @@ -246,7 +246,7 @@ void _tnl_RenderClippedPolygon( GLcontext *ctx, const GLuint *elts, GLuint n ) VB->Elts = tmp; } -void _tnl_RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) +void _tnl_RenderClippedLine( struct gl_context *ctx, GLuint ii, GLuint jj ) { TNLcontext *tnl = TNL_CONTEXT(ctx); tnl->Driver.Render.Line( ctx, ii, jj ); @@ -259,7 +259,7 @@ void _tnl_RenderClippedLine( GLcontext *ctx, GLuint ii, GLuint jj ) /**********************************************************************/ -static GLboolean run_render( GLcontext *ctx, +static GLboolean run_render( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { TNLcontext *tnl = TNL_CONTEXT(ctx); diff --git a/src/mesa/tnl/t_vb_rendertmp.h b/src/mesa/tnl/t_vb_rendertmp.h index 75f6f55bdc..4ed485a7bf 100644 --- a/src/mesa/tnl/t_vb_rendertmp.h +++ b/src/mesa/tnl/t_vb_rendertmp.h @@ -57,7 +57,7 @@ #define RENDER_TAB_QUALIFIER static #endif -static void TAG(render_points)( GLcontext *ctx, +static void TAG(render_points)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -70,7 +70,7 @@ static void TAG(render_points)( GLcontext *ctx, POSTFIX; } -static void TAG(render_lines)( GLcontext *ctx, +static void TAG(render_lines)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -91,7 +91,7 @@ static void TAG(render_lines)( GLcontext *ctx, } -static void TAG(render_line_strip)( GLcontext *ctx, +static void TAG(render_line_strip)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -116,7 +116,7 @@ static void TAG(render_line_strip)( GLcontext *ctx, } -static void TAG(render_line_loop)( GLcontext *ctx, +static void TAG(render_line_loop)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -156,7 +156,7 @@ static void TAG(render_line_loop)( GLcontext *ctx, } -static void TAG(render_triangles)( GLcontext *ctx, +static void TAG(render_triangles)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -189,7 +189,7 @@ static void TAG(render_triangles)( GLcontext *ctx, -static void TAG(render_tri_strip)( GLcontext *ctx, +static void TAG(render_tri_strip)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -239,7 +239,7 @@ static void TAG(render_tri_strip)( GLcontext *ctx, } -static void TAG(render_tri_fan)( GLcontext *ctx, +static void TAG(render_tri_fan)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -286,7 +286,7 @@ static void TAG(render_tri_fan)( GLcontext *ctx, } -static void TAG(render_poly)( GLcontext *ctx, +static void TAG(render_poly)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -355,7 +355,7 @@ static void TAG(render_poly)( GLcontext *ctx, POSTFIX; } -static void TAG(render_quads)( GLcontext *ctx, +static void TAG(render_quads)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -388,7 +388,7 @@ static void TAG(render_quads)( GLcontext *ctx, POSTFIX; } -static void TAG(render_quad_strip)( GLcontext *ctx, +static void TAG(render_quad_strip)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -436,7 +436,7 @@ static void TAG(render_quad_strip)( GLcontext *ctx, POSTFIX; } -static void TAG(render_noop)( GLcontext *ctx, +static void TAG(render_noop)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -444,7 +444,7 @@ static void TAG(render_noop)( GLcontext *ctx, (void)(ctx && start && count && flags); } -RENDER_TAB_QUALIFIER void (*TAG(render_tab)[GL_POLYGON+2])(GLcontext *, +RENDER_TAB_QUALIFIER void (*TAG(render_tab)[GL_POLYGON+2])(struct gl_context *, GLuint, GLuint, GLuint) = diff --git a/src/mesa/tnl/t_vb_texgen.c b/src/mesa/tnl/t_vb_texgen.c index 950e0f54e9..61430c396d 100644 --- a/src/mesa/tnl/t_vb_texgen.c +++ b/src/mesa/tnl/t_vb_texgen.c @@ -54,7 +54,7 @@ struct texgen_stage_data; -typedef void (*texgen_func)( GLcontext *ctx, +typedef void (*texgen_func)( struct gl_context *ctx, struct texgen_stage_data *store, GLuint unit); @@ -248,7 +248,7 @@ static build_f_func build_f_tab[5] = { /* Special case texgen functions. */ -static void texgen_reflection_map_nv( GLcontext *ctx, +static void texgen_reflection_map_nv( struct gl_context *ctx, struct texgen_stage_data *store, GLuint unit ) { @@ -270,7 +270,7 @@ static void texgen_reflection_map_nv( GLcontext *ctx, -static void texgen_normal_map_nv( GLcontext *ctx, +static void texgen_normal_map_nv( struct gl_context *ctx, struct texgen_stage_data *store, GLuint unit ) { @@ -298,7 +298,7 @@ static void texgen_normal_map_nv( GLcontext *ctx, } -static void texgen_sphere_map( GLcontext *ctx, +static void texgen_sphere_map( struct gl_context *ctx, struct texgen_stage_data *store, GLuint unit ) { @@ -331,7 +331,7 @@ static void texgen_sphere_map( GLcontext *ctx, -static void texgen( GLcontext *ctx, +static void texgen( struct gl_context *ctx, struct texgen_stage_data *store, GLuint unit ) { @@ -480,7 +480,7 @@ static void texgen( GLcontext *ctx, -static GLboolean run_texgen_stage( GLcontext *ctx, +static GLboolean run_texgen_stage( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -505,7 +505,7 @@ static GLboolean run_texgen_stage( GLcontext *ctx, } -static void validate_texgen_stage( GLcontext *ctx, +static void validate_texgen_stage( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct texgen_stage_data *store = TEXGEN_STAGE_DATA(stage); @@ -555,7 +555,7 @@ static void validate_texgen_stage( GLcontext *ctx, /* Called the first time stage->run() is invoked. */ -static GLboolean alloc_texgen_data( GLcontext *ctx, +static GLboolean alloc_texgen_data( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; diff --git a/src/mesa/tnl/t_vb_texmat.c b/src/mesa/tnl/t_vb_texmat.c index 985d137e5c..38aa51fc49 100644 --- a/src/mesa/tnl/t_vb_texmat.c +++ b/src/mesa/tnl/t_vb_texmat.c @@ -53,7 +53,7 @@ struct texmat_stage_data { -static GLboolean run_texmat_stage( GLcontext *ctx, +static GLboolean run_texmat_stage( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct texmat_stage_data *store = TEXMAT_STAGE_DATA(stage); @@ -82,7 +82,7 @@ static GLboolean run_texmat_stage( GLcontext *ctx, /* Called the first time stage->run() is invoked. */ -static GLboolean alloc_texmat_data( GLcontext *ctx, +static GLboolean alloc_texmat_data( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; diff --git a/src/mesa/tnl/t_vb_vertex.c b/src/mesa/tnl/t_vb_vertex.c index 453479227b..26e8ae065d 100644 --- a/src/mesa/tnl/t_vb_vertex.c +++ b/src/mesa/tnl/t_vb_vertex.c @@ -58,7 +58,7 @@ struct vertex_stage_data { * t_render_clip.h. */ #define USER_CLIPTEST(NAME, SZ) \ -static void NAME( GLcontext *ctx, \ +static void NAME( struct gl_context *ctx, \ GLvector4f *clip, \ GLubyte *clipmask, \ GLubyte *clipormask, \ @@ -105,7 +105,7 @@ USER_CLIPTEST(userclip2, 2) USER_CLIPTEST(userclip3, 3) USER_CLIPTEST(userclip4, 4) -static void (*(usercliptab[5]))( GLcontext *, +static void (*(usercliptab[5]))( struct gl_context *, GLvector4f *, GLubyte *, GLubyte *, GLubyte * ) = { @@ -118,7 +118,7 @@ static void (*(usercliptab[5]))( GLcontext *, void -tnl_clip_prepare(GLcontext *ctx) +tnl_clip_prepare(struct gl_context *ctx) { /* Neither the x86 nor sparc asm cliptest functions have been updated * for ARB_depth_clamp, so force the C paths. @@ -134,7 +134,7 @@ tnl_clip_prepare(GLcontext *ctx) -static GLboolean run_vertex_stage( GLcontext *ctx, +static GLboolean run_vertex_stage( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct vertex_stage_data *store = (struct vertex_stage_data *)stage->privatePtr; @@ -229,7 +229,7 @@ static GLboolean run_vertex_stage( GLcontext *ctx, } -static GLboolean init_vertex_stage( GLcontext *ctx, +static GLboolean init_vertex_stage( struct gl_context *ctx, struct tnl_pipeline_stage *stage ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; diff --git a/src/mesa/tnl/t_vertex.c b/src/mesa/tnl/t_vertex.c index c1b1570232..f1cb795cd6 100644 --- a/src/mesa/tnl/t_vertex.c +++ b/src/mesa/tnl/t_vertex.c @@ -106,7 +106,7 @@ void _tnl_register_fastpath( struct tnl_clipspace *vtx, /*********************************************************************** * Build codegen functions or return generic ones: */ -static void choose_emit_func( GLcontext *ctx, GLuint count, GLubyte *dest) +static void choose_emit_func( struct gl_context *ctx, GLuint count, GLubyte *dest) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); @@ -150,7 +150,7 @@ static void choose_emit_func( GLcontext *ctx, GLuint count, GLubyte *dest) -static void choose_interp_func( GLcontext *ctx, +static void choose_interp_func( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ) @@ -168,7 +168,7 @@ static void choose_interp_func( GLcontext *ctx, } -static void choose_copy_pv_func( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void choose_copy_pv_func( struct gl_context *ctx, GLuint edst, GLuint esrc ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); @@ -190,7 +190,7 @@ static void choose_copy_pv_func( GLcontext *ctx, GLuint edst, GLuint esrc ) /* Interpolate between two vertices to produce a third: */ -void _tnl_interp( GLcontext *ctx, +void _tnl_interp( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ) @@ -201,7 +201,7 @@ void _tnl_interp( GLcontext *ctx, /* Copy colors from one vertex to another: */ -void _tnl_copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ) +void _tnl_copy_pv( struct gl_context *ctx, GLuint edst, GLuint esrc ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); vtx->copy_pv( ctx, edst, esrc ); @@ -212,7 +212,7 @@ void _tnl_copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ) * reverse any viewport transformation, swizzling or other conversions * which may have been applied: */ -void _tnl_get_attr( GLcontext *ctx, const void *vin, +void _tnl_get_attr( struct gl_context *ctx, const void *vin, GLenum attr, GLfloat *dest ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); @@ -231,7 +231,7 @@ void _tnl_get_attr( GLcontext *ctx, const void *vin, */ if (attr == _TNL_ATTRIB_POINTSIZE) { /* If the hardware vertex doesn't have point size then use size from - * GLcontext. XXX this will be wrong if drawing attenuated points! + * struct gl_context. XXX this will be wrong if drawing attenuated points! */ dest[0] = ctx->Point.Size; } @@ -243,7 +243,7 @@ void _tnl_get_attr( GLcontext *ctx, const void *vin, /* Complementary operation to the above. */ -void _tnl_set_attr( GLcontext *ctx, void *vout, +void _tnl_set_attr( struct gl_context *ctx, void *vout, GLenum attr, const GLfloat *src ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); @@ -260,14 +260,14 @@ void _tnl_set_attr( GLcontext *ctx, void *vout, } -void *_tnl_get_vertex( GLcontext *ctx, GLuint nr ) +void *_tnl_get_vertex( struct gl_context *ctx, GLuint nr ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); return vtx->vertex_buf + nr * vtx->vertex_size; } -void _tnl_invalidate_vertex_state( GLcontext *ctx, GLuint new_state ) +void _tnl_invalidate_vertex_state( struct gl_context *ctx, GLuint new_state ) { if (new_state & (_DD_NEW_TRI_LIGHT_TWOSIDE|_DD_NEW_TRI_UNFILLED) ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); @@ -285,7 +285,7 @@ static void invalidate_funcs( struct tnl_clipspace *vtx ) vtx->new_inputs = ~0; } -GLuint _tnl_install_attrs( GLcontext *ctx, const struct tnl_attr_map *map, +GLuint _tnl_install_attrs( struct gl_context *ctx, const struct tnl_attr_map *map, GLuint nr, const GLfloat *vp, GLuint unpacked_size ) { @@ -360,7 +360,7 @@ GLuint _tnl_install_attrs( GLcontext *ctx, const struct tnl_attr_map *map, -void _tnl_invalidate_vertices( GLcontext *ctx, GLuint newinputs ) +void _tnl_invalidate_vertices( struct gl_context *ctx, GLuint newinputs ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); vtx->new_inputs |= newinputs; @@ -370,14 +370,14 @@ void _tnl_invalidate_vertices( GLcontext *ctx, GLuint newinputs ) /* This event has broader use beyond this file - will move elsewhere * and probably invoke a driver callback. */ -void _tnl_notify_pipeline_output_change( GLcontext *ctx ) +void _tnl_notify_pipeline_output_change( struct gl_context *ctx ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); invalidate_funcs(vtx); } -static void adjust_input_ptrs( GLcontext *ctx, GLint diff) +static void adjust_input_ptrs( struct gl_context *ctx, GLint diff) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); @@ -392,7 +392,7 @@ static void adjust_input_ptrs( GLcontext *ctx, GLint diff) } } -static void update_input_ptrs( GLcontext *ctx, GLuint start ) +static void update_input_ptrs( struct gl_context *ctx, GLuint start ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); @@ -424,7 +424,7 @@ static void update_input_ptrs( GLcontext *ctx, GLuint start ) } -void _tnl_build_vertices( GLcontext *ctx, +void _tnl_build_vertices( struct gl_context *ctx, GLuint start, GLuint end, GLuint newinputs ) @@ -439,7 +439,7 @@ void _tnl_build_vertices( GLcontext *ctx, /* Emit VB vertices start..end to dest. Note that VB vertex at * postion start will be emitted to dest at position zero. */ -void *_tnl_emit_vertices_to_buffer( GLcontext *ctx, +void *_tnl_emit_vertices_to_buffer( struct gl_context *ctx, GLuint start, GLuint end, void *dest ) @@ -457,7 +457,7 @@ void *_tnl_emit_vertices_to_buffer( GLcontext *ctx, * postion start will be emitted to dest at position zero. */ -void *_tnl_emit_indexed_vertices_to_buffer( GLcontext *ctx, +void *_tnl_emit_indexed_vertices_to_buffer( struct gl_context *ctx, const GLuint *elts, GLuint start, GLuint end, @@ -482,7 +482,7 @@ void *_tnl_emit_indexed_vertices_to_buffer( GLcontext *ctx, } -void _tnl_init_vertices( GLcontext *ctx, +void _tnl_init_vertices( struct gl_context *ctx, GLuint vb_size, GLuint max_vertex_size ) { @@ -533,7 +533,7 @@ void _tnl_init_vertices( GLcontext *ctx, } -void _tnl_free_vertices( GLcontext *ctx ) +void _tnl_free_vertices( struct gl_context *ctx ) { TNLcontext *tnl = TNL_CONTEXT(ctx); if (tnl) { diff --git a/src/mesa/tnl/t_vertex.h b/src/mesa/tnl/t_vertex.h index 2dfd7b57f0..252f2f7c29 100644 --- a/src/mesa/tnl/t_vertex.h +++ b/src/mesa/tnl/t_vertex.h @@ -78,43 +78,43 @@ extern const struct tnl_format_info _tnl_format_info[EMIT_MAX]; /* Interpolate between two vertices to produce a third: */ -extern void _tnl_interp( GLcontext *ctx, +extern void _tnl_interp( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ); /* Copy colors from one vertex to another: */ -extern void _tnl_copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ); +extern void _tnl_copy_pv( struct gl_context *ctx, GLuint edst, GLuint esrc ); /* Extract a named attribute from a hardware vertex. Will have to * reverse any viewport transformation, swizzling or other conversions * which may have been applied: */ -extern void _tnl_get_attr( GLcontext *ctx, const void *vertex, GLenum attrib, +extern void _tnl_get_attr( struct gl_context *ctx, const void *vertex, GLenum attrib, GLfloat *dest ); /* Complementary to the above. */ -extern void _tnl_set_attr( GLcontext *ctx, void *vout, GLenum attrib, +extern void _tnl_set_attr( struct gl_context *ctx, void *vout, GLenum attrib, const GLfloat *src ); -extern void *_tnl_get_vertex( GLcontext *ctx, GLuint nr ); +extern void *_tnl_get_vertex( struct gl_context *ctx, GLuint nr ); -extern GLuint _tnl_install_attrs( GLcontext *ctx, +extern GLuint _tnl_install_attrs( struct gl_context *ctx, const struct tnl_attr_map *map, GLuint nr, const GLfloat *vp, GLuint unpacked_size ); -extern void _tnl_free_vertices( GLcontext *ctx ); +extern void _tnl_free_vertices( struct gl_context *ctx ); -extern void _tnl_init_vertices( GLcontext *ctx, +extern void _tnl_init_vertices( struct gl_context *ctx, GLuint vb_size, GLuint max_vertex_size ); -extern void *_tnl_emit_vertices_to_buffer( GLcontext *ctx, +extern void *_tnl_emit_vertices_to_buffer( struct gl_context *ctx, GLuint start, GLuint end, void *dest ); @@ -124,23 +124,23 @@ extern void *_tnl_emit_vertices_to_buffer( GLcontext *ctx, * the same functionality. */ -extern void *_tnl_emit_indexed_vertices_to_buffer( GLcontext *ctx, +extern void *_tnl_emit_indexed_vertices_to_buffer( struct gl_context *ctx, const GLuint *elts, GLuint start, GLuint end, void *dest ); -extern void _tnl_build_vertices( GLcontext *ctx, +extern void _tnl_build_vertices( struct gl_context *ctx, GLuint start, GLuint end, GLuint newinputs ); -extern void _tnl_invalidate_vertices( GLcontext *ctx, GLuint newinputs ); +extern void _tnl_invalidate_vertices( struct gl_context *ctx, GLuint newinputs ); -extern void _tnl_invalidate_vertex_state( GLcontext *ctx, GLuint new_state ); +extern void _tnl_invalidate_vertex_state( struct gl_context *ctx, GLuint new_state ); -extern void _tnl_notify_pipeline_output_change( GLcontext *ctx ); +extern void _tnl_notify_pipeline_output_change( struct gl_context *ctx ); #define GET_VERTEX_STATE(ctx) &(TNL_CONTEXT(ctx)->clipspace) @@ -153,29 +153,29 @@ void _tnl_register_fastpath( struct tnl_clipspace *vtx, /* t_vertex_generic.c -- Internal functions for t_vertex.c */ -void _tnl_generic_copy_pv_extras( GLcontext *ctx, +void _tnl_generic_copy_pv_extras( struct gl_context *ctx, GLuint dst, GLuint src ); -void _tnl_generic_interp_extras( GLcontext *ctx, +void _tnl_generic_interp_extras( struct gl_context *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary ); -void _tnl_generic_copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ); +void _tnl_generic_copy_pv( struct gl_context *ctx, GLuint edst, GLuint esrc ); -void _tnl_generic_interp( GLcontext *ctx, +void _tnl_generic_interp( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ); -void _tnl_generic_emit( GLcontext *ctx, +void _tnl_generic_emit( struct gl_context *ctx, GLuint count, GLubyte *v ); -void _tnl_generate_hardwired_emit( GLcontext *ctx ); +void _tnl_generate_hardwired_emit( struct gl_context *ctx ); /* t_vertex_sse.c -- Internal functions for t_vertex.c */ -void _tnl_generate_sse_emit( GLcontext *ctx ); +void _tnl_generate_sse_emit( struct gl_context *ctx ); #endif diff --git a/src/mesa/tnl/t_vertex_generic.c b/src/mesa/tnl/t_vertex_generic.c index b1ea142464..12da30f5eb 100644 --- a/src/mesa/tnl/t_vertex_generic.c +++ b/src/mesa/tnl/t_vertex_generic.c @@ -866,7 +866,7 @@ const struct tnl_format_info _tnl_format_info[EMIT_MAX] = * vertices */ #define EMIT5(NR, F0, F1, F2, F3, F4, NAME) \ -static void NAME( GLcontext *ctx, \ +static void NAME( struct gl_context *ctx, \ GLuint count, \ GLubyte *v ) \ { \ @@ -929,7 +929,7 @@ EMIT4(insert_4f_4, insert_4ub_4f_rgba_4, insert_2f_2, insert_2f_2, emit_xyzw4_rg /* Use the codegen paths to select one of a number of hardwired * fastpaths. */ -void _tnl_generate_hardwired_emit( GLcontext *ctx ) +void _tnl_generate_hardwired_emit( struct gl_context *ctx ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); tnl_emit_func func = NULL; @@ -987,7 +987,7 @@ void _tnl_generate_hardwired_emit( GLcontext *ctx ) * vertices */ -void _tnl_generic_emit( GLcontext *ctx, +void _tnl_generic_emit( struct gl_context *ctx, GLuint count, GLubyte *v ) { @@ -1007,7 +1007,7 @@ void _tnl_generic_emit( GLcontext *ctx, } -void _tnl_generic_interp( GLcontext *ctx, +void _tnl_generic_interp( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ) @@ -1061,7 +1061,7 @@ void _tnl_generic_interp( GLcontext *ctx, /* Extract color attributes from one vertex and insert them into * another. (Shortcircuit extract/insert with memcpy). */ -void _tnl_generic_copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ) +void _tnl_generic_copy_pv( struct gl_context *ctx, GLuint edst, GLuint esrc ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); GLubyte *vsrc = vtx->vertex_buf + esrc * vtx->vertex_size; @@ -1085,7 +1085,7 @@ void _tnl_generic_copy_pv( GLcontext *ctx, GLuint edst, GLuint esrc ) /* Helper functions for hardware which doesn't put back colors and/or * edgeflags into vertices. */ -void _tnl_generic_interp_extras( GLcontext *ctx, +void _tnl_generic_interp_extras( struct gl_context *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary ) @@ -1128,7 +1128,7 @@ void _tnl_generic_interp_extras( GLcontext *ctx, _tnl_generic_interp(ctx, t, dst, out, in, force_boundary); } -void _tnl_generic_copy_pv_extras( GLcontext *ctx, +void _tnl_generic_copy_pv_extras( struct gl_context *ctx, GLuint dst, GLuint src ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; diff --git a/src/mesa/tnl/t_vertex_sse.c b/src/mesa/tnl/t_vertex_sse.c index 98058f3bda..93189656f7 100644 --- a/src/mesa/tnl/t_vertex_sse.c +++ b/src/mesa/tnl/t_vertex_sse.c @@ -54,7 +54,7 @@ struct x86_program { struct x86_function func; - GLcontext *ctx; + struct gl_context *ctx; GLboolean inputs_safe; GLboolean outputs_safe; GLboolean have_sse2; @@ -342,7 +342,7 @@ static void update_src_ptr( struct x86_program *p, */ static GLboolean build_vertex_emit( struct x86_program *p ) { - GLcontext *ctx = p->ctx; + struct gl_context *ctx = p->ctx; TNLcontext *tnl = TNL_CONTEXT(ctx); struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); GLuint j = 0; @@ -638,7 +638,7 @@ static GLboolean build_vertex_emit( struct x86_program *p ) -void _tnl_generate_sse_emit( GLcontext *ctx ) +void _tnl_generate_sse_emit( struct gl_context *ctx ) { struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx); struct x86_program p; @@ -676,7 +676,7 @@ void _tnl_generate_sse_emit( GLcontext *ctx ) #else -void _tnl_generate_sse_emit( GLcontext *ctx ) +void _tnl_generate_sse_emit( struct gl_context *ctx ) { /* Dummy version for when USE_SSE_ASM not defined */ } diff --git a/src/mesa/tnl/t_vp_build.c b/src/mesa/tnl/t_vp_build.c index 735937bbe2..421ec88a45 100644 --- a/src/mesa/tnl/t_vp_build.c +++ b/src/mesa/tnl/t_vp_build.c @@ -39,7 +39,7 @@ /** * XXX This should go away someday, but still referenced by some drivers... */ -void _tnl_UpdateFixedFunctionProgram( GLcontext *ctx ) +void _tnl_UpdateFixedFunctionProgram( struct gl_context *ctx ) { const struct gl_vertex_program *prev = ctx->VertexProgram._Current; diff --git a/src/mesa/tnl/t_vp_build.h b/src/mesa/tnl/t_vp_build.h index d6ebc66c04..1d10ff245d 100644 --- a/src/mesa/tnl/t_vp_build.h +++ b/src/mesa/tnl/t_vp_build.h @@ -37,6 +37,6 @@ _NEW_FOG | \ _NEW_POINT) -extern void _tnl_UpdateFixedFunctionProgram( GLcontext *ctx ); +extern void _tnl_UpdateFixedFunctionProgram( struct gl_context *ctx ); #endif diff --git a/src/mesa/tnl/tnl.h b/src/mesa/tnl/tnl.h index 2c0d1fef73..702efdc5cc 100644 --- a/src/mesa/tnl/tnl.h +++ b/src/mesa/tnl/tnl.h @@ -37,43 +37,43 @@ * itself.) */ extern GLboolean -_tnl_CreateContext( GLcontext *ctx ); +_tnl_CreateContext( struct gl_context *ctx ); extern void -_tnl_DestroyContext( GLcontext *ctx ); +_tnl_DestroyContext( struct gl_context *ctx ); extern void -_tnl_InvalidateState( GLcontext *ctx, GLuint new_state ); +_tnl_InvalidateState( struct gl_context *ctx, GLuint new_state ); /* Functions to revive the tnl module after being unhooked from * dispatch and/or driver callbacks. */ extern void -_tnl_wakeup( GLcontext *ctx ); +_tnl_wakeup( struct gl_context *ctx ); /* Driver configuration options: */ extern void -_tnl_need_projected_coords( GLcontext *ctx, GLboolean flag ); +_tnl_need_projected_coords( struct gl_context *ctx, GLboolean flag ); /* Control whether T&L does per-vertex fog */ extern void -_tnl_allow_vertex_fog( GLcontext *ctx, GLboolean value ); +_tnl_allow_vertex_fog( struct gl_context *ctx, GLboolean value ); extern void -_tnl_allow_pixel_fog( GLcontext *ctx, GLboolean value ); +_tnl_allow_pixel_fog( struct gl_context *ctx, GLboolean value ); extern GLboolean -_tnl_program_string(GLcontext *ctx, GLenum target, struct gl_program *program); +_tnl_program_string(struct gl_context *ctx, GLenum target, struct gl_program *program); struct _mesa_prim; struct _mesa_index_buffer; void -_tnl_draw_prims( GLcontext *ctx, +_tnl_draw_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -82,7 +82,7 @@ _tnl_draw_prims( GLcontext *ctx, GLuint max_index); void -_tnl_vbo_draw_prims( GLcontext *ctx, +_tnl_vbo_draw_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -92,9 +92,9 @@ _tnl_vbo_draw_prims( GLcontext *ctx, GLuint max_index); extern void -_mesa_load_tracked_matrices(GLcontext *ctx); +_mesa_load_tracked_matrices(struct gl_context *ctx); extern void -_tnl_RasterPos(GLcontext *ctx, const GLfloat vObj[4]); +_tnl_RasterPos(struct gl_context *ctx, const GLfloat vObj[4]); #endif diff --git a/src/mesa/tnl_dd/imm/t_dd_imm_primtmp.h b/src/mesa/tnl_dd/imm/t_dd_imm_primtmp.h index 97dca3fd42..7103db5355 100644 --- a/src/mesa/tnl_dd/imm/t_dd_imm_primtmp.h +++ b/src/mesa/tnl_dd/imm/t_dd_imm_primtmp.h @@ -46,7 +46,7 @@ * GL_POINTS */ -static void TAG(flush_point_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_point_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { if ( !v0->mask ) { LOCAL_VARS; @@ -59,16 +59,16 @@ static void TAG(flush_point_0)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_LINES */ -static void TAG(flush_line_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_line_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_line_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; FLUSH_VERTEX = TAG(flush_line_1); ACTIVE_VERTEX = IMM_VERTICES( 1 ); } -static void TAG(flush_line_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v1 = v0 - 1; @@ -85,10 +85,10 @@ static void TAG(flush_line_1)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_LINE_LOOP */ -static void TAG(flush_line_loop_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_line_loop_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_line_loop_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_line_loop_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_line_loop_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_loop_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -107,7 +107,7 @@ static void TAG(flush_line_loop_0)( GLcontext *ctx, TNL_VERTEX *v0 ) EMIT_VERTEX( b ); \ } -static void TAG(flush_line_loop_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_loop_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v1 = v0 - 1; @@ -116,7 +116,7 @@ static void TAG(flush_line_loop_1)( GLcontext *ctx, TNL_VERTEX *v0 ) DRAW_LINELOOP_LINE( v1, v0 ); } -static void TAG(flush_line_loop_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_loop_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v1 = v0 + 1; @@ -125,7 +125,7 @@ static void TAG(flush_line_loop_2)( GLcontext *ctx, TNL_VERTEX *v0 ) DRAW_LINELOOP_LINE( v1, v0 ); } -static void TAG(end_line_loop)( GLcontext *ctx ) +static void TAG(end_line_loop)( struct gl_context *ctx ) { LOCAL_VARS; @@ -142,10 +142,10 @@ static void TAG(end_line_loop)( GLcontext *ctx ) * GL_LINE_STRIP */ -static void TAG(flush_line_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_line_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_line_strip_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_line_strip_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_line_strip_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_strip_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -154,7 +154,7 @@ static void TAG(flush_line_strip_0)( GLcontext *ctx, TNL_VERTEX *v0 ) } -static void TAG(flush_line_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_strip_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v1 = v0 - 1; @@ -173,7 +173,7 @@ static void TAG(flush_line_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ) } } -static void TAG(flush_line_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_line_strip_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v1 = v0 + 1; @@ -198,10 +198,10 @@ static void TAG(flush_line_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_TRIANGLES */ -static void TAG(flush_triangle_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_triangle_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_triangle_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_triangle_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_triangle_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_triangle_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -212,7 +212,7 @@ static void TAG(flush_triangle_0)( GLcontext *ctx, TNL_VERTEX *v0 ) BEGIN_PRIM( GL_TRIANGLES, 0 ); } -static void TAG(flush_triangle_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_triangle_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -222,7 +222,7 @@ static void TAG(flush_triangle_1)( GLcontext *ctx, TNL_VERTEX *v0 ) FLUSH_VERTEX = TAG(flush_triangle_2); } -static void TAG(flush_triangle_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_triangle_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v2 = v0 - 2; @@ -249,18 +249,18 @@ static void TAG(flush_triangle_2)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_TRIANGLE_STRIP */ -static void TAG(flush_tri_strip_3)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_tri_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_tri_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_tri_strip_3)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_tri_strip_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_tri_strip_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_tri_strip_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_strip_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 1 ); FLUSH_VERTEX = TAG(flush_tri_strip_1); } -static void TAG(flush_tri_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_strip_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 2 ); @@ -283,7 +283,7 @@ static void TAG(flush_tri_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ) EMIT_VERTEX( v0 ); \ } -static void TAG(flush_tri_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_strip_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; FLUSH_VERTEX = TAG(flush_tri_strip_3); @@ -291,7 +291,7 @@ static void TAG(flush_tri_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ) DO_TRISTRIP_TRI( 0, 1 ); } -static void TAG(flush_tri_strip_3)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_strip_3)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; FLUSH_VERTEX = TAG(flush_tri_strip_4); @@ -299,7 +299,7 @@ static void TAG(flush_tri_strip_3)( GLcontext *ctx, TNL_VERTEX *v0 ) DO_TRISTRIP_TRI( 1, 2 ); } -static void TAG(flush_tri_strip_4)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_strip_4)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; FLUSH_VERTEX = TAG(flush_tri_strip_5); @@ -307,7 +307,7 @@ static void TAG(flush_tri_strip_4)( GLcontext *ctx, TNL_VERTEX *v0 ) DO_TRISTRIP_TRI( 2, 3 ); } -static void TAG(flush_tri_strip_5)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_strip_5)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; FLUSH_VERTEX = TAG(flush_tri_strip_2); @@ -321,10 +321,10 @@ static void TAG(flush_tri_strip_5)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_TRIANGLE_FAN */ -static void TAG(flush_tri_fan_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_tri_fan_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_tri_fan_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_tri_fan_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_tri_fan_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_fan_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -332,7 +332,7 @@ static void TAG(flush_tri_fan_0)( GLcontext *ctx, TNL_VERTEX *v0 ) FLUSH_VERTEX = TAG(flush_tri_fan_1); } -static void TAG(flush_tri_fan_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_fan_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -356,7 +356,7 @@ static void TAG(flush_tri_fan_1)( GLcontext *ctx, TNL_VERTEX *v0 ) EMIT_VERTEX( v0 ); \ } -static void TAG(flush_tri_fan_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_fan_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 1 ); @@ -364,7 +364,7 @@ static void TAG(flush_tri_fan_2)( GLcontext *ctx, TNL_VERTEX *v0 ) DO_TRIFAN_TRI( 0, 1 ); } -static void TAG(flush_tri_fan_3)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_tri_fan_3)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 2 ); @@ -378,32 +378,32 @@ static void TAG(flush_tri_fan_3)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_QUADS */ -static void TAG(flush_quad_3)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_quad_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_quad_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_quad_3)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_quad_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_quad_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_quad_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; IMM_VERTEX( v0 ) = v0 + 1; FLUSH_VERTEX = TAG(flush_quad_1); } -static void TAG(flush_quad_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; IMM_VERTEX( v0 ) = v0 + 1; FLUSH_VERTEX = TAG(flush_quad_2); } -static void TAG(flush_quad_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; IMM_VERTEX( v0 ) = v0 + 1; FLUSH_VERTEX = TAG(flush_quad_3); } -static void TAG(flush_quad_3)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_3)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v3 = v0 - 3; @@ -431,11 +431,11 @@ static void TAG(flush_quad_3)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_QUAD_STRIP */ -static void TAG(flush_quad_strip_3)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_quad_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_quad_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_quad_strip_3)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_quad_strip_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_quad_strip_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_quad_strip_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_strip_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -444,7 +444,7 @@ static void TAG(flush_quad_strip_0)( GLcontext *ctx, TNL_VERTEX *v0 ) FLUSH_VERTEX = TAG(flush_quad_strip_1); } -static void TAG(flush_quad_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_strip_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -453,7 +453,7 @@ static void TAG(flush_quad_strip_1)( GLcontext *ctx, TNL_VERTEX *v0 ) FLUSH_VERTEX = TAG(flush_quad_strip_2); } -static void TAG(flush_quad_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_strip_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; @@ -462,7 +462,7 @@ static void TAG(flush_quad_strip_2)( GLcontext *ctx, TNL_VERTEX *v0 ) FLUSH_VERTEX = TAG(flush_quad_strip_3); } -static void TAG(flush_quad_strip_3)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_quad_strip_3)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; TNL_VERTEX *v3 = IMM_VERTEX( v3 ); @@ -489,17 +489,17 @@ static void TAG(flush_quad_strip_3)( GLcontext *ctx, TNL_VERTEX *v0 ) * GL_POLYGON */ -static void TAG(flush_poly_2)( GLcontext *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_poly_1)( GLcontext *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_poly_2)( struct gl_context *ctx, TNL_VERTEX *v0 ); +static void TAG(flush_poly_1)( struct gl_context *ctx, TNL_VERTEX *v0 ); -static void TAG(flush_poly_0)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_poly_0)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 1 ); FLUSH_VERTEX = TAG(flush_poly_1); } -static void TAG(flush_poly_1)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_poly_1)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 2 ); @@ -522,7 +522,7 @@ static void TAG(flush_poly_1)( GLcontext *ctx, TNL_VERTEX *v0 ) EMIT_VERTEX( v0 ); \ } -static void TAG(flush_poly_2)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_poly_2)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 1 ); @@ -530,7 +530,7 @@ static void TAG(flush_poly_2)( GLcontext *ctx, TNL_VERTEX *v0 ) DO_POLY_TRI( 0, 1 ); } -static void TAG(flush_poly_3)( GLcontext *ctx, TNL_VERTEX *v0 ) +static void TAG(flush_poly_3)( struct gl_context *ctx, TNL_VERTEX *v0 ) { LOCAL_VARS; ACTIVE_VERTEX = IMM_VERTICES( 2 ); @@ -539,7 +539,7 @@ static void TAG(flush_poly_3)( GLcontext *ctx, TNL_VERTEX *v0 ) } -void (*TAG(flush_tab)[GL_POLYGON+1])( GLcontext *, TNL_VERTEX * ) = +void (*TAG(flush_tab)[GL_POLYGON+1])( struct gl_context *, TNL_VERTEX * ) = { TAG(flush_point), TAG(flush_line_0), diff --git a/src/mesa/tnl_dd/imm/t_dd_imm_vb.c b/src/mesa/tnl_dd/imm/t_dd_imm_vb.c index 0c4462f556..5081d92dba 100644 --- a/src/mesa/tnl_dd/imm/t_dd_imm_vb.c +++ b/src/mesa/tnl_dd/imm/t_dd_imm_vb.c @@ -113,7 +113,7 @@ do { \ /* Clip a line against the viewport and user clip planes. */ -static void TAG(clip_draw_line)( GLcontext *ctx, +static void TAG(clip_draw_line)( struct gl_context *ctx, TNL_VERTEX *I, TNL_VERTEX *J, GLuint mask ) @@ -140,7 +140,7 @@ static void TAG(clip_draw_line)( GLcontext *ctx, /* Clip a triangle against the viewport and user clip planes. */ -static void TAG(clip_draw_triangle)( GLcontext *ctx, +static void TAG(clip_draw_triangle)( struct gl_context *ctx, TNL_VERTEX *v0, TNL_VERTEX *v1, TNL_VERTEX *v2, @@ -173,7 +173,7 @@ static void TAG(clip_draw_triangle)( GLcontext *ctx, } -static __inline void TAG(draw_triangle)( GLcontext *ctx, +static __inline void TAG(draw_triangle)( struct gl_context *ctx, TNL_VERTEX *v0, TNL_VERTEX *v1, TNL_VERTEX *v2 ) @@ -188,7 +188,7 @@ static __inline void TAG(draw_triangle)( GLcontext *ctx, } } -static __inline void TAG(draw_line)( GLcontext *ctx, +static __inline void TAG(draw_line)( struct gl_context *ctx, TNL_VERTEX *v0, TNL_VERTEX *v1 ) { diff --git a/src/mesa/tnl_dd/imm/t_dd_imm_vbtmp.h b/src/mesa/tnl_dd/imm/t_dd_imm_vbtmp.h index 2f76553cff..bb394622fa 100644 --- a/src/mesa/tnl_dd/imm/t_dd_imm_vbtmp.h +++ b/src/mesa/tnl_dd/imm/t_dd_imm_vbtmp.h @@ -41,7 +41,7 @@ /* COPY_VERTEX_FROM_CURRENT in t_dd_imm_vapi.c */ -static void TAG(emit_vfmt)( GLcontext *ctx, VERTEX *v ) +static void TAG(emit_vfmt)( struct gl_context *ctx, VERTEX *v ) { LOCALVARS ; @@ -132,7 +132,7 @@ static void TAG(emit_vfmt)( GLcontext *ctx, VERTEX *v ) -static void TAG(interp)( GLcontext *ctx, +static void TAG(interp)( struct gl_context *ctx, GLfloat t, TNL_VERTEX *dst, TNL_VERTEX *in, @@ -240,7 +240,7 @@ static void TAG(interp)( GLcontext *ctx, } -static __inline void TAG(copy_pv)( GLcontext *ctx, +static __inline void TAG(copy_pv)( struct gl_context *ctx, TNL_VERTEX *dst, TNL_VERTEX *src ) { diff --git a/src/mesa/tnl_dd/t_dd.c b/src/mesa/tnl_dd/t_dd.c index 731da5c320..214ebd4280 100644 --- a/src/mesa/tnl_dd/t_dd.c +++ b/src/mesa/tnl_dd/t_dd.c @@ -26,7 +26,7 @@ * Keith Whitwell <keith@tungstengraphics.com> */ -static void copy_pv_rgba4_spec5( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void copy_pv_rgba4_spec5( struct gl_context *ctx, GLuint edst, GLuint esrc ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); GLubyte *i810verts = (GLubyte *)imesa->verts; @@ -37,7 +37,7 @@ static void copy_pv_rgba4_spec5( GLcontext *ctx, GLuint edst, GLuint esrc ) dst->ui[5] = src->ui[5]; } -static void copy_pv_rgba4( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void copy_pv_rgba4( struct gl_context *ctx, GLuint edst, GLuint esrc ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); GLubyte *i810verts = (GLubyte *)imesa->verts; @@ -47,7 +47,7 @@ static void copy_pv_rgba4( GLcontext *ctx, GLuint edst, GLuint esrc ) dst->ui[4] = src->ui[4]; } -static void copy_pv_rgba3( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void copy_pv_rgba3( struct gl_context *ctx, GLuint edst, GLuint esrc ) { i810ContextPtr imesa = I810_CONTEXT( ctx ); GLubyte *i810verts = (GLubyte *)imesa->verts; diff --git a/src/mesa/tnl_dd/t_dd_dmatmp.h b/src/mesa/tnl_dd/t_dd_dmatmp.h index 2424204b88..997fc0b20c 100644 --- a/src/mesa/tnl_dd/t_dd_dmatmp.h +++ b/src/mesa/tnl_dd/t_dd_dmatmp.h @@ -73,7 +73,7 @@ do { \ #if (HAVE_ELTS) -static void *TAG(emit_elts)( GLcontext *ctx, GLuint *elts, GLuint nr, +static void *TAG(emit_elts)( struct gl_context *ctx, GLuint *elts, GLuint nr, void *buf) { GLint i; @@ -94,7 +94,7 @@ static void *TAG(emit_elts)( GLcontext *ctx, GLuint *elts, GLuint nr, } #endif -static __inline void *TAG(emit_verts)( GLcontext *ctx, GLuint start, +static __inline void *TAG(emit_verts)( struct gl_context *ctx, GLuint start, GLuint count, void *buf ) { return EMIT_VERTS(ctx, start, count, buf); @@ -104,7 +104,7 @@ static __inline void *TAG(emit_verts)( GLcontext *ctx, GLuint start, * Render non-indexed primitives. ***********************************************************************/ -static void TAG(render_points_verts)( GLcontext *ctx, +static void TAG(render_points_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -133,7 +133,7 @@ static void TAG(render_points_verts)( GLcontext *ctx, } } -static void TAG(render_lines_verts)( GLcontext *ctx, +static void TAG(render_lines_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -169,7 +169,7 @@ static void TAG(render_lines_verts)( GLcontext *ctx, } -static void TAG(render_line_strip_verts)( GLcontext *ctx, +static void TAG(render_line_strip_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -201,7 +201,7 @@ static void TAG(render_line_strip_verts)( GLcontext *ctx, } -static void TAG(render_line_loop_verts)( GLcontext *ctx, +static void TAG(render_line_loop_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -267,7 +267,7 @@ static void TAG(render_line_loop_verts)( GLcontext *ctx, } -static void TAG(render_triangles_verts)( GLcontext *ctx, +static void TAG(render_triangles_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -298,7 +298,7 @@ static void TAG(render_triangles_verts)( GLcontext *ctx, -static void TAG(render_tri_strip_verts)( GLcontext *ctx, +static void TAG(render_tri_strip_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -336,7 +336,7 @@ static void TAG(render_tri_strip_verts)( GLcontext *ctx, } } -static void TAG(render_tri_fan_verts)( GLcontext *ctx, +static void TAG(render_tri_fan_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -376,7 +376,7 @@ static void TAG(render_tri_fan_verts)( GLcontext *ctx, } -static void TAG(render_poly_verts)( GLcontext *ctx, +static void TAG(render_poly_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -414,7 +414,7 @@ static void TAG(render_poly_verts)( GLcontext *ctx, } } -static void TAG(render_quad_strip_verts)( GLcontext *ctx, +static void TAG(render_quad_strip_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -540,7 +540,7 @@ static void TAG(render_quad_strip_verts)( GLcontext *ctx, } -static void TAG(render_quads_verts)( GLcontext *ctx, +static void TAG(render_quads_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -649,7 +649,7 @@ static void TAG(render_quads_verts)( GLcontext *ctx, } } -static void TAG(render_noop)( GLcontext *ctx, +static void TAG(render_noop)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -680,7 +680,7 @@ static tnl_render_func TAG(render_tab_verts)[GL_POLYGON+2] = ****************************************************************************/ #if (HAVE_ELTS) -static void TAG(render_points_elts)( GLcontext *ctx, +static void TAG(render_points_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -712,7 +712,7 @@ static void TAG(render_points_elts)( GLcontext *ctx, -static void TAG(render_lines_elts)( GLcontext *ctx, +static void TAG(render_lines_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -749,7 +749,7 @@ static void TAG(render_lines_elts)( GLcontext *ctx, } -static void TAG(render_line_strip_elts)( GLcontext *ctx, +static void TAG(render_line_strip_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -783,7 +783,7 @@ static void TAG(render_line_strip_elts)( GLcontext *ctx, } -static void TAG(render_line_loop_elts)( GLcontext *ctx, +static void TAG(render_line_loop_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -855,7 +855,7 @@ static void TAG(render_line_loop_elts)( GLcontext *ctx, * buffers. For elts, this is probably no better (worse?) than the * standard path. */ -static void TAG(render_triangles_elts)( GLcontext *ctx, +static void TAG(render_triangles_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -889,7 +889,7 @@ static void TAG(render_triangles_elts)( GLcontext *ctx, -static void TAG(render_tri_strip_elts)( GLcontext *ctx, +static void TAG(render_tri_strip_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -927,7 +927,7 @@ static void TAG(render_tri_strip_elts)( GLcontext *ctx, } } -static void TAG(render_tri_fan_elts)( GLcontext *ctx, +static void TAG(render_tri_fan_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -965,7 +965,7 @@ static void TAG(render_tri_fan_elts)( GLcontext *ctx, } -static void TAG(render_poly_elts)( GLcontext *ctx, +static void TAG(render_poly_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -1003,7 +1003,7 @@ static void TAG(render_poly_elts)( GLcontext *ctx, } } -static void TAG(render_quad_strip_elts)( GLcontext *ctx, +static void TAG(render_quad_strip_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -1071,7 +1071,7 @@ static void TAG(render_quad_strip_elts)( GLcontext *ctx, } -static void TAG(render_quads_elts)( GLcontext *ctx, +static void TAG(render_quads_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -1173,7 +1173,7 @@ static tnl_render_func TAG(render_tab_elts)[GL_POLYGON+2] = /* Pre-check the primitives in the VB to prevent the need for * fallbacks later on. */ -static GLboolean TAG(validate_render)( GLcontext *ctx, +static GLboolean TAG(validate_render)( struct gl_context *ctx, struct vertex_buffer *VB ) { GLint i; diff --git a/src/mesa/tnl_dd/t_dd_dmatmp2.h b/src/mesa/tnl_dd/t_dd_dmatmp2.h index cd225b6343..8836bde09f 100644 --- a/src/mesa/tnl_dd/t_dd_dmatmp2.h +++ b/src/mesa/tnl_dd/t_dd_dmatmp2.h @@ -70,7 +70,7 @@ do { \ /**********************************************************************/ -static ELT_TYPE *TAG(emit_elts)( GLcontext *ctx, +static ELT_TYPE *TAG(emit_elts)( struct gl_context *ctx, ELT_TYPE *dest, GLuint *elts, GLuint nr ) { @@ -89,7 +89,7 @@ static ELT_TYPE *TAG(emit_elts)( GLcontext *ctx, return dest; } -static ELT_TYPE *TAG(emit_consecutive_elts)( GLcontext *ctx, +static ELT_TYPE *TAG(emit_consecutive_elts)( struct gl_context *ctx, ELT_TYPE *dest, GLuint start, GLuint nr ) { @@ -114,7 +114,7 @@ static ELT_TYPE *TAG(emit_consecutive_elts)( GLcontext *ctx, -static void TAG(render_points_verts)( GLcontext *ctx, +static void TAG(render_points_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -126,7 +126,7 @@ static void TAG(render_points_verts)( GLcontext *ctx, } } -static void TAG(render_lines_verts)( GLcontext *ctx, +static void TAG(render_lines_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -150,7 +150,7 @@ static void TAG(render_lines_verts)( GLcontext *ctx, } -static void TAG(render_line_strip_verts)( GLcontext *ctx, +static void TAG(render_line_strip_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -197,7 +197,7 @@ static void TAG(render_line_strip_verts)( GLcontext *ctx, } -static void TAG(render_line_loop_verts)( GLcontext *ctx, +static void TAG(render_line_loop_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -286,7 +286,7 @@ static void TAG(render_line_loop_verts)( GLcontext *ctx, } -static void TAG(render_triangles_verts)( GLcontext *ctx, +static void TAG(render_triangles_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -307,7 +307,7 @@ static void TAG(render_triangles_verts)( GLcontext *ctx, -static void TAG(render_tri_strip_verts)( GLcontext *ctx, +static void TAG(render_tri_strip_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -352,7 +352,7 @@ static void TAG(render_tri_strip_verts)( GLcontext *ctx, EMIT_PRIM( ctx, GL_TRIANGLE_STRIP, HW_TRIANGLE_STRIP_0, start, count ); } -static void TAG(render_tri_fan_verts)( GLcontext *ctx, +static void TAG(render_tri_fan_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -395,7 +395,7 @@ static void TAG(render_tri_fan_verts)( GLcontext *ctx, } -static void TAG(render_poly_verts)( GLcontext *ctx, +static void TAG(render_poly_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -409,7 +409,7 @@ static void TAG(render_poly_verts)( GLcontext *ctx, EMIT_PRIM( ctx, GL_POLYGON, HW_POLYGON, start, count ); } -static void TAG(render_quad_strip_verts)( GLcontext *ctx, +static void TAG(render_quad_strip_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -460,7 +460,7 @@ static void TAG(render_quad_strip_verts)( GLcontext *ctx, } -static void TAG(render_quads_verts)( GLcontext *ctx, +static void TAG(render_quads_verts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -509,7 +509,7 @@ static void TAG(render_quads_verts)( GLcontext *ctx, } } -static void TAG(render_noop)( GLcontext *ctx, +static void TAG(render_noop)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -539,7 +539,7 @@ static tnl_render_func TAG(render_tab_verts)[GL_POLYGON+2] = * Render elts using hardware indexed verts * ****************************************************************************/ -static void TAG(render_points_elts)( GLcontext *ctx, +static void TAG(render_points_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -563,7 +563,7 @@ static void TAG(render_points_elts)( GLcontext *ctx, -static void TAG(render_lines_elts)( GLcontext *ctx, +static void TAG(render_lines_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -602,7 +602,7 @@ static void TAG(render_lines_elts)( GLcontext *ctx, } -static void TAG(render_line_strip_elts)( GLcontext *ctx, +static void TAG(render_line_strip_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -631,7 +631,7 @@ static void TAG(render_line_strip_elts)( GLcontext *ctx, } -static void TAG(render_line_loop_elts)( GLcontext *ctx, +static void TAG(render_line_loop_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -683,7 +683,7 @@ static void TAG(render_line_loop_elts)( GLcontext *ctx, } -static void TAG(render_triangles_elts)( GLcontext *ctx, +static void TAG(render_triangles_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -716,7 +716,7 @@ static void TAG(render_triangles_elts)( GLcontext *ctx, -static void TAG(render_tri_strip_elts)( GLcontext *ctx, +static void TAG(render_tri_strip_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -746,7 +746,7 @@ static void TAG(render_tri_strip_elts)( GLcontext *ctx, } } -static void TAG(render_tri_fan_elts)( GLcontext *ctx, +static void TAG(render_tri_fan_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -773,7 +773,7 @@ static void TAG(render_tri_fan_elts)( GLcontext *ctx, } -static void TAG(render_poly_elts)( GLcontext *ctx, +static void TAG(render_poly_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -799,7 +799,7 @@ static void TAG(render_poly_elts)( GLcontext *ctx, } } -static void TAG(render_quad_strip_elts)( GLcontext *ctx, +static void TAG(render_quad_strip_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -861,7 +861,7 @@ static void TAG(render_quad_strip_elts)( GLcontext *ctx, } -static void TAG(render_quads_elts)( GLcontext *ctx, +static void TAG(render_quads_elts)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) diff --git a/src/mesa/tnl_dd/t_dd_rendertmp.h b/src/mesa/tnl_dd/t_dd_rendertmp.h index b9f030195d..692b4d1fd7 100644 --- a/src/mesa/tnl_dd/t_dd_rendertmp.h +++ b/src/mesa/tnl_dd/t_dd_rendertmp.h @@ -63,7 +63,7 @@ #define RENDER_TAB_QUALIFIER static #endif -static void TAG(render_points)( GLcontext *ctx, +static void TAG(render_points)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -77,7 +77,7 @@ static void TAG(render_points)( GLcontext *ctx, POSTFIX; } -static void TAG(render_lines)( GLcontext *ctx, +static void TAG(render_lines)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -96,7 +96,7 @@ static void TAG(render_lines)( GLcontext *ctx, } -static void TAG(render_line_strip)( GLcontext *ctx, +static void TAG(render_line_strip)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -118,7 +118,7 @@ static void TAG(render_line_strip)( GLcontext *ctx, } -static void TAG(render_line_loop)( GLcontext *ctx, +static void TAG(render_line_loop)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -150,7 +150,7 @@ static void TAG(render_line_loop)( GLcontext *ctx, } -static void TAG(render_triangles)( GLcontext *ctx, +static void TAG(render_triangles)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -177,7 +177,7 @@ static void TAG(render_triangles)( GLcontext *ctx, -static void TAG(render_tri_strip)( GLcontext *ctx, +static void TAG(render_tri_strip)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -213,7 +213,7 @@ static void TAG(render_tri_strip)( GLcontext *ctx, } -static void TAG(render_tri_fan)( GLcontext *ctx, +static void TAG(render_tri_fan)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -252,7 +252,7 @@ static void TAG(render_tri_fan)( GLcontext *ctx, } -static void TAG(render_poly)( GLcontext *ctx, +static void TAG(render_poly)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -321,7 +321,7 @@ static void TAG(render_poly)( GLcontext *ctx, POSTFIX; } -static void TAG(render_quads)( GLcontext *ctx, +static void TAG(render_quads)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -346,7 +346,7 @@ static void TAG(render_quads)( GLcontext *ctx, POSTFIX; } -static void TAG(render_quad_strip)( GLcontext *ctx, +static void TAG(render_quad_strip)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -384,7 +384,7 @@ static void TAG(render_quad_strip)( GLcontext *ctx, POSTFIX; } -static void TAG(render_noop)( GLcontext *ctx, +static void TAG(render_noop)( struct gl_context *ctx, GLuint start, GLuint count, GLuint flags ) @@ -392,7 +392,7 @@ static void TAG(render_noop)( GLcontext *ctx, (void)(ctx && start && count && flags); } -RENDER_TAB_QUALIFIER void (*TAG(render_tab)[GL_POLYGON+2])(GLcontext *, +RENDER_TAB_QUALIFIER void (*TAG(render_tab)[GL_POLYGON+2])(struct gl_context *, GLuint, GLuint, GLuint) = diff --git a/src/mesa/tnl_dd/t_dd_triemit.h b/src/mesa/tnl_dd/t_dd_triemit.h index f5979ee9a7..39c9d26481 100644 --- a/src/mesa/tnl_dd/t_dd_triemit.h +++ b/src/mesa/tnl_dd/t_dd_triemit.h @@ -136,7 +136,7 @@ static __inline void TAG(point)( CTX_ARG, #endif -static void TAG(fast_clipped_poly)( GLcontext *ctx, const GLuint *elts, +static void TAG(fast_clipped_poly)( struct gl_context *ctx, const GLuint *elts, GLuint n ) { LOCAL_VARS diff --git a/src/mesa/tnl_dd/t_dd_tritmp.h b/src/mesa/tnl_dd/t_dd_tritmp.h index 2c36d845ab..022f0c6c60 100644 --- a/src/mesa/tnl_dd/t_dd_tritmp.h +++ b/src/mesa/tnl_dd/t_dd_tritmp.h @@ -111,7 +111,7 @@ #endif #if DO_TRI -static void TAG(triangle)( GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2 ) +static void TAG(triangle)( struct gl_context *ctx, GLuint e0, GLuint e1, GLuint e2 ) { struct vertex_buffer *VB = &TNL_CONTEXT( ctx )->vb; VERTEX *v[3]; @@ -335,7 +335,7 @@ static void TAG(triangle)( GLcontext *ctx, GLuint e0, GLuint e1, GLuint e2 ) #if DO_QUAD #if DO_FULL_QUAD -static void TAG(quadr)( GLcontext *ctx, +static void TAG(quadr)( struct gl_context *ctx, GLuint e0, GLuint e1, GLuint e2, GLuint e3 ) { struct vertex_buffer *VB = &TNL_CONTEXT( ctx )->vb; @@ -575,7 +575,7 @@ static void TAG(quadr)( GLcontext *ctx, } } #else -static void TAG(quadr)( GLcontext *ctx, GLuint e0, +static void TAG(quadr)( struct gl_context *ctx, GLuint e0, GLuint e1, GLuint e2, GLuint e3 ) { if (DO_UNFILLED) { @@ -597,7 +597,7 @@ static void TAG(quadr)( GLcontext *ctx, GLuint e0, #endif #if DO_LINE -static void TAG(line)( GLcontext *ctx, GLuint e0, GLuint e1 ) +static void TAG(line)( struct gl_context *ctx, GLuint e0, GLuint e1 ) { struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; VERTEX *v[2]; @@ -628,7 +628,7 @@ static void TAG(line)( GLcontext *ctx, GLuint e0, GLuint e1 ) #endif #if DO_POINTS -static void TAG(points)( GLcontext *ctx, GLuint first, GLuint last ) +static void TAG(points)( struct gl_context *ctx, GLuint first, GLuint last ) { struct vertex_buffer *VB = &TNL_CONTEXT( ctx )->vb; GLuint i; diff --git a/src/mesa/tnl_dd/t_dd_unfilled.h b/src/mesa/tnl_dd/t_dd_unfilled.h index 9c467291a1..9856a36d6f 100644 --- a/src/mesa/tnl_dd/t_dd_unfilled.h +++ b/src/mesa/tnl_dd/t_dd_unfilled.h @@ -32,7 +32,7 @@ #define VERT_RESTORE_SPEC( idx ) #endif -static void TAG(unfilled_tri)( GLcontext *ctx, +static void TAG(unfilled_tri)( struct gl_context *ctx, GLenum mode, GLuint e0, GLuint e1, GLuint e2 ) { @@ -95,7 +95,7 @@ static void TAG(unfilled_tri)( GLcontext *ctx, } -static void TAG(unfilled_quad)( GLcontext *ctx, +static void TAG(unfilled_quad)( struct gl_context *ctx, GLenum mode, GLuint e0, GLuint e1, GLuint e2, GLuint e3 ) diff --git a/src/mesa/tnl_dd/t_dd_vb.c b/src/mesa/tnl_dd/t_dd_vb.c index a8a0a69768..543b0a5685 100644 --- a/src/mesa/tnl_dd/t_dd_vb.c +++ b/src/mesa/tnl_dd/t_dd_vb.c @@ -46,7 +46,7 @@ * really convenient to put them. Need to build some actual .o files in * this directory? */ -static void copy_pv_rgba4_spec5( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void copy_pv_rgba4_spec5( struct gl_context *ctx, GLuint edst, GLuint esrc ) { LOCALVARS GLubyte *verts = GET_VERTEX_STORE(); @@ -57,7 +57,7 @@ static void copy_pv_rgba4_spec5( GLcontext *ctx, GLuint edst, GLuint esrc ) dst[5] = src[5]; } -static void copy_pv_rgba4( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void copy_pv_rgba4( struct gl_context *ctx, GLuint edst, GLuint esrc ) { LOCALVARS GLubyte *verts = GET_VERTEX_STORE(); @@ -67,7 +67,7 @@ static void copy_pv_rgba4( GLcontext *ctx, GLuint edst, GLuint esrc ) dst[4] = src[4]; } -static void copy_pv_rgba3( GLcontext *ctx, GLuint edst, GLuint esrc ) +static void copy_pv_rgba3( struct gl_context *ctx, GLuint edst, GLuint esrc ) { LOCALVARS GLubyte *verts = GET_VERTEX_STORE(); @@ -78,7 +78,7 @@ static void copy_pv_rgba3( GLcontext *ctx, GLuint edst, GLuint esrc ) } -void TAG(translate_vertex)(GLcontext *ctx, +void TAG(translate_vertex)(struct gl_context *ctx, const VERTEX *src, SWvertex *dst) { @@ -189,10 +189,10 @@ void TAG(translate_vertex)(GLcontext *ctx, /* prototype to silence warning */ -void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v ); +void TAG(print_vertex)( struct gl_context *ctx, const VERTEX *v ); -void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v ) +void TAG(print_vertex)( struct gl_context *ctx, const VERTEX *v ) { LOCALVARS GLuint format = GET_VERTEX_FORMAT(); @@ -289,7 +289,7 @@ void TAG(print_vertex)( GLcontext *ctx, const VERTEX *v ) #define GET_COLOR(ptr, idx) ((ptr)->data[idx]) -INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx, +INTERP_QUALIFIER void TAG(interp_extras)( struct gl_context *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary ) @@ -320,7 +320,7 @@ INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx, INTERP_VERTEX(ctx, t, dst, out, in, force_boundary); } -INTERP_QUALIFIER void TAG(copy_pv_extras)( GLcontext *ctx, +INTERP_QUALIFIER void TAG(copy_pv_extras)( struct gl_context *ctx, GLuint dst, GLuint src ) { LOCALVARS diff --git a/src/mesa/tnl_dd/t_dd_vbtmp.h b/src/mesa/tnl_dd/t_dd_vbtmp.h index 85101b9ceb..d19137b767 100644 --- a/src/mesa/tnl_dd/t_dd_vbtmp.h +++ b/src/mesa/tnl_dd/t_dd_vbtmp.h @@ -117,7 +117,7 @@ #if (HAVE_HW_DIVIDE || DO_SPEC || DO_TEX0 || DO_FOG || !HAVE_TINY_VERTICES) -static void TAG(emit)( GLcontext *ctx, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest, GLuint stride ) @@ -338,7 +338,7 @@ static void TAG(emit)( GLcontext *ctx, #error "cannot use tiny vertices with hw perspective divide" #endif -static void TAG(emit)( GLcontext *ctx, GLuint start, GLuint end, +static void TAG(emit)( struct gl_context *ctx, GLuint start, GLuint end, void *dest, GLuint stride ) { LOCALVARS @@ -403,7 +403,7 @@ static void TAG(emit)( GLcontext *ctx, GLuint start, GLuint end, #if (HAVE_PTEX_VERTICES) -static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) +static GLboolean TAG(check_tex_sizes)( struct gl_context *ctx ) { LOCALVARS struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -431,7 +431,7 @@ static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) return GL_TRUE; } #else -static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) +static GLboolean TAG(check_tex_sizes)( struct gl_context *ctx ) { LOCALVARS struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; @@ -472,7 +472,7 @@ static GLboolean TAG(check_tex_sizes)( GLcontext *ctx ) #endif /* ptex */ -static void TAG(interp)( GLcontext *ctx, +static void TAG(interp)( struct gl_context *ctx, GLfloat t, GLuint edst, GLuint eout, GLuint ein, GLboolean force_boundary ) diff --git a/src/mesa/vbo/vbo.h b/src/mesa/vbo/vbo.h index 07d31f6ce3..7b8da8eb84 100644 --- a/src/mesa/vbo/vbo.h +++ b/src/mesa/vbo/vbo.h @@ -61,12 +61,12 @@ struct _mesa_index_buffer { -GLboolean _vbo_CreateContext( GLcontext *ctx ); -void _vbo_DestroyContext( GLcontext *ctx ); -void _vbo_InvalidateState( GLcontext *ctx, GLuint new_state ); +GLboolean _vbo_CreateContext( struct gl_context *ctx ); +void _vbo_DestroyContext( struct gl_context *ctx ); +void _vbo_InvalidateState( struct gl_context *ctx, GLuint new_state ); -typedef void (*vbo_draw_func)( GLcontext *ctx, +typedef void (*vbo_draw_func)( struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, @@ -92,7 +92,7 @@ struct split_limits { }; -void vbo_split_prims( GLcontext *ctx, +void vbo_split_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -106,8 +106,9 @@ void vbo_split_prims( GLcontext *ctx, /* Helpers for dealing translating away non-zero min_index. */ GLboolean vbo_all_varyings_in_vbos( const struct gl_client_array *arrays[] ); +GLboolean vbo_any_varyings_in_vbos( const struct gl_client_array *arrays[] ); -void vbo_rebase_prims( GLcontext *ctx, +void vbo_rebase_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -116,14 +117,14 @@ void vbo_rebase_prims( GLcontext *ctx, GLuint max_index, vbo_draw_func draw ); void -vbo_get_minmax_index(GLcontext *ctx, const struct _mesa_prim *prim, +vbo_get_minmax_index(struct gl_context *ctx, const struct _mesa_prim *prim, const struct _mesa_index_buffer *ib, GLuint *min_index, GLuint *max_index); -void vbo_use_buffer_objects(GLcontext *ctx); +void vbo_use_buffer_objects(struct gl_context *ctx); -void vbo_set_draw_func(GLcontext *ctx, vbo_draw_func func); +void vbo_set_draw_func(struct gl_context *ctx, vbo_draw_func func); void GLAPIENTRY diff --git a/src/mesa/vbo/vbo_context.c b/src/mesa/vbo/vbo_context.c index 580850574c..9992cc3473 100644 --- a/src/mesa/vbo/vbo_context.c +++ b/src/mesa/vbo/vbo_context.c @@ -49,7 +49,7 @@ static GLuint check_size( const GLfloat *attr ) } -static void init_legacy_currval(GLcontext *ctx) +static void init_legacy_currval(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); struct gl_client_array *arrays = vbo->legacy_currval; @@ -78,7 +78,7 @@ static void init_legacy_currval(GLcontext *ctx) } -static void init_generic_currval(GLcontext *ctx) +static void init_generic_currval(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); struct gl_client_array *arrays = vbo->generic_currval; @@ -104,7 +104,7 @@ static void init_generic_currval(GLcontext *ctx) } -static void init_mat_currval(GLcontext *ctx) +static void init_mat_currval(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); struct gl_client_array *arrays = vbo->mat_currval; @@ -149,7 +149,7 @@ static void init_mat_currval(GLcontext *ctx) } -GLboolean _vbo_CreateContext( GLcontext *ctx ) +GLboolean _vbo_CreateContext( struct gl_context *ctx ) { struct vbo_context *vbo = CALLOC_STRUCT(vbo_context); @@ -207,14 +207,14 @@ GLboolean _vbo_CreateContext( GLcontext *ctx ) } -void _vbo_InvalidateState( GLcontext *ctx, GLuint new_state ) +void _vbo_InvalidateState( struct gl_context *ctx, GLuint new_state ) { _ae_invalidate_state(ctx, new_state); vbo_exec_invalidate_state(ctx, new_state); } -void _vbo_DestroyContext( GLcontext *ctx ) +void _vbo_DestroyContext( struct gl_context *ctx ) { struct vbo_context *vbo = vbo_context(ctx); @@ -239,7 +239,7 @@ void _vbo_DestroyContext( GLcontext *ctx ) } -void vbo_set_draw_func(GLcontext *ctx, vbo_draw_func func) +void vbo_set_draw_func(struct gl_context *ctx, vbo_draw_func func) { struct vbo_context *vbo = vbo_context(ctx); vbo->draw_prims = func; diff --git a/src/mesa/vbo/vbo_context.h b/src/mesa/vbo/vbo_context.h index 00cfc522a0..8d6f2a7ce6 100644 --- a/src/mesa/vbo/vbo_context.h +++ b/src/mesa/vbo/vbo_context.h @@ -85,7 +85,7 @@ struct vbo_context { }; -static INLINE struct vbo_context *vbo_context(GLcontext *ctx) +static INLINE struct vbo_context *vbo_context(struct gl_context *ctx) { return (struct vbo_context *)(ctx->swtnl_im); } @@ -96,7 +96,7 @@ static INLINE struct vbo_context *vbo_context(GLcontext *ctx) * vertex transformation, an NV vertex program or ARB vertex program/shader. */ static INLINE enum vp_mode -get_program_mode( GLcontext *ctx ) +get_program_mode( struct gl_context *ctx ) { if (!ctx->VertexProgram._Current) return VP_NONE; diff --git a/src/mesa/vbo/vbo_exec.c b/src/mesa/vbo/vbo_exec.c index 046fa8105b..e8d5b39b3f 100644 --- a/src/mesa/vbo/vbo_exec.c +++ b/src/mesa/vbo/vbo_exec.c @@ -34,7 +34,7 @@ -void vbo_exec_init( GLcontext *ctx ) +void vbo_exec_init( struct gl_context *ctx ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; @@ -62,7 +62,7 @@ void vbo_exec_init( GLcontext *ctx ) } -void vbo_exec_destroy( GLcontext *ctx ) +void vbo_exec_destroy( struct gl_context *ctx ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; @@ -81,7 +81,7 @@ void vbo_exec_destroy( GLcontext *ctx ) * invoked according to the state flags. That will have to wait for a * mesa rework: */ -void vbo_exec_invalidate_state( GLcontext *ctx, GLuint new_state ) +void vbo_exec_invalidate_state( struct gl_context *ctx, GLuint new_state ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; diff --git a/src/mesa/vbo/vbo_exec.h b/src/mesa/vbo/vbo_exec.h index 33494f0cea..47e51f09c9 100644 --- a/src/mesa/vbo/vbo_exec.h +++ b/src/mesa/vbo/vbo_exec.h @@ -79,7 +79,7 @@ typedef void (*vbo_attrfv_func)( const GLfloat * ); struct vbo_exec_context { - GLcontext *ctx; + struct gl_context *ctx; GLvertexformat vtxfmt; struct { @@ -148,13 +148,13 @@ struct vbo_exec_context /* External API: */ -void vbo_exec_init( GLcontext *ctx ); -void vbo_exec_destroy( GLcontext *ctx ); -void vbo_exec_invalidate_state( GLcontext *ctx, GLuint new_state ); -void vbo_exec_FlushVertices_internal( GLcontext *ctx, GLboolean unmap ); +void vbo_exec_init( struct gl_context *ctx ); +void vbo_exec_destroy( struct gl_context *ctx ); +void vbo_exec_invalidate_state( struct gl_context *ctx, GLuint new_state ); +void vbo_exec_FlushVertices_internal( struct gl_context *ctx, GLboolean unmap ); -void vbo_exec_BeginVertices( GLcontext *ctx ); -void vbo_exec_FlushVertices( GLcontext *ctx, GLuint flags ); +void vbo_exec_BeginVertices( struct gl_context *ctx ); +void vbo_exec_FlushVertices( struct gl_context *ctx, GLuint flags ); /* Internal functions: diff --git a/src/mesa/vbo/vbo_exec_api.c b/src/mesa/vbo/vbo_exec_api.c index 9df75a8406..80ca1d866e 100644 --- a/src/mesa/vbo/vbo_exec_api.c +++ b/src/mesa/vbo/vbo_exec_api.c @@ -142,7 +142,7 @@ void vbo_exec_vtx_wrap( struct vbo_exec_context *exec ) */ static void vbo_exec_copy_to_current( struct vbo_exec_context *exec ) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; struct vbo_context *vbo = vbo_context(ctx); GLuint i; @@ -193,7 +193,7 @@ static void vbo_exec_copy_to_current( struct vbo_exec_context *exec ) static void vbo_exec_copy_from_current( struct vbo_exec_context *exec ) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; struct vbo_context *vbo = vbo_context(ctx); GLint i; @@ -217,7 +217,7 @@ static void vbo_exec_wrap_upgrade_vertex( struct vbo_exec_context *exec, GLuint attr, GLuint newsz ) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; struct vbo_context *vbo = vbo_context(ctx); GLint lastcount = exec->vtx.vert_count; GLfloat *tmp; @@ -318,7 +318,7 @@ static void vbo_exec_wrap_upgrade_vertex( struct vbo_exec_context *exec, } -static void vbo_exec_fixup_vertex( GLcontext *ctx, +static void vbo_exec_fixup_vertex( struct gl_context *ctx, GLuint attr, GLuint sz ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; @@ -358,10 +358,12 @@ static void vbo_exec_fixup_vertex( GLcontext *ctx, #define ATTR( A, N, V0, V1, V2, V3 ) \ do { \ struct vbo_exec_context *exec = &vbo_context(ctx)->exec; \ - \ - if (exec->vtx.active_sz[A] != N) \ - vbo_exec_fixup_vertex(ctx, A, N); \ - \ + \ + if (unlikely(!(exec->ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT))) \ + ctx->Driver.BeginVertices( ctx ); \ + if (unlikely(exec->vtx.active_sz[A] != N)) \ + vbo_exec_fixup_vertex(ctx, A, N); \ + \ { \ GLfloat *dest = exec->vtx.attrptr[A]; \ if (N>0) dest[0] = V0; \ @@ -740,7 +742,7 @@ static void vbo_exec_vtxfmt_init( struct vbo_exec_context *exec ) * This replaces the malloced buffer which was created in * vb_exec_vtx_init() below. */ -void vbo_use_buffer_objects(GLcontext *ctx) +void vbo_use_buffer_objects(struct gl_context *ctx) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; /* Any buffer name but 0 can be used here since this bufferobj won't @@ -769,7 +771,7 @@ void vbo_use_buffer_objects(GLcontext *ctx) void vbo_exec_vtx_init( struct vbo_exec_context *exec ) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; struct vbo_context *vbo = vbo_context(ctx); GLuint i; @@ -827,7 +829,7 @@ void vbo_exec_vtx_init( struct vbo_exec_context *exec ) void vbo_exec_vtx_destroy( struct vbo_exec_context *exec ) { /* using a real VBO for vertex data */ - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; unsigned i; /* True VBOs should already be unmapped @@ -858,7 +860,7 @@ void vbo_exec_vtx_destroy( struct vbo_exec_context *exec ) _mesa_reference_buffer_object(ctx, &exec->vtx.bufferobj, NULL); } -void vbo_exec_BeginVertices( GLcontext *ctx ) +void vbo_exec_BeginVertices( struct gl_context *ctx ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; if (0) printf("%s\n", __FUNCTION__); @@ -868,7 +870,7 @@ void vbo_exec_BeginVertices( GLcontext *ctx ) exec->ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; } -void vbo_exec_FlushVertices_internal( GLcontext *ctx, GLboolean unmap ) +void vbo_exec_FlushVertices_internal( struct gl_context *ctx, GLboolean unmap ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; @@ -886,7 +888,7 @@ void vbo_exec_FlushVertices_internal( GLcontext *ctx, GLboolean unmap ) /** * \param flags bitmask of FLUSH_STORED_VERTICES, FLUSH_UPDATE_CURRENT */ -void vbo_exec_FlushVertices( GLcontext *ctx, GLuint flags ) +void vbo_exec_FlushVertices( struct gl_context *ctx, GLuint flags ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; @@ -911,10 +913,8 @@ void vbo_exec_FlushVertices( GLcontext *ctx, GLuint flags ) /* Need to do this to ensure BeginVertices gets called again: */ - if (exec->ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) { - _mesa_restore_exec_vtxfmt( ctx ); + if (exec->ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) exec->ctx->Driver.NeedFlush &= ~FLUSH_UPDATE_CURRENT; - } exec->ctx->Driver.NeedFlush &= ~flags; diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c index 1759e57887..f46ba636fe 100644 --- a/src/mesa/vbo/vbo_exec_array.c +++ b/src/mesa/vbo/vbo_exec_array.c @@ -43,7 +43,7 @@ * glDraw[Range]Elements() calls. */ void -vbo_get_minmax_index(GLcontext *ctx, +vbo_get_minmax_index(struct gl_context *ctx, const struct _mesa_prim *prim, const struct _mesa_index_buffer *ib, GLuint *min_index, GLuint *max_index) @@ -115,7 +115,7 @@ vbo_get_minmax_index(GLcontext *ctx, * For debugging purposes; not normally used. */ static void -check_array_data(GLcontext *ctx, struct gl_client_array *array, +check_array_data(struct gl_context *ctx, struct gl_client_array *array, GLuint attrib, GLuint j) { if (array->Enabled) { @@ -161,7 +161,7 @@ check_array_data(GLcontext *ctx, struct gl_client_array *array, * Unmap the buffer object referenced by given array, if mapped. */ static void -unmap_array_buffer(GLcontext *ctx, struct gl_client_array *array) +unmap_array_buffer(struct gl_context *ctx, struct gl_client_array *array) { if (array->Enabled && _mesa_is_bufferobj(array->BufferObj) && @@ -176,7 +176,7 @@ unmap_array_buffer(GLcontext *ctx, struct gl_client_array *array) * For debug purposes; not normally used. */ static void -check_draw_elements_data(GLcontext *ctx, GLsizei count, GLenum elemType, +check_draw_elements_data(struct gl_context *ctx, GLsizei count, GLenum elemType, const void *elements, GLint basevertex) { struct gl_array_object *arrayObj = ctx->Array.ArrayObj; @@ -244,7 +244,7 @@ check_draw_elements_data(GLcontext *ctx, GLsizei count, GLenum elemType, * Check array data, looking for NaNs, etc. */ static void -check_draw_arrays_data(GLcontext *ctx, GLint start, GLsizei count) +check_draw_arrays_data(struct gl_context *ctx, GLint start, GLsizei count) { /* TO DO */ } @@ -254,7 +254,7 @@ check_draw_arrays_data(GLcontext *ctx, GLint start, GLsizei count) * Print info/data for glDrawArrays(), for debugging. */ static void -print_draw_arrays(GLcontext *ctx, struct vbo_exec_context *exec, +print_draw_arrays(struct gl_context *ctx, struct vbo_exec_context *exec, GLenum mode, GLint start, GLsizei count) { int i; @@ -303,7 +303,7 @@ print_draw_arrays(GLcontext *ctx, struct vbo_exec_context *exec, * Just translate the arrayobj into a sane layout. */ static void -bind_array_obj(GLcontext *ctx) +bind_array_obj(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); struct vbo_exec_context *exec = &vbo->exec; @@ -348,7 +348,7 @@ bind_array_obj(GLcontext *ctx) * to point at a zero-stride current value "array". */ static void -recalculate_input_bindings(GLcontext *ctx) +recalculate_input_bindings(struct gl_context *ctx) { struct vbo_context *vbo = vbo_context(ctx); struct vbo_exec_context *exec = &vbo->exec; @@ -464,7 +464,7 @@ recalculate_input_bindings(GLcontext *ctx) * must be done after this call. */ static void -bind_arrays(GLcontext *ctx) +bind_arrays(struct gl_context *ctx) { bind_array_obj(ctx); recalculate_input_bindings(ctx); @@ -599,7 +599,7 @@ vbo_exec_DrawArraysInstanced(GLenum mode, GLint start, GLsizei count, * For debugging. */ static void -dump_element_buffer(GLcontext *ctx, GLenum type) +dump_element_buffer(struct gl_context *ctx, GLenum type) { const GLvoid *map = ctx->Driver.MapBuffer(ctx, GL_ELEMENT_ARRAY_BUFFER_ARB, @@ -657,7 +657,7 @@ dump_element_buffer(GLcontext *ctx, GLenum type) * we've validated buffer bounds, etc. */ static void -vbo_validated_drawrangeelements(GLcontext *ctx, GLenum mode, +vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode, GLboolean index_bounds_valid, GLuint start, GLuint end, GLsizei count, GLenum type, @@ -939,7 +939,7 @@ vbo_exec_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, * This does the actual rendering after we've checked array indexes, etc. */ static void -vbo_validated_multidrawelements(GLcontext *ctx, GLenum mode, +vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount, const GLint *basevertex) diff --git a/src/mesa/vbo/vbo_exec_draw.c b/src/mesa/vbo/vbo_exec_draw.c index 84ae1b87f9..71ac0066ca 100644 --- a/src/mesa/vbo/vbo_exec_draw.c +++ b/src/mesa/vbo/vbo_exec_draw.c @@ -154,7 +154,7 @@ vbo_copy_vertices( struct vbo_exec_context *exec ) /* TODO: populate these as the vertex is defined: */ static void -vbo_exec_bind_arrays( GLcontext *ctx ) +vbo_exec_bind_arrays( struct gl_context *ctx ) { struct vbo_context *vbo = vbo_context(ctx); struct vbo_exec_context *exec = &vbo->exec; @@ -260,7 +260,7 @@ vbo_exec_vtx_unmap( struct vbo_exec_context *exec ) GLenum target = GL_ARRAY_BUFFER_ARB; if (_mesa_is_bufferobj(exec->vtx.bufferobj)) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; if (ctx->Driver.FlushMappedBufferRange) { GLintptr offset = exec->vtx.buffer_used - exec->vtx.bufferobj->Offset; @@ -289,7 +289,7 @@ vbo_exec_vtx_unmap( struct vbo_exec_context *exec ) void vbo_exec_vtx_map( struct vbo_exec_context *exec ) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; const GLenum target = GL_ARRAY_BUFFER_ARB; const GLenum access = GL_READ_WRITE_ARB; /* for MapBuffer */ const GLenum accessRange = GL_MAP_WRITE_BIT | /* for MapBufferRange */ @@ -363,7 +363,7 @@ vbo_exec_vtx_flush( struct vbo_exec_context *exec, GLboolean unmap ) exec->vtx.copied.nr = vbo_copy_vertices( exec ); if (exec->vtx.copied.nr != exec->vtx.vert_count) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; /* Before the update_state() as this may raise _NEW_ARRAY * from _mesa_set_varying_vp_inputs(). diff --git a/src/mesa/vbo/vbo_exec_eval.c b/src/mesa/vbo/vbo_exec_eval.c index 23ad12608f..1e8c3c45bb 100644 --- a/src/mesa/vbo/vbo_exec_eval.c +++ b/src/mesa/vbo/vbo_exec_eval.c @@ -67,7 +67,7 @@ static void set_active_eval2( struct vbo_exec_context *exec, GLuint attr, GLuint void vbo_exec_eval_update( struct vbo_exec_context *exec ) { - GLcontext *ctx = exec->ctx; + struct gl_context *ctx = exec->ctx; GLuint attr; /* Vertex program maps have priority over conventional attribs */ diff --git a/src/mesa/vbo/vbo_rebase.c b/src/mesa/vbo/vbo_rebase.c index ff7c7a6b0d..9068ae240a 100644 --- a/src/mesa/vbo/vbo_rebase.c +++ b/src/mesa/vbo/vbo_rebase.c @@ -85,6 +85,18 @@ GLboolean vbo_all_varyings_in_vbos( const struct gl_client_array *arrays[] ) return GL_TRUE; } +GLboolean vbo_any_varyings_in_vbos( const struct gl_client_array *arrays[] ) +{ + GLuint i; + + for (i = 0; i < VERT_ATTRIB_MAX; i++) + if (arrays[i]->StrideB && + arrays[i]->BufferObj->Name != 0) + return GL_TRUE; + + return GL_FALSE; +} + /* Adjust primitives, indices and vertex definitions so that min_index * becomes zero. There are lots of reasons for wanting to do this, eg: * @@ -104,7 +116,7 @@ GLboolean vbo_all_varyings_in_vbos( const struct gl_client_array *arrays[] ) * - can't save time by trying to upload half a vbo - typically it is * all or nothing. */ -void vbo_rebase_prims( GLcontext *ctx, +void vbo_rebase_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, diff --git a/src/mesa/vbo/vbo_save.c b/src/mesa/vbo/vbo_save.c index dd5570689e..4e7bcddc97 100644 --- a/src/mesa/vbo/vbo_save.c +++ b/src/mesa/vbo/vbo_save.c @@ -36,7 +36,7 @@ #if FEATURE_dlist -static void vbo_save_callback_init( GLcontext *ctx ) +static void vbo_save_callback_init( struct gl_context *ctx ) { ctx->Driver.NewList = vbo_save_NewList; ctx->Driver.EndList = vbo_save_EndList; @@ -48,7 +48,7 @@ static void vbo_save_callback_init( GLcontext *ctx ) -void vbo_save_init( GLcontext *ctx ) +void vbo_save_init( struct gl_context *ctx ) { struct vbo_context *vbo = vbo_context(ctx); struct vbo_save_context *save = &vbo->save; @@ -79,7 +79,7 @@ void vbo_save_init( GLcontext *ctx ) } -void vbo_save_destroy( GLcontext *ctx ) +void vbo_save_destroy( struct gl_context *ctx ) { struct vbo_context *vbo = vbo_context(ctx); struct vbo_save_context *save = &vbo->save; @@ -108,7 +108,7 @@ void vbo_save_destroy( GLcontext *ctx ) /* Note that this can occur during the playback of a display list: */ -void vbo_save_fallback( GLcontext *ctx, GLboolean fallback ) +void vbo_save_fallback( struct gl_context *ctx, GLboolean fallback ) { struct vbo_save_context *save = &vbo_context(ctx)->save; diff --git a/src/mesa/vbo/vbo_save.h b/src/mesa/vbo/vbo_save.h index 82ba6c8afe..f5a407ced1 100644 --- a/src/mesa/vbo/vbo_save.h +++ b/src/mesa/vbo/vbo_save.h @@ -117,7 +117,7 @@ struct vbo_save_primitive_store { struct vbo_save_context { - GLcontext *ctx; + struct gl_context *ctx; GLvertexformat vtxfmt; struct gl_client_array arrays[VBO_ATTRIB_MAX]; const struct gl_client_array *inputs[VBO_ATTRIB_MAX]; @@ -155,13 +155,13 @@ struct vbo_save_context { #if FEATURE_dlist -void vbo_save_init( GLcontext *ctx ); -void vbo_save_destroy( GLcontext *ctx ); -void vbo_save_fallback( GLcontext *ctx, GLboolean fallback ); +void vbo_save_init( struct gl_context *ctx ); +void vbo_save_destroy( struct gl_context *ctx ); +void vbo_save_fallback( struct gl_context *ctx, GLboolean fallback ); /* save_loopback.c: */ -void vbo_loopback_vertex_list( GLcontext *ctx, +void vbo_loopback_vertex_list( struct gl_context *ctx, const GLfloat *buffer, const GLubyte *attrsz, const struct _mesa_prim *prim, @@ -171,26 +171,26 @@ void vbo_loopback_vertex_list( GLcontext *ctx, /* Callbacks: */ -void vbo_save_EndList( GLcontext *ctx ); -void vbo_save_NewList( GLcontext *ctx, GLuint list, GLenum mode ); -void vbo_save_EndCallList( GLcontext *ctx ); -void vbo_save_BeginCallList( GLcontext *ctx, struct gl_display_list *list ); -void vbo_save_SaveFlushVertices( GLcontext *ctx ); -GLboolean vbo_save_NotifyBegin( GLcontext *ctx, GLenum mode ); +void vbo_save_EndList( struct gl_context *ctx ); +void vbo_save_NewList( struct gl_context *ctx, GLuint list, GLenum mode ); +void vbo_save_EndCallList( struct gl_context *ctx ); +void vbo_save_BeginCallList( struct gl_context *ctx, struct gl_display_list *list ); +void vbo_save_SaveFlushVertices( struct gl_context *ctx ); +GLboolean vbo_save_NotifyBegin( struct gl_context *ctx, GLenum mode ); -void vbo_save_playback_vertex_list( GLcontext *ctx, void *data ); +void vbo_save_playback_vertex_list( struct gl_context *ctx, void *data ); void vbo_save_api_init( struct vbo_save_context *save ); #else /* FEATURE_dlist */ static INLINE void -vbo_save_init( GLcontext *ctx ) +vbo_save_init( struct gl_context *ctx ) { } static INLINE void -vbo_save_destroy( GLcontext *ctx ) +vbo_save_destroy( struct gl_context *ctx ) { } diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index c3727cb52a..8d66e14ab3 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -99,7 +99,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. * NOTE: Old 'parity' issue is gone, but copying can still be * wrong-footed on replay. */ -static GLuint _save_copy_vertices( GLcontext *ctx, +static GLuint _save_copy_vertices( struct gl_context *ctx, const struct vbo_save_vertex_list *node, const GLfloat *src_buffer) { @@ -170,7 +170,7 @@ static GLuint _save_copy_vertices( GLcontext *ctx, } -static struct vbo_save_vertex_store *alloc_vertex_store( GLcontext *ctx ) +static struct vbo_save_vertex_store *alloc_vertex_store( struct gl_context *ctx ) { struct vbo_save_vertex_store *vertex_store = CALLOC_STRUCT(vbo_save_vertex_store); @@ -198,7 +198,7 @@ static struct vbo_save_vertex_store *alloc_vertex_store( GLcontext *ctx ) return vertex_store; } -static void free_vertex_store( GLcontext *ctx, struct vbo_save_vertex_store *vertex_store ) +static void free_vertex_store( struct gl_context *ctx, struct vbo_save_vertex_store *vertex_store ) { assert(!vertex_store->buffer); @@ -209,7 +209,7 @@ static void free_vertex_store( GLcontext *ctx, struct vbo_save_vertex_store *ver FREE( vertex_store ); } -static GLfloat *map_vertex_store( GLcontext *ctx, struct vbo_save_vertex_store *vertex_store ) +static GLfloat *map_vertex_store( struct gl_context *ctx, struct vbo_save_vertex_store *vertex_store ) { assert(vertex_store->bufferobj); assert(!vertex_store->buffer); @@ -222,14 +222,14 @@ static GLfloat *map_vertex_store( GLcontext *ctx, struct vbo_save_vertex_store * return vertex_store->buffer + vertex_store->used; } -static void unmap_vertex_store( GLcontext *ctx, struct vbo_save_vertex_store *vertex_store ) +static void unmap_vertex_store( struct gl_context *ctx, struct vbo_save_vertex_store *vertex_store ) { ctx->Driver.UnmapBuffer( ctx, GL_ARRAY_BUFFER_ARB, vertex_store->bufferobj ); vertex_store->buffer = NULL; } -static struct vbo_save_primitive_store *alloc_prim_store( GLcontext *ctx ) +static struct vbo_save_primitive_store *alloc_prim_store( struct gl_context *ctx ) { struct vbo_save_primitive_store *store = CALLOC_STRUCT(vbo_save_primitive_store); (void) ctx; @@ -238,7 +238,7 @@ static struct vbo_save_primitive_store *alloc_prim_store( GLcontext *ctx ) return store; } -static void _save_reset_counters( GLcontext *ctx ) +static void _save_reset_counters( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -264,7 +264,7 @@ static void _save_reset_counters( GLcontext *ctx ) /* Insert the active immediate struct onto the display list currently * being built. */ -static void _save_compile_vertex_list( GLcontext *ctx ) +static void _save_compile_vertex_list( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; struct vbo_save_vertex_list *node; @@ -391,7 +391,7 @@ static void _save_compile_vertex_list( GLcontext *ctx ) /* TODO -- If no new vertices have been stored, don't bother saving * it. */ -static void _save_wrap_buffers( GLcontext *ctx ) +static void _save_wrap_buffers( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; GLint i = save->prim_count - 1; @@ -430,7 +430,7 @@ static void _save_wrap_buffers( GLcontext *ctx ) /* Called only when buffers are wrapped as the result of filling the * vertex_store struct. */ -static void _save_wrap_filled_vertex( GLcontext *ctx ) +static void _save_wrap_filled_vertex( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; GLfloat *data = save->copied.buffer; @@ -453,7 +453,7 @@ static void _save_wrap_filled_vertex( GLcontext *ctx ) } -static void _save_copy_to_current( GLcontext *ctx ) +static void _save_copy_to_current( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; GLuint i; @@ -469,7 +469,7 @@ static void _save_copy_to_current( GLcontext *ctx ) } -static void _save_copy_from_current( GLcontext *ctx ) +static void _save_copy_from_current( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; GLint i; @@ -490,7 +490,7 @@ static void _save_copy_from_current( GLcontext *ctx ) /* Flush existing data, set new attrib size, replay copied vertices. */ -static void _save_upgrade_vertex( GLcontext *ctx, +static void _save_upgrade_vertex( struct gl_context *ctx, GLuint attr, GLuint newsz ) { @@ -586,7 +586,7 @@ static void _save_upgrade_vertex( GLcontext *ctx, } } -static void save_fixup_vertex( GLcontext *ctx, GLuint attr, GLuint sz ) +static void save_fixup_vertex( struct gl_context *ctx, GLuint attr, GLuint sz ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -610,7 +610,7 @@ static void save_fixup_vertex( GLcontext *ctx, GLuint attr, GLuint sz ) save->active_sz[attr] = sz; } -static void _save_reset_vertex( GLcontext *ctx ) +static void _save_reset_vertex( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; GLuint i; @@ -673,7 +673,7 @@ do { \ * -- Flush current buffer * -- Fallback to opcodes for the rest of the begin/end object. */ -static void DO_FALLBACK( GLcontext *ctx ) +static void DO_FALLBACK( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -763,7 +763,7 @@ static void GLAPIENTRY _save_CallLists( GLsizei n, GLenum type, const GLvoid *v /* This begin is hooked into ... Updating of * ctx->Driver.CurrentSavePrimitive is already taken care of. */ -GLboolean vbo_save_NotifyBegin( GLcontext *ctx, GLenum mode ) +GLboolean vbo_save_NotifyBegin( struct gl_context *ctx, GLenum mode ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -989,7 +989,7 @@ static void GLAPIENTRY _save_OBE_DrawRangeElements(GLenum mode, -static void _save_vtxfmt_init( GLcontext *ctx ) +static void _save_vtxfmt_init( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; GLvertexformat *vfmt = &save->vtxfmt; @@ -1074,7 +1074,7 @@ static void _save_vtxfmt_init( GLcontext *ctx ) } -void vbo_save_SaveFlushVertices( GLcontext *ctx ) +void vbo_save_SaveFlushVertices( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -1094,7 +1094,7 @@ void vbo_save_SaveFlushVertices( GLcontext *ctx ) ctx->Driver.SaveNeedFlush = 0; } -void vbo_save_NewList( GLcontext *ctx, GLuint list, GLenum mode ) +void vbo_save_NewList( struct gl_context *ctx, GLuint list, GLenum mode ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -1113,7 +1113,7 @@ void vbo_save_NewList( GLcontext *ctx, GLuint list, GLenum mode ) ctx->Driver.SaveNeedFlush = 0; } -void vbo_save_EndList( GLcontext *ctx ) +void vbo_save_EndList( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -1147,13 +1147,13 @@ void vbo_save_EndList( GLcontext *ctx ) assert(save->vertex_size == 0); } -void vbo_save_BeginCallList( GLcontext *ctx, struct gl_display_list *dlist ) +void vbo_save_BeginCallList( struct gl_context *ctx, struct gl_display_list *dlist ) { struct vbo_save_context *save = &vbo_context(ctx)->save; save->replay_flags |= dlist->Flags; } -void vbo_save_EndCallList( GLcontext *ctx ) +void vbo_save_EndCallList( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; @@ -1166,7 +1166,7 @@ void vbo_save_EndCallList( GLcontext *ctx ) } -static void vbo_destroy_vertex_list( GLcontext *ctx, void *data ) +static void vbo_destroy_vertex_list( struct gl_context *ctx, void *data ) { struct vbo_save_vertex_list *node = (struct vbo_save_vertex_list *)data; (void) ctx; @@ -1184,7 +1184,7 @@ static void vbo_destroy_vertex_list( GLcontext *ctx, void *data ) } -static void vbo_print_vertex_list( GLcontext *ctx, void *data ) +static void vbo_print_vertex_list( struct gl_context *ctx, void *data ) { struct vbo_save_vertex_list *node = (struct vbo_save_vertex_list *)data; GLuint i; @@ -1209,7 +1209,7 @@ static void vbo_print_vertex_list( GLcontext *ctx, void *data ) } -static void _save_current_init( GLcontext *ctx ) +static void _save_current_init( struct gl_context *ctx ) { struct vbo_save_context *save = &vbo_context(ctx)->save; GLint i; @@ -1234,7 +1234,7 @@ static void _save_current_init( GLcontext *ctx ) */ void vbo_save_api_init( struct vbo_save_context *save ) { - GLcontext *ctx = save->ctx; + struct gl_context *ctx = save->ctx; GLuint i; save->opcode_vertex_list = diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c index 297fd8705b..533c150a91 100644 --- a/src/mesa/vbo/vbo_save_draw.c +++ b/src/mesa/vbo/vbo_save_draw.c @@ -46,7 +46,7 @@ * last vertex to the saved state */ static void -_playback_copy_to_current(GLcontext *ctx, +_playback_copy_to_current(struct gl_context *ctx, const struct vbo_save_vertex_list *node) { struct vbo_context *vbo = vbo_context(ctx); @@ -124,7 +124,7 @@ _playback_copy_to_current(GLcontext *ctx, * Treat the vertex storage as a VBO, define vertex arrays pointing * into it: */ -static void vbo_bind_vertex_list(GLcontext *ctx, +static void vbo_bind_vertex_list(struct gl_context *ctx, const struct vbo_save_vertex_list *node) { struct vbo_context *vbo = vbo_context(ctx); @@ -209,7 +209,7 @@ static void vbo_bind_vertex_list(GLcontext *ctx, static void -vbo_save_loopback_vertex_list(GLcontext *ctx, +vbo_save_loopback_vertex_list(struct gl_context *ctx, const struct vbo_save_vertex_list *list) { const char *buffer = ctx->Driver.MapBuffer(ctx, @@ -236,7 +236,7 @@ vbo_save_loopback_vertex_list(GLcontext *ctx, * a drawing command. */ void -vbo_save_playback_vertex_list(GLcontext *ctx, void *data) +vbo_save_playback_vertex_list(struct gl_context *ctx, void *data) { const struct vbo_save_vertex_list *node = (const struct vbo_save_vertex_list *) data; diff --git a/src/mesa/vbo/vbo_save_loopback.c b/src/mesa/vbo/vbo_save_loopback.c index 5d1c7e4810..b1cfa9c2a8 100644 --- a/src/mesa/vbo/vbo_save_loopback.c +++ b/src/mesa/vbo/vbo_save_loopback.c @@ -39,29 +39,29 @@ #if FEATURE_dlist -typedef void (*attr_func)( GLcontext *ctx, GLint target, const GLfloat * ); +typedef void (*attr_func)( struct gl_context *ctx, GLint target, const GLfloat * ); /* This file makes heavy use of the aliasing of NV vertex attributes * with the legacy attributes, and also with ARB and Material * attributes as currently implemented. */ -static void VertexAttrib1fvNV(GLcontext *ctx, GLint target, const GLfloat *v) +static void VertexAttrib1fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { CALL_VertexAttrib1fvNV(ctx->Exec, (target, v)); } -static void VertexAttrib2fvNV(GLcontext *ctx, GLint target, const GLfloat *v) +static void VertexAttrib2fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { CALL_VertexAttrib2fvNV(ctx->Exec, (target, v)); } -static void VertexAttrib3fvNV(GLcontext *ctx, GLint target, const GLfloat *v) +static void VertexAttrib3fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { CALL_VertexAttrib3fvNV(ctx->Exec, (target, v)); } -static void VertexAttrib4fvNV(GLcontext *ctx, GLint target, const GLfloat *v) +static void VertexAttrib4fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { CALL_VertexAttrib4fvNV(ctx->Exec, (target, v)); } @@ -83,7 +83,7 @@ struct loopback_attr { * wrapped vertices. If we get here, it's probably because the * precalculated wrapping is wrong. */ -static void loopback_prim( GLcontext *ctx, +static void loopback_prim( struct gl_context *ctx, const GLfloat *buffer, const struct _mesa_prim *prim, GLuint wrap_count, @@ -138,7 +138,7 @@ static void loopback_prim( GLcontext *ctx, * normally, otherwise need to track and discard the generated * primitives. */ -static void loopback_weak_prim( GLcontext *ctx, +static void loopback_weak_prim( struct gl_context *ctx, const struct _mesa_prim *prim ) { /* Use the prim_weak flag to ensure that if this primitive @@ -155,7 +155,7 @@ static void loopback_weak_prim( GLcontext *ctx, } -void vbo_loopback_vertex_list( GLcontext *ctx, +void vbo_loopback_vertex_list( struct gl_context *ctx, const GLfloat *buffer, const GLubyte *attrsz, const struct _mesa_prim *prim, diff --git a/src/mesa/vbo/vbo_split.c b/src/mesa/vbo/vbo_split.c index ce40cbbcc3..54b2539b8e 100644 --- a/src/mesa/vbo/vbo_split.c +++ b/src/mesa/vbo/vbo_split.c @@ -98,7 +98,7 @@ GLboolean split_prim_inplace(GLenum mode, GLuint *first, GLuint *incr) -void vbo_split_prims( GLcontext *ctx, +void vbo_split_prims( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, diff --git a/src/mesa/vbo/vbo_split.h b/src/mesa/vbo/vbo_split.h index 05888d048c..b7f0a9c576 100644 --- a/src/mesa/vbo/vbo_split.h +++ b/src/mesa/vbo/vbo_split.h @@ -49,7 +49,7 @@ */ GLboolean split_prim_inplace(GLenum mode, GLuint *first, GLuint *incr); -void vbo_split_inplace( GLcontext *ctx, +void vbo_split_inplace( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, @@ -61,7 +61,7 @@ void vbo_split_inplace( GLcontext *ctx, /* Requires ib != NULL: */ -void vbo_split_copy( GLcontext *ctx, +void vbo_split_copy( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, diff --git a/src/mesa/vbo/vbo_split_copy.c b/src/mesa/vbo/vbo_split_copy.c index 2ec7d9b0fe..26d0046e83 100644 --- a/src/mesa/vbo/vbo_split_copy.c +++ b/src/mesa/vbo/vbo_split_copy.c @@ -49,7 +49,7 @@ */ struct copy_context { - GLcontext *ctx; + struct gl_context *ctx; const struct gl_client_array **array; const struct _mesa_prim *prim; GLuint nr_prims; @@ -137,7 +137,7 @@ check_flush( struct copy_context *copy ) * Dump the parameters/info for a vbo->draw() call. */ static void -dump_draw_info(GLcontext *ctx, +dump_draw_info(struct gl_context *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, @@ -419,7 +419,7 @@ replay_elts( struct copy_context *copy ) static void replay_init( struct copy_context *copy ) { - GLcontext *ctx = copy->ctx; + struct gl_context *ctx = copy->ctx; GLuint i; GLuint offset; const GLvoid *srcptr; @@ -548,7 +548,7 @@ replay_init( struct copy_context *copy ) static void replay_finish( struct copy_context *copy ) { - GLcontext *ctx = copy->ctx; + struct gl_context *ctx = copy->ctx; GLuint i; /* Free our vertex and index buffers: @@ -577,7 +577,7 @@ replay_finish( struct copy_context *copy ) /** * Split VBO into smaller pieces, draw the pieces. */ -void vbo_split_copy( GLcontext *ctx, +void vbo_split_copy( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, diff --git a/src/mesa/vbo/vbo_split_inplace.c b/src/mesa/vbo/vbo_split_inplace.c index 2fc866c577..789cf31364 100644 --- a/src/mesa/vbo/vbo_split_inplace.c +++ b/src/mesa/vbo/vbo_split_inplace.c @@ -41,7 +41,7 @@ * that. */ struct split_context { - GLcontext *ctx; + struct gl_context *ctx; const struct gl_client_array **array; const struct _mesa_prim *prim; GLuint nr_prims; @@ -249,7 +249,7 @@ static void split_prims( struct split_context *split) } -void vbo_split_inplace( GLcontext *ctx, +void vbo_split_inplace( struct gl_context *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, diff --git a/src/mesa/x86/gen_matypes.c b/src/mesa/x86/gen_matypes.c index 14cfa910aa..648bf8787d 100644 --- a/src/mesa/x86/gen_matypes.c +++ b/src/mesa/x86/gen_matypes.c @@ -84,22 +84,22 @@ int main( int argc, char **argv ) printf( "\n" ); - /* GLcontext offsets: + /* struct gl_context offsets: */ - OFFSET_HEADER( "GLcontext" ); + OFFSET_HEADER( "struct gl_context" ); - OFFSET( "CTX_DRIVER_CTX ", GLcontext, DriverCtx ); + OFFSET( "CTX_DRIVER_CTX ", struct gl_context, DriverCtx ); printf( "\n" ); - OFFSET( "CTX_LIGHT_ENABLED ", GLcontext, Light.Enabled ); - OFFSET( "CTX_LIGHT_SHADE_MODEL ", GLcontext, Light.ShadeModel ); - OFFSET( "CTX_LIGHT_COLOR_MAT_FACE ", GLcontext, Light.ColorMaterialFace ); - OFFSET( "CTX_LIGHT_COLOR_MAT_MODE ", GLcontext, Light.ColorMaterialMode ); - OFFSET( "CTX_LIGHT_COLOR_MAT_MASK ", GLcontext, Light.ColorMaterialBitmask ); - OFFSET( "CTX_LIGHT_COLOR_MAT_ENABLED ", GLcontext, Light.ColorMaterialEnabled ); - OFFSET( "CTX_LIGHT_ENABLED_LIST ", GLcontext, Light.EnabledList ); - OFFSET( "CTX_LIGHT_NEED_VERTS ", GLcontext, Light._NeedVertices ); - OFFSET( "CTX_LIGHT_FLAGS ", GLcontext, Light._Flags ); - OFFSET( "CTX_LIGHT_BASE_COLOR ", GLcontext, Light._BaseColor ); + OFFSET( "CTX_LIGHT_ENABLED ", struct gl_context, Light.Enabled ); + OFFSET( "CTX_LIGHT_SHADE_MODEL ", struct gl_context, Light.ShadeModel ); + OFFSET( "CTX_LIGHT_COLOR_MAT_FACE ", struct gl_context, Light.ColorMaterialFace ); + OFFSET( "CTX_LIGHT_COLOR_MAT_MODE ", struct gl_context, Light.ColorMaterialMode ); + OFFSET( "CTX_LIGHT_COLOR_MAT_MASK ", struct gl_context, Light.ColorMaterialBitmask ); + OFFSET( "CTX_LIGHT_COLOR_MAT_ENABLED ", struct gl_context, Light.ColorMaterialEnabled ); + OFFSET( "CTX_LIGHT_ENABLED_LIST ", struct gl_context, Light.EnabledList ); + OFFSET( "CTX_LIGHT_NEED_VERTS ", struct gl_context, Light._NeedVertices ); + OFFSET( "CTX_LIGHT_FLAGS ", struct gl_context, Light._Flags ); + OFFSET( "CTX_LIGHT_BASE_COLOR ", struct gl_context, Light._BaseColor ); /* struct vertex_buffer offsets: diff --git a/src/mesa/x86/mmx.h b/src/mesa/x86/mmx.h index 47a0d4b54d..d4bda07ead 100644 --- a/src/mesa/x86/mmx.h +++ b/src/mesa/x86/mmx.h @@ -30,27 +30,27 @@ #include "main/mtypes.h" extern void _ASMAPI -_mesa_mmx_blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[], +_mesa_mmx_blend_transparency( struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *rgba, const GLvoid *dest, GLenum chanType ); extern void _ASMAPI -_mesa_mmx_blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[], +_mesa_mmx_blend_add( struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *rgba, const GLvoid *dest, GLenum chanType ); extern void _ASMAPI -_mesa_mmx_blend_min( GLcontext *ctx, GLuint n, const GLubyte mask[], +_mesa_mmx_blend_min( struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *rgba, const GLvoid *dest, GLenum chanType ); extern void _ASMAPI -_mesa_mmx_blend_max( GLcontext *ctx, GLuint n, const GLubyte mask[], +_mesa_mmx_blend_max( struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *rgba, const GLvoid *dest, GLenum chanType ); extern void _ASMAPI -_mesa_mmx_blend_modulate( GLcontext *ctx, GLuint n, const GLubyte mask[], +_mesa_mmx_blend_modulate( struct gl_context *ctx, GLuint n, const GLubyte mask[], GLvoid *rgba, const GLvoid *dest, GLenum chanType ); diff --git a/src/mesa/x86/mmx_blendtmp.h b/src/mesa/x86/mmx_blendtmp.h index c2fdeb62b3..8534792e29 100644 --- a/src/mesa/x86/mmx_blendtmp.h +++ b/src/mesa/x86/mmx_blendtmp.h @@ -4,7 +4,7 @@ /* - * void _mesa_mmx_blend( GLcontext *ctx, + * void _mesa_mmx_blend( struct gl_context *ctx, * GLuint n, * const GLubyte mask[], * GLchan rgba[][4], |