On 03/22/2014 03:58 PM, Alexander von Gluck IV wrote: > * Add HAVE_PTHREAD, we do have pthread support wrappers now for > non-native Haiku threaded applications. > * Viewport changed behavior recently breaking the build. > We fix this by looking at the gl_context ViewportArray > (Thanks Brian for the idea)
The build fixes and the Viewport changes should be separate patches. With the changes split, the patch with the Viewport changes is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> I don't know anything about scons, so someone else will have to review that. > --- > scons/gallium.py | 5 +++++ > .../targets/haiku-softpipe/GalliumContext.cpp | 12 +++++++++--- > 2 files changed, 14 insertions(+), 3 deletions(-) > > diff --git a/scons/gallium.py b/scons/gallium.py > index f505a62..e11d4db 100755 > --- a/scons/gallium.py > +++ b/scons/gallium.py > @@ -269,6 +269,11 @@ def generate(env): > cppdefines += ['HAVE_ALIAS'] > else: > cppdefines += ['GLX_ALIAS_UNSUPPORTED'] > + if env['platform'] == 'haiku': > + cppdefines += [ > + 'HAVE_PTHREAD', > + 'HAVE_POSIX_MEMALIGN' > + ] > if platform == 'windows': > cppdefines += [ > 'WIN32', > diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp > b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp > index 1078cb7..52cd764 100644 > --- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp > +++ b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp > @@ -44,9 +44,15 @@ extern "C" { > > > static void > -hgl_viewport(struct gl_context* glContext, GLint x, GLint y, > - GLsizei width, GLsizei height) > +hgl_viewport(struct gl_context* glContext) > { > + // TODO: We should try to eliminate this function > + > + GLint x = glContext->ViewportArray[0].X; > + GLint y = glContext->ViewportArray[0].Y; > + GLint width = glContext->ViewportArray[0].Width; > + GLint height = glContext->ViewportArray[0].Height; > + > TRACE("%s(glContext: %p, x: %d, y: %d, w: %d, h: %d\n", __func__, > glContext, x, y, width, height); > > @@ -525,7 +531,7 @@ GalliumContext::ResizeViewport(int32 width, int32 height) > for (context_id i = 0; i < CONTEXT_MAX; i++) { > if (fContext[i] && fContext[i]->st) { > struct st_context *stContext = (struct > st_context*)fContext[i]->st; > - _mesa_set_viewport(stContext->ctx, 0, 0, width, height); > + _mesa_set_viewport(stContext->ctx, 0, 0, 0, width, > height); > st_manager_validate_framebuffers(stContext); > } > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev