haiku: Fix build through scons corrections and viewport fixes

* 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)

Acked-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Alexander von Gluck IV 2014-03-19 00:58:01 +00:00
parent eccad18bd8
commit 7683fce878
2 changed files with 14 additions and 3 deletions

View file

@ -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',

View file

@ -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);
}
}