WebCore/html/canvas/WebGLContextAttributes.h
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 /*
       
     2  * Copyright (c) 2010, Google Inc. All rights reserved.
       
     3  *
       
     4  * Redistribution and use in source and binary forms, with or without
       
     5  * modification, are permitted provided that the following conditions are
       
     6  * met:
       
     7  *     * Redistributions of source code must retain the above copyright
       
     8  * notice, this list of conditions and the following disclaimer.
       
     9  *     * Redistributions in binary form must reproduce the above
       
    10  * copyright notice, this list of conditions and the following disclaimer
       
    11  * in the documentation and/or other materials provided with the
       
    12  * distribution.
       
    13  *
       
    14  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
       
    15  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
       
    16  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
       
    17  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
       
    18  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
       
    19  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
       
    20  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
       
    21  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
       
    22  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
       
    23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
       
    24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
       
    25  */
       
    26 
       
    27 #ifndef WebGLContextAttributes_h
       
    28 #define WebGLContextAttributes_h
       
    29 
       
    30 #include "CanvasContextAttributes.h"
       
    31 #include "GraphicsContext3D.h"
       
    32 #include <wtf/PassRefPtr.h>
       
    33 
       
    34 namespace WebCore {
       
    35 
       
    36 class WebGLContextAttributes : public CanvasContextAttributes {
       
    37   public:
       
    38     virtual ~WebGLContextAttributes();
       
    39 
       
    40     // Create a new attributes object
       
    41     static PassRefPtr<WebGLContextAttributes> create();
       
    42 
       
    43     // Create a new attributes object initialized with preexisting attributes
       
    44     static PassRefPtr<WebGLContextAttributes> create(GraphicsContext3D::Attributes attributes);
       
    45 
       
    46     // Whether or not the drawing buffer has an alpha channel; default=true
       
    47     bool alpha() const;
       
    48     void setAlpha(bool alpha);
       
    49 
       
    50     // Whether or not the drawing buffer has a depth buffer; default=true
       
    51     bool depth() const;
       
    52     void setDepth(bool depth);
       
    53 
       
    54     // Whether or not the drawing buffer has a stencil buffer; default=true
       
    55     bool stencil() const;
       
    56     void setStencil(bool stencil);
       
    57 
       
    58     // Whether or not the drawing buffer is antialiased; default=true
       
    59     bool antialias() const;
       
    60     void setAntialias(bool antialias);
       
    61 
       
    62     // Whether or not to treat the values in the drawing buffer as
       
    63     // though their alpha channel has already been multiplied into the
       
    64     // color channels; default=true
       
    65     bool premultipliedAlpha() const;
       
    66     void setPremultipliedAlpha(bool premultipliedAlpha);
       
    67 
       
    68     // Fetches a copy of the attributes stored in this object in a
       
    69     // form that can be used to initialize a GraphicsContext3D.
       
    70     GraphicsContext3D::Attributes attributes() const;
       
    71 
       
    72   protected:
       
    73     WebGLContextAttributes();
       
    74     WebGLContextAttributes(GraphicsContext3D::Attributes attributes);
       
    75 
       
    76   private:
       
    77     GraphicsContext3D::Attributes m_attrs;
       
    78 };
       
    79 
       
    80 } // namespace WebCore
       
    81 
       
    82 #endif // WebGLContextAttributes_h