gfx/angle/src/libEGL/Surface.h

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 //
     2 // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
     3 // Use of this source code is governed by a BSD-style license that can be
     4 // found in the LICENSE file.
     5 //
     7 // Surface.h: Defines the egl::Surface class, representing a drawing surface
     8 // such as the client area of a window, including any back buffers.
     9 // Implements EGLSurface and related functionality. [EGL 1.4] section 2.2 page 3.
    11 #ifndef LIBEGL_SURFACE_H_
    12 #define LIBEGL_SURFACE_H_
    14 #define EGLAPI
    15 #include <EGL/egl.h>
    17 #include "common/angleutils.h"
    19 namespace gl
    20 {
    21 class Texture2D;
    22 }
    23 namespace rx
    24 {
    25 class Renderer;
    26 class SwapChain;
    27 }
    29 namespace egl
    30 {
    31 class Display;
    32 class Config;
    34 class Surface
    35 {
    36   public:
    37     Surface(Display *display, const egl::Config *config, HWND window, EGLint postSubBufferSupported);
    38     Surface(Display *display, const egl::Config *config, HANDLE shareHandle, EGLint width, EGLint height, EGLenum textureFormat, EGLenum textureTarget);
    40     ~Surface();
    42     bool initialize();
    43     void release();
    44     bool resetSwapChain();
    46     HWND getWindowHandle();
    47     bool swap();
    48     bool postSubBuffer(EGLint x, EGLint y, EGLint width, EGLint height);
    50     virtual EGLint getWidth() const;
    51     virtual EGLint getHeight() const;
    53     virtual EGLint isPostSubBufferSupported() const;
    55     virtual rx::SwapChain *getSwapChain() const;
    57     void setSwapInterval(EGLint interval);
    58     bool checkForOutOfDateSwapChain();   // Returns true if swapchain changed due to resize or interval update
    60     virtual EGLenum getTextureFormat() const;
    61     virtual EGLenum getTextureTarget() const;
    62     virtual EGLenum getFormat() const;
    64     virtual void setBoundTexture(gl::Texture2D *texture);
    65     virtual gl::Texture2D *getBoundTexture() const;
    67 private:
    68     DISALLOW_COPY_AND_ASSIGN(Surface);
    70     Display *const mDisplay;
    71     rx::Renderer *mRenderer;
    73     HANDLE mShareHandle;
    74     rx::SwapChain *mSwapChain;
    76     void subclassWindow();
    77     void unsubclassWindow();
    78     bool resizeSwapChain(int backbufferWidth, int backbufferHeight);
    79     bool resetSwapChain(int backbufferWidth, int backbufferHeight);
    80     bool swapRect(EGLint x, EGLint y, EGLint width, EGLint height);
    82     const HWND mWindow;            // Window that the surface is created for.
    83     bool mWindowSubclassed;        // Indicates whether we successfully subclassed mWindow for WM_RESIZE hooking
    84     const egl::Config *mConfig;    // EGL config surface was created with
    85     EGLint mHeight;                // Height of surface
    86     EGLint mWidth;                 // Width of surface
    87 //  EGLint horizontalResolution;   // Horizontal dot pitch
    88 //  EGLint verticalResolution;     // Vertical dot pitch
    89 //  EGLBoolean largestPBuffer;     // If true, create largest pbuffer possible
    90 //  EGLBoolean mipmapTexture;      // True if texture has mipmaps
    91 //  EGLint mipmapLevel;            // Mipmap level to render to
    92 //  EGLenum multisampleResolve;    // Multisample resolve behavior
    93     EGLint mPixelAspectRatio;      // Display aspect ratio
    94     EGLenum mRenderBuffer;         // Render buffer
    95     EGLenum mSwapBehavior;         // Buffer swap behavior
    96     EGLenum mTextureFormat;        // Format of texture: RGB, RGBA, or no texture
    97     EGLenum mTextureTarget;        // Type of texture: 2D or no texture
    98 //  EGLenum vgAlphaFormat;         // Alpha format for OpenVG
    99 //  EGLenum vgColorSpace;          // Color space for OpenVG
   100     EGLint mSwapInterval;
   101     EGLint mPostSubBufferSupported;
   103     bool mSwapIntervalDirty;
   104     gl::Texture2D *mTexture;
   105 };
   106 }
   108 #endif   // LIBEGL_SURFACE_H_

mercurial