summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander von Gluck IV <kallisti5@unixzen.com>2014-03-19 00:58:01 +0000
committerAlexander von Gluck IV <kallisti5@unixzen.com>2014-03-24 19:01:53 -0500
commit7683fce8781ef0169333c5ee1276392d058cfaa8 (patch)
treeb335c4e5d94cac5fb928a8e96a13ba8c2a83a9e7
parenteccad18bd89556608092278cf46a9aaa4605f163 (diff)
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>
-rwxr-xr-xscons/gallium.py5
-rw-r--r--src/gallium/targets/haiku-softpipe/GalliumContext.cpp12
2 files changed, 14 insertions, 3 deletions
diff --git a/scons/gallium.py b/scons/gallium.py
index f505a62be5..e11d4dba31 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 1078cb7b38..52cd764847 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);
}
}