From 9a9fb94ca99e05195f1faa747397bd26fb8f7cca Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Mon, 28 Oct 2013 12:56:43 -0500 Subject: [PATCH] haiku-softpipe: Minor cleanup and color space fixes * Use more consistant data sources * Fix improper color space assignments * Remove unnecessary comments and code * Drop unnecessary round_up function (this was leftover from moving winsys code out of renderer) Acked-by: Brian Paul --- .../targets/haiku-softpipe/GalliumContext.cpp | 27 +++++++------------ .../haiku-softpipe/SoftwareRenderer.cpp | 6 ++--- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp index ba76ddaee89..ff420b9af26 100644 --- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp +++ b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp @@ -73,10 +73,11 @@ hgl_fill_st_visual(gl_config* glVisual) // Determine color format if (glVisual->redBits == 8) { if (glVisual->alphaBits == 8) - stVisual->color_format = PIPE_FORMAT_B8G8R8A8_UNORM; + stVisual->color_format = PIPE_FORMAT_A8R8G8B8_UNORM; else - stVisual->color_format = PIPE_FORMAT_B8G8R8X8_UNORM; + stVisual->color_format = PIPE_FORMAT_X8R8G8B8_UNORM; } else { + // TODO: I think this should be RGB vs BGR stVisual->color_format = PIPE_FORMAT_B5G6R5_UNORM; } @@ -91,11 +92,9 @@ hgl_fill_st_visual(gl_config* glVisual) break; case 24: if (glVisual->stencilBits == 0) { - stVisual->depth_stencil_format = PIPE_FORMAT_Z24X8_UNORM; - // or PIPE_FORMAT_X8Z24_UNORM? + stVisual->depth_stencil_format = PIPE_FORMAT_X8Z24_UNORM; } else { - stVisual->depth_stencil_format = PIPE_FORMAT_Z24_UNORM_S8_UINT; - // or PIPE_FORMAT_S8_UINT_Z24_UNORM? + stVisual->depth_stencil_format = PIPE_FORMAT_S8_UINT_Z24_UNORM; } break; case 32: @@ -126,13 +125,6 @@ hgl_fill_st_visual(gl_config* glVisual) } -static INLINE unsigned -round_up(unsigned n, unsigned multiple) -{ - return (n + multiple - 1) & ~(multiple - 1); -} - - static int hook_stm_get_param(struct st_manager *smapi, enum st_manager_param param) { @@ -253,10 +245,10 @@ GalliumContext::CreateContext(Bitmap *bitmap) const GLboolean stereoFlag = false; const GLint depth = (fOptions & BGL_DEPTH) ? 24 : 0; const GLint stencil = (fOptions & BGL_STENCIL) ? 8 : 0; - const GLint accum = 0; // (options & BGL_ACCUM) ? 16 : 0; - const GLint red = rgbFlag ? 8 : 0; - const GLint green = rgbFlag ? 8 : 0; - const GLint blue = rgbFlag ? 8 : 0; + const GLint accum = (fOptions & BGL_ACCUM) ? 16 : 0; + const GLint red = rgbFlag ? 8 : 5; + const GLint green = rgbFlag ? 8 : 5; + const GLint blue = rgbFlag ? 8 : 5; const GLint alpha = alphaFlag ? 8 : 0; TRACE("rgb :\t%d\n", (bool)rgbFlag); @@ -521,3 +513,4 @@ GalliumContext::SwapBuffers(context_id contextID) return B_OK; } +/* vim: set tabstop=4: */ diff --git a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp b/src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp index ced22566a09..fa71dd764e0 100644 --- a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp +++ b/src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp @@ -116,9 +116,7 @@ SoftwareRenderer::LockGL() BAutolock lock(fInfoLocker); if (fDirectModeEnabled && fInfo != NULL) { fNewWidth = fInfo->window_bounds.right - fInfo->window_bounds.left; - // + 1; fNewHeight = fInfo->window_bounds.bottom - fInfo->window_bounds.top; - // + 1; } if (fBitmap && cs == fColorSpace && fNewWidth == fWidth @@ -179,8 +177,10 @@ SoftwareRenderer::SwapBuffers(bool vsync) ERROR("%s: Bitmap size doesn't match size!\n", __func__); return; } - uint8 bytesPerPixel = fInfo->bits_per_pixel / 8; + uint32 bytesPerRow = fBitmap->BytesPerRow(); + uint8 bytesPerPixel = bytesPerRow / fBitmap->Bounds().IntegerWidth(); + for (uint32 i = 0; i < fInfo->clip_list_count; i++) { clipping_rect *clip = &fInfo->clip_list[i]; int32 height = clip->bottom - clip->top + 1; -- 2.30.2