sp_state_blend.c revision a6c0c5532f7bfa50ae54c36cf4d74ad4b9f926f8
17658a0208aa31f1443be6eaa720a383b34e2bbb3Brian/************************************************************************** 27658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * 37658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. 47658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * All Rights Reserved. 57658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * 67658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * Permission is hereby granted, free of charge, to any person obtaining a 77658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * copy of this software and associated documentation files (the 87658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * "Software"), to deal in the Software without restriction, including 97658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * without limitation the rights to use, copy, modify, merge, publish, 107658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * distribute, sub license, and/or sell copies of the Software, and to 117658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * permit persons to whom the Software is furnished to do so, subject to 127658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * the following conditions: 137658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * 147658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * The above copyright notice and this permission notice (including the 157658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * next paragraph) shall be included in all copies or substantial portions 167658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * of the Software. 177658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * 187658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 197658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 207658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 217658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 227658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 237658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 247658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 257658a0208aa31f1443be6eaa720a383b34e2bbb3Brian * 267658a0208aa31f1443be6eaa720a383b34e2bbb3Brian **************************************************************************/ 277658a0208aa31f1443be6eaa720a383b34e2bbb3Brian 287658a0208aa31f1443be6eaa720a383b34e2bbb3Brian/* Authors: Keith Whitwell <keith@tungstengraphics.com> 297658a0208aa31f1443be6eaa720a383b34e2bbb3Brian */ 307658a0208aa31f1443be6eaa720a383b34e2bbb3Brian#include "sp_context.h" 317658a0208aa31f1443be6eaa720a383b34e2bbb3Brian#include "sp_state.h" 327658a0208aa31f1443be6eaa720a383b34e2bbb3Brian 33c0bf7322088715bb411068c3d631b0c4be8cdff5Zack Rusinvoid * 349780327c5d95586a88fce94d7b47342355ead118Zack Rusinsoftpipe_create_blend_state(struct pipe_context *pipe, 359780327c5d95586a88fce94d7b47342355ead118Zack Rusin const struct pipe_blend_state *blend) 369780327c5d95586a88fce94d7b47342355ead118Zack Rusin{ 37c8650b087440c7ba5ad0d8652dc916852e55bc1dZack Rusin /* means that we just want pipe_blend_state and don't have 38c8650b087440c7ba5ad0d8652dc916852e55bc1dZack Rusin * anything specific */ 39c8650b087440c7ba5ad0d8652dc916852e55bc1dZack Rusin return 0; 409780327c5d95586a88fce94d7b47342355ead118Zack Rusin} 417658a0208aa31f1443be6eaa720a383b34e2bbb3Brian 429780327c5d95586a88fce94d7b47342355ead118Zack Rusinvoid softpipe_bind_blend_state( struct pipe_context *pipe, 43c0bf7322088715bb411068c3d631b0c4be8cdff5Zack Rusin void *blend ) 447658a0208aa31f1443be6eaa720a383b34e2bbb3Brian{ 457658a0208aa31f1443be6eaa720a383b34e2bbb3Brian struct softpipe_context *softpipe = softpipe_context(pipe); 467658a0208aa31f1443be6eaa720a383b34e2bbb3Brian 47c0bf7322088715bb411068c3d631b0c4be8cdff5Zack Rusin softpipe->blend = (const struct pipe_blend_state *)blend; 487658a0208aa31f1443be6eaa720a383b34e2bbb3Brian 49a380f98b6cc1da78d0845746ab86c3490a800126Brian softpipe->dirty |= SP_NEW_BLEND; 507658a0208aa31f1443be6eaa720a383b34e2bbb3Brian} 517658a0208aa31f1443be6eaa720a383b34e2bbb3Brian 529780327c5d95586a88fce94d7b47342355ead118Zack Rusinvoid softpipe_delete_blend_state(struct pipe_context *pipe, 53c0bf7322088715bb411068c3d631b0c4be8cdff5Zack Rusin void *blend ) 549780327c5d95586a88fce94d7b47342355ead118Zack Rusin{ 55c8650b087440c7ba5ad0d8652dc916852e55bc1dZack Rusin /* do nothing */ 569780327c5d95586a88fce94d7b47342355ead118Zack Rusin} 579780327c5d95586a88fce94d7b47342355ead118Zack Rusin 58ecfa794037e8be351ecfec0229d1e3b1677ae369Brian 59284efcfc27aaeb447e0898ae3342e9fee20c584aBrianvoid softpipe_set_blend_color( struct pipe_context *pipe, 60284efcfc27aaeb447e0898ae3342e9fee20c584aBrian const struct pipe_blend_color *blend_color ) 61284efcfc27aaeb447e0898ae3342e9fee20c584aBrian{ 62284efcfc27aaeb447e0898ae3342e9fee20c584aBrian struct softpipe_context *softpipe = softpipe_context(pipe); 63284efcfc27aaeb447e0898ae3342e9fee20c584aBrian 64284efcfc27aaeb447e0898ae3342e9fee20c584aBrian softpipe->blend_color = *blend_color; 65284efcfc27aaeb447e0898ae3342e9fee20c584aBrian 66a380f98b6cc1da78d0845746ab86c3490a800126Brian softpipe->dirty |= SP_NEW_BLEND; 67284efcfc27aaeb447e0898ae3342e9fee20c584aBrian} 68284efcfc27aaeb447e0898ae3342e9fee20c584aBrian 69284efcfc27aaeb447e0898ae3342e9fee20c584aBrian 70ecfa794037e8be351ecfec0229d1e3b1677ae369Brian/** XXX move someday? Or consolidate all these simple state setters 71ecfa794037e8be351ecfec0229d1e3b1677ae369Brian * into one file. 72ecfa794037e8be351ecfec0229d1e3b1677ae369Brian */ 73ecfa794037e8be351ecfec0229d1e3b1677ae369Brian 74ecfa794037e8be351ecfec0229d1e3b1677ae369Brianvoid 75ecfa794037e8be351ecfec0229d1e3b1677ae369Briansoftpipe_set_alpha_test_state(struct pipe_context *pipe, 76ecfa794037e8be351ecfec0229d1e3b1677ae369Brian const struct pipe_alpha_test_state *alpha) 77ecfa794037e8be351ecfec0229d1e3b1677ae369Brian{ 78ecfa794037e8be351ecfec0229d1e3b1677ae369Brian struct softpipe_context *softpipe = softpipe_context(pipe); 79ecfa794037e8be351ecfec0229d1e3b1677ae369Brian 80ecfa794037e8be351ecfec0229d1e3b1677ae369Brian softpipe->alpha_test = *alpha; 81ecfa794037e8be351ecfec0229d1e3b1677ae369Brian 82a380f98b6cc1da78d0845746ab86c3490a800126Brian softpipe->dirty |= SP_NEW_ALPHA_TEST; 83ecfa794037e8be351ecfec0229d1e3b1677ae369Brian} 84ecfa794037e8be351ecfec0229d1e3b1677ae369Brian 85a6c0c5532f7bfa50ae54c36cf4d74ad4b9f926f8Zack Rusinvoid * 86d6ac959833a8e40a27907940969c622692f749b1Zack Rusinsoftpipe_create_depth_stencil_state(struct pipe_context *pipe, 87d6ac959833a8e40a27907940969c622692f749b1Zack Rusin const struct pipe_depth_stencil_state *depth_stencil) 88d6ac959833a8e40a27907940969c622692f749b1Zack Rusin{ 89a6c0c5532f7bfa50ae54c36cf4d74ad4b9f926f8Zack Rusin return 0; 90d6ac959833a8e40a27907940969c622692f749b1Zack Rusin} 91d6ac959833a8e40a27907940969c622692f749b1Zack Rusin 92e6eca5c37e13fd0f9100de127075b1bbed0821c0Brianvoid 93d6ac959833a8e40a27907940969c622692f749b1Zack Rusinsoftpipe_bind_depth_stencil_state(struct pipe_context *pipe, 94a6c0c5532f7bfa50ae54c36cf4d74ad4b9f926f8Zack Rusin void *depth_stencil) 95e6eca5c37e13fd0f9100de127075b1bbed0821c0Brian{ 96e6eca5c37e13fd0f9100de127075b1bbed0821c0Brian struct softpipe_context *softpipe = softpipe_context(pipe); 97e6eca5c37e13fd0f9100de127075b1bbed0821c0Brian 98a6c0c5532f7bfa50ae54c36cf4d74ad4b9f926f8Zack Rusin softpipe->depth_stencil = (const struct pipe_depth_stencil_state *)depth_stencil; 99e6eca5c37e13fd0f9100de127075b1bbed0821c0Brian 100d6ac959833a8e40a27907940969c622692f749b1Zack Rusin softpipe->dirty |= SP_NEW_DEPTH_STENCIL; 101e6eca5c37e13fd0f9100de127075b1bbed0821c0Brian} 102e6eca5c37e13fd0f9100de127075b1bbed0821c0Brian 103d6ac959833a8e40a27907940969c622692f749b1Zack Rusinvoid 104a6c0c5532f7bfa50ae54c36cf4d74ad4b9f926f8Zack Rusinsoftpipe_delete_depth_stencil_state(struct pipe_context *pipe, void *depth) 105d6ac959833a8e40a27907940969c622692f749b1Zack Rusin{ 106a6c0c5532f7bfa50ae54c36cf4d74ad4b9f926f8Zack Rusin /* do nothing */ 107d6ac959833a8e40a27907940969c622692f749b1Zack Rusin} 108