17ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman/* 27ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * Mesa 3-D graphics library 37ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * Version: 7.1 47ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * 57ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. 67ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * 77ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * Permission is hereby granted, free of charge, to any person obtaining a 87ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * copy of this software and associated documentation files (the "Software"), 97ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * to deal in the Software without restriction, including without limitation 107ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * the rights to use, copy, modify, merge, publish, distribute, sublicense, 117ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * and/or sell copies of the Software, and to permit persons to whom the 127ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * Software is furnished to do so, subject to the following conditions: 137ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * 147ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * The above copyright notice and this permission notice shall be included 157ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * in all copies or substantial portions of the Software. 167ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * 177ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 187ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 197ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 207ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 217ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 227ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 237ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman */ 247ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 257ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 267ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman#include "main/glheader.h" 277ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman#include "main/context.h" 287ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman#include "main/macros.h" 297ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman#include "main/multisample.h" 307ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman#include "main/mtypes.h" 317ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 327ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 337ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman/** 347ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman * Called via glSampleCoverageARB 357ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman */ 367ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukmanvoid GLAPIENTRY 377ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman_mesa_SampleCoverageARB(GLclampf value, GLboolean invert) 387ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman{ 397ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman GET_CURRENT_CONTEXT(ctx); 407ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 417ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx ); 427ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 437ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->Multisample.SampleCoverageValue = (GLfloat) CLAMP(value, 0.0, 1.0); 447ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->Multisample.SampleCoverageInvert = invert; 457ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->NewState |= _NEW_MULTISAMPLE; 467ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman} 477ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 487ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman 4957240ff6e2252f8986f6e47e4010bc52fbae25d1Benjamin Kramer/** 5057240ff6e2252f8986f6e47e4010bc52fbae25d1Benjamin Kramer * Initialize the context's multisample state. 51b33f8e3e55932d0e15a686ef0c598da8dbc37acdJay Foad * \param ctx the GL context. 52b33f8e3e55932d0e15a686ef0c598da8dbc37acdJay Foad */ 537ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukmanvoid 547ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman_mesa_init_multisample(struct gl_context *ctx) 557ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman{ 567ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->Multisample.Enabled = GL_TRUE; 577ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->Multisample.SampleAlphaToCoverage = GL_FALSE; 587ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->Multisample.SampleAlphaToOne = GL_FALSE; 597ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->Multisample.SampleCoverage = GL_FALSE; 607ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman ctx->Multisample.SampleCoverageValue = 1.0; 61b33f8e3e55932d0e15a686ef0c598da8dbc37acdJay Foad ctx->Multisample.SampleCoverageInvert = GL_FALSE; 627ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman} 637ae6ff442a26212a0cc4c1929b8b0a105dc988e4Misha Brukman