X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fswrast%2Fs_blit.c;h=6b7e5e4533381a077be10248ee7917716460a77e;hb=30f4ccff5bd7304a623d2909aaf8de35727ce03d;hp=16e5b8c1cb13b648c67587350d2ad9ce8836f808;hpb=e9b86cb5d66867b66c6d453d7bd60bd56fe6587d;p=mesa.git diff --git a/src/mesa/swrast/s_blit.c b/src/mesa/swrast/s_blit.c index 16e5b8c1cb1..6b7e5e45333 100644 --- a/src/mesa/swrast/s_blit.c +++ b/src/mesa/swrast/s_blit.c @@ -52,8 +52,8 @@ NAME(GLint srcWidth, GLint dstWidth, \ if (flip) { \ for (dstCol = 0; dstCol < dstWidth; dstCol++) { \ GLint srcCol = (dstCol * srcWidth) / dstWidth; \ - ASSERT(srcCol >= 0); \ - ASSERT(srcCol < srcWidth); \ + assert(srcCol >= 0); \ + assert(srcCol < srcWidth); \ srcCol = srcWidth - 1 - srcCol; /* flip */ \ if (SIZE == 1) { \ dst[dstCol] = src[srcCol]; \ @@ -73,8 +73,8 @@ NAME(GLint srcWidth, GLint dstWidth, \ else { \ for (dstCol = 0; dstCol < dstWidth; dstCol++) { \ GLint srcCol = (dstCol * srcWidth) / dstWidth; \ - ASSERT(srcCol >= 0); \ - ASSERT(srcCol < srcWidth); \ + assert(srcCol >= 0); \ + assert(srcCol < srcWidth); \ if (SIZE == 1) { \ dst[dstCol] = src[srcCol]; \ } \ @@ -198,8 +198,8 @@ blit_nearest(struct gl_context *ctx, /* Blit to all the draw buffers */ for (i = 0; i < numDrawBuffers; i++) { if (buffer == GL_COLOR_BUFFER_BIT) { - int idx = drawFb->_ColorDrawBufferIndexes[i]; - if (idx == -1) + gl_buffer_index idx = drawFb->_ColorDrawBufferIndexes[i]; + if (idx == BUFFER_NONE) continue; drawAtt = &drawFb->Attachment[idx]; drawRb = drawAtt->Renderbuffer; @@ -253,7 +253,7 @@ blit_nearest(struct gl_context *ctx, ctx->Driver.MapRenderbuffer(ctx, readRb, 0, 0, readRb->Width, readRb->Height, GL_MAP_READ_BIT | GL_MAP_WRITE_BIT, - &map, &rowStride); + &map, &rowStride, readFb->FlipY); if (!map) { goto fail_no_memory; } @@ -280,14 +280,16 @@ blit_nearest(struct gl_context *ctx, ctx->Driver.MapRenderbuffer(ctx, readRb, srcXpos, srcYpos, srcWidth, srcHeight, - GL_MAP_READ_BIT, &srcMap, &srcRowStride); + GL_MAP_READ_BIT, &srcMap, &srcRowStride, + readFb->FlipY); if (!srcMap) { goto fail_no_memory; } ctx->Driver.MapRenderbuffer(ctx, drawRb, dstXpos, dstYpos, dstWidth, dstHeight, - GL_MAP_WRITE_BIT, &dstMap, &dstRowStride); + GL_MAP_WRITE_BIT, &dstMap, &dstRowStride, + drawFb->FlipY); if (!dstMap) { ctx->Driver.UnmapRenderbuffer(ctx, readRb); goto fail_no_memory; @@ -296,11 +298,11 @@ blit_nearest(struct gl_context *ctx, for (dstRow = 0; dstRow < dstHeight; dstRow++) { GLfloat srcRowF = (dstRow + 0.5F) / dstHeight * srcHeight - 0.5F; - GLint srcRow = IROUND(srcRowF); + GLint srcRow = lroundf(srcRowF); GLubyte *dstRowStart = dstMap + dstRowStride * dstRow; - ASSERT(srcRow >= 0); - ASSERT(srcRow < srcHeight); + assert(srcRow >= 0); + assert(srcRow < srcHeight); if (invertY) { srcRow = srcHeight - 1 - srcRow; @@ -332,7 +334,7 @@ blit_nearest(struct gl_context *ctx, break; } - (*resampleRow)(srcWidth, dstWidth, srcBuffer, dstBuffer, invertX); + resampleRow(srcWidth, dstWidth, srcBuffer, dstBuffer, invertX); prevY = srcRow; } @@ -407,13 +409,13 @@ resample_linear_row_ub(GLint srcWidth, GLint dstWidth, for (dstCol = 0; dstCol < dstWidth; dstCol++) { const GLfloat srcCol = (dstCol + 0.5F) / dstWidth * srcWidth - 0.5F; - GLint srcCol0 = MAX2(0, IFLOOR(srcCol)); + GLint srcCol0 = MAX2(0, util_ifloor(srcCol)); GLint srcCol1 = srcCol0 + 1; GLfloat colWeight = srcCol - srcCol0; /* fractional part of srcCol */ GLfloat red, green, blue, alpha; - ASSERT(srcCol0 < srcWidth); - ASSERT(srcCol1 <= srcWidth); + assert(srcCol0 < srcWidth); + assert(srcCol1 <= srcWidth); if (srcCol1 == srcWidth) { /* last column fudge */ @@ -438,11 +440,11 @@ resample_linear_row_ub(GLint srcWidth, GLint dstWidth, alpha = lerp_2d(colWeight, rowWeight, srcColor0[srcCol0][ACOMP], srcColor0[srcCol1][ACOMP], srcColor1[srcCol0][ACOMP], srcColor1[srcCol1][ACOMP]); - - dstColor[dstCol][RCOMP] = IFLOOR(red); - dstColor[dstCol][GCOMP] = IFLOOR(green); - dstColor[dstCol][BCOMP] = IFLOOR(blue); - dstColor[dstCol][ACOMP] = IFLOOR(alpha); + + dstColor[dstCol][RCOMP] = util_ifloor(red); + dstColor[dstCol][GCOMP] = util_ifloor(green); + dstColor[dstCol][BCOMP] = util_ifloor(blue); + dstColor[dstCol][ACOMP] = util_ifloor(alpha); } } @@ -462,13 +464,13 @@ resample_linear_row_float(GLint srcWidth, GLint dstWidth, for (dstCol = 0; dstCol < dstWidth; dstCol++) { const GLfloat srcCol = (dstCol + 0.5F) / dstWidth * srcWidth - 0.5F; - GLint srcCol0 = MAX2(0, IFLOOR(srcCol)); + GLint srcCol0 = MAX2(0, util_ifloor(srcCol)); GLint srcCol1 = srcCol0 + 1; GLfloat colWeight = srcCol - srcCol0; /* fractional part of srcCol */ GLfloat red, green, blue, alpha; - ASSERT(srcCol0 < srcWidth); - ASSERT(srcCol1 <= srcWidth); + assert(srcCol0 < srcWidth); + assert(srcCol1 <= srcWidth); if (srcCol1 == srcWidth) { /* last column fudge */ @@ -493,7 +495,7 @@ resample_linear_row_float(GLint srcWidth, GLint dstWidth, alpha = lerp_2d(colWeight, rowWeight, srcColor0[srcCol0][ACOMP], srcColor0[srcCol1][ACOMP], srcColor1[srcCol0][ACOMP], srcColor1[srcCol1][ACOMP]); - + dstColor[dstCol][RCOMP] = red; dstColor[dstCol][GCOMP] = green; dstColor[dstCol][BCOMP] = blue; @@ -569,12 +571,12 @@ blit_linear(struct gl_context *ctx, } for (i = 0; i < drawFb->_NumColorDrawBuffers; i++) { - GLint idx = drawFb->_ColorDrawBufferIndexes[i]; + gl_buffer_index idx = drawFb->_ColorDrawBufferIndexes[i]; struct gl_renderbuffer_attachment *drawAtt; struct gl_renderbuffer *drawRb; mesa_format drawFormat; - if (idx == -1) + if (idx == BUFFER_NONE) continue; drawAtt = &drawFb->Attachment[idx]; @@ -594,7 +596,8 @@ blit_linear(struct gl_context *ctx, ctx->Driver.MapRenderbuffer(ctx, readRb, 0, 0, readRb->Width, readRb->Height, GL_MAP_READ_BIT | GL_MAP_WRITE_BIT, - &srcMap, &srcRowStride); + &srcMap, &srcRowStride, + readFb->FlipY); if (!srcMap) { goto fail_no_memory; } @@ -609,13 +612,15 @@ blit_linear(struct gl_context *ctx, */ ctx->Driver.MapRenderbuffer(ctx, readRb, 0, 0, readRb->Width, readRb->Height, - GL_MAP_READ_BIT, &srcMap, &srcRowStride); + GL_MAP_READ_BIT, &srcMap, &srcRowStride, + readFb->FlipY); if (!srcMap) { goto fail_no_memory; } ctx->Driver.MapRenderbuffer(ctx, drawRb, 0, 0, drawRb->Width, drawRb->Height, - GL_MAP_WRITE_BIT, &dstMap, &dstRowStride); + GL_MAP_WRITE_BIT, &dstMap, &dstRowStride, + drawFb->FlipY); if (!dstMap) { ctx->Driver.UnmapRenderbuffer(ctx, readRb); goto fail_no_memory; @@ -625,7 +630,7 @@ blit_linear(struct gl_context *ctx, for (dstRow = 0; dstRow < dstHeight; dstRow++) { const GLint dstY = dstYpos + dstRow; GLfloat srcRow = (dstRow + 0.5F) / dstHeight * srcHeight - 0.5F; - GLint srcRow0 = MAX2(0, IFLOOR(srcRow)); + GLint srcRow0 = MAX2(0, util_ifloor(srcRow)); GLint srcRow1 = srcRow0 + 1; GLfloat rowWeight = srcRow - srcRow0; /* fractional part of srcRow */ @@ -801,7 +806,7 @@ _swrast_BlitFramebuffer(struct gl_context *ctx, } } else { - ASSERT(filter == GL_LINEAR); + assert(filter == GL_LINEAR); if (mask & GL_COLOR_BUFFER_BIT) { /* depth/stencil not allowed */ blit_linear(ctx, readFb, drawFb, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1);