浏览代码

swrast: stop using PutRowRGB() in triangle code

Reviewed-by: Eric Anholt <eric@anholt.net>
tags/mesa-8.0-rc1
Brian Paul 13 年前
父节点
当前提交
6e7bc79578
共有 1 个文件被更改,包括 12 次插入10 次删除
  1. 12
    10
      src/mesa/swrast/s_triangle.c

+ 12
- 10
src/mesa/swrast/s_triangle.c 查看文件

@@ -142,7 +142,7 @@ _swrast_culltriangle( struct gl_context *ctx,

#define RENDER_SPAN( span ) \
GLuint i; \
GLubyte rgb[MAX_WIDTH][3]; \
GLubyte rgba[MAX_WIDTH][4]; \
span.intTex[0] -= FIXED_HALF; /* off-by-one error? */ \
span.intTex[1] -= FIXED_HALF; \
for (i = 0; i < span.end; i++) { \
@@ -150,13 +150,14 @@ _swrast_culltriangle( struct gl_context *ctx,
GLint t = FixedToInt(span.intTex[1]) & tmask; \
GLint pos = (t << twidth_log2) + s; \
pos = pos + pos + pos; /* multiply by 3 */ \
rgb[i][RCOMP] = texture[pos+2]; \
rgb[i][GCOMP] = texture[pos+1]; \
rgb[i][BCOMP] = texture[pos+0]; \
rgba[i][RCOMP] = texture[pos+2]; \
rgba[i][GCOMP] = texture[pos+1]; \
rgba[i][BCOMP] = texture[pos+0]; \
rgba[i][ACOMP] = 0xff; \
span.intTex[0] += span.intTexStep[0]; \
span.intTex[1] += span.intTexStep[1]; \
} \
rb->PutRowRGB(ctx, rb, span.end, span.x, span.y, rgb, NULL);
rb->PutRow(ctx, rb, span.end, span.x, span.y, rgba, NULL);

#include "s_tritemp.h"

@@ -198,7 +199,7 @@ _swrast_culltriangle( struct gl_context *ctx,

#define RENDER_SPAN( span ) \
GLuint i; \
GLubyte rgb[MAX_WIDTH][3]; \
GLubyte rgba[MAX_WIDTH][4]; \
span.intTex[0] -= FIXED_HALF; /* off-by-one error? */ \
span.intTex[1] -= FIXED_HALF; \
for (i = 0; i < span.end; i++) { \
@@ -208,9 +209,10 @@ _swrast_culltriangle( struct gl_context *ctx,
GLint t = FixedToInt(span.intTex[1]) & tmask; \
GLint pos = (t << twidth_log2) + s; \
pos = pos + pos + pos; /* multiply by 3 */ \
rgb[i][RCOMP] = texture[pos+2]; \
rgb[i][GCOMP] = texture[pos+1]; \
rgb[i][BCOMP] = texture[pos+0]; \
rgba[i][RCOMP] = texture[pos+2]; \
rgba[i][GCOMP] = texture[pos+1]; \
rgba[i][BCOMP] = texture[pos+0]; \
rgba[i][ACOMP] = 0xff; \
zRow[i] = z; \
span.array->mask[i] = 1; \
} \
@@ -221,7 +223,7 @@ _swrast_culltriangle( struct gl_context *ctx,
span.intTex[1] += span.intTexStep[1]; \
span.z += span.zStep; \
} \
rb->PutRowRGB(ctx, rb, span.end, span.x, span.y, rgb, span.array->mask);
rb->PutRow(ctx, rb, span.end, span.x, span.y, rgba, span.array->mask);

#include "s_tritemp.h"


正在加载...
取消
保存