gfx/angle/src/libGLESv2/renderer/SwapChain.h

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:32faa1510e6d
1 //
2 // Copyright (c) 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 //
6
7 // SwapChain.h: Defines a back-end specific class that hides the details of the
8 // implementation-specific swapchain.
9
10 #ifndef LIBGLESV2_RENDERER_SWAPCHAIN_H_
11 #define LIBGLESV2_RENDERER_SWAPCHAIN_H_
12
13 #include "common/angleutils.h"
14
15 namespace rx
16 {
17
18 class SwapChain
19 {
20 public:
21 SwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat)
22 : mWindow(window), mShareHandle(shareHandle), mBackBufferFormat(backBufferFormat), mDepthBufferFormat(depthBufferFormat)
23 {
24 }
25
26 virtual ~SwapChain() {};
27
28 virtual EGLint resize(EGLint backbufferWidth, EGLint backbufferSize) = 0;
29 virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval) = 0;
30 virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height) = 0;
31 virtual void recreate() = 0;
32
33 virtual HANDLE getShareHandle() {return mShareHandle;};
34
35 protected:
36 const HWND mWindow; // Window that the surface is created for.
37 const GLenum mBackBufferFormat;
38 const GLenum mDepthBufferFormat;
39
40 HANDLE mShareHandle;
41 };
42
43 }
44 #endif // LIBGLESV2_RENDERER_SWAPCHAIN_H_

mercurial