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