r600: implement texture border color
This commit is contained in:
@@ -269,14 +269,12 @@ static void r600SetTexFilter(radeonTexObjPtr t, GLenum minf, GLenum magf, GLfloa
|
||||
|
||||
static void r600SetTexBorderColor(radeonTexObjPtr t, const GLfloat color[4])
|
||||
{
|
||||
#if 0
|
||||
GLubyte c[4];
|
||||
CLAMPED_FLOAT_TO_UBYTE(c[0], color[0]);
|
||||
CLAMPED_FLOAT_TO_UBYTE(c[1], color[1]);
|
||||
CLAMPED_FLOAT_TO_UBYTE(c[2], color[2]);
|
||||
CLAMPED_FLOAT_TO_UBYTE(c[3], color[3]);
|
||||
t->pp_border_color = PACK_COLOR_8888(c[3], c[0], c[1], c[2]);
|
||||
#endif
|
||||
t->TD_PS_SAMPLER0_BORDER_ALPHA = *((uint32_t*)&(color[3]));
|
||||
t->TD_PS_SAMPLER0_BORDER_RED = *((uint32_t*)&(color[2]));
|
||||
t->TD_PS_SAMPLER0_BORDER_GREEN = *((uint32_t*)&(color[1]));
|
||||
t->TD_PS_SAMPLER0_BORDER_BLUE = *((uint32_t*)&(color[0]));
|
||||
SETfield(t->SQ_TEX_SAMPLER0, SQ_TEX_BORDER_COLOR_REGISTER,
|
||||
BORDER_COLOR_TYPE_shift, BORDER_COLOR_TYPE_mask);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -187,6 +187,15 @@ GLboolean r700SendTextureState(context_t *context)
|
||||
R600_OUT_BATCH(r700->textures[i]->SQ_TEX_SAMPLER1);
|
||||
R600_OUT_BATCH(r700->textures[i]->SQ_TEX_SAMPLER2);
|
||||
END_BATCH();
|
||||
|
||||
BEGIN_BATCH_NO_AUTOSTATE(2 + 4);
|
||||
R600_OUT_BATCH_REGSEQ((TD_PS_SAMPLER0_BORDER_RED + (i * 16)), 4);
|
||||
R600_OUT_BATCH(r700->textures[i]->TD_PS_SAMPLER0_BORDER_RED);
|
||||
R600_OUT_BATCH(r700->textures[i]->TD_PS_SAMPLER0_BORDER_GREEN);
|
||||
R600_OUT_BATCH(r700->textures[i]->TD_PS_SAMPLER0_BORDER_BLUE);
|
||||
R600_OUT_BATCH(r700->textures[i]->TD_PS_SAMPLER0_BORDER_ALPHA);
|
||||
END_BATCH();
|
||||
|
||||
COMMIT_BATCH();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -239,6 +239,11 @@ struct radeon_tex_obj {
|
||||
GLuint SQ_TEX_SAMPLER1;
|
||||
GLuint SQ_TEX_SAMPLER2;
|
||||
|
||||
GLuint TD_PS_SAMPLER0_BORDER_RED;
|
||||
GLuint TD_PS_SAMPLER0_BORDER_GREEN;
|
||||
GLuint TD_PS_SAMPLER0_BORDER_BLUE;
|
||||
GLuint TD_PS_SAMPLER0_BORDER_ALPHA;
|
||||
|
||||
GLboolean border_fallback;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user