summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300
diff options
context:
space:
mode:
authorRoland Scheidegger <sroland@vmware.com>2010-01-28 17:23:58 +0100
committerRoland Scheidegger <sroland@vmware.com>2010-01-28 17:23:58 +0100
commit9b346f83a7b672e913a7bb6a089d5dbd7fbdce06 (patch)
treef5e4856c9d6fb4e57c4ddf6e64d5212f24c853ae /src/gallium/drivers/r300
parentbd60e6cd5ce7c19e52338f12f73dfa1b622391d5 (diff)
parent2fa34bf44c7cd7ba03ce8a7e82fe56898a57e9b4 (diff)
Merge commit 'origin/perrtblend'
Conflicts: src/gallium/drivers/softpipe/sp_screen.c src/gallium/include/pipe/p_defines.h
Diffstat (limited to 'src/gallium/drivers/r300')
-rw-r--r--src/gallium/drivers/r300/r300_screen.c3
-rw-r--r--src/gallium/drivers/r300/r300_state.c22
2 files changed, 14 insertions, 11 deletions
diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c
index a4a0e52815..b8fbf03d3a 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -149,6 +149,9 @@ static int r300_get_param(struct pipe_screen* pscreen, int param)
} else {
return 0;
}
+ case PIPE_CAP_INDEP_BLEND_ENABLE:
+ case PIPE_CAP_INDEP_BLEND_FUNC:
+ return 0;
default:
debug_printf("r300: Implementation error: Bad param %d\n",
param);
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index 1b920563a5..3cdcf94274 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -163,15 +163,15 @@ static void* r300_create_blend_state(struct pipe_context* pipe,
{
struct r300_blend_state* blend = CALLOC_STRUCT(r300_blend_state);
- if (state->blend_enable)
+ if (state->rt[0].blend_enable)
{
- unsigned eqRGB = state->rgb_func;
- unsigned srcRGB = state->rgb_src_factor;
- unsigned dstRGB = state->rgb_dst_factor;
+ unsigned eqRGB = state->rt[0].rgb_func;
+ unsigned srcRGB = state->rt[0].rgb_src_factor;
+ unsigned dstRGB = state->rt[0].rgb_dst_factor;
- unsigned eqA = state->alpha_func;
- unsigned srcA = state->alpha_src_factor;
- unsigned dstA = state->alpha_dst_factor;
+ unsigned eqA = state->rt[0].alpha_func;
+ unsigned srcA = state->rt[0].alpha_src_factor;
+ unsigned dstA = state->rt[0].alpha_dst_factor;
/* despite the name, ALPHA_BLEND_ENABLE has nothing to do with alpha,
* this is just the crappy D3D naming */
@@ -289,16 +289,16 @@ static void* r300_create_blend_state(struct pipe_context* pipe,
}
/* Color Channel Mask */
- if (state->colormask & PIPE_MASK_R) {
+ if (state->rt[0].colormask & PIPE_MASK_R) {
blend->color_channel_mask |= RB3D_COLOR_CHANNEL_MASK_RED_MASK0;
}
- if (state->colormask & PIPE_MASK_G) {
+ if (state->rt[0].colormask & PIPE_MASK_G) {
blend->color_channel_mask |= RB3D_COLOR_CHANNEL_MASK_GREEN_MASK0;
}
- if (state->colormask & PIPE_MASK_B) {
+ if (state->rt[0].colormask & PIPE_MASK_B) {
blend->color_channel_mask |= RB3D_COLOR_CHANNEL_MASK_BLUE_MASK0;
}
- if (state->colormask & PIPE_MASK_A) {
+ if (state->rt[0].colormask & PIPE_MASK_A) {
blend->color_channel_mask |= RB3D_COLOR_CHANNEL_MASK_ALPHA_MASK0;
}