diff -r 000000000000 -r 6474c204b198 gfx/angle/src/libGLESv2/renderer/SwapChain.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/angle/src/libGLESv2/renderer/SwapChain.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,44 @@ +// +// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// SwapChain.h: Defines a back-end specific class that hides the details of the +// implementation-specific swapchain. + +#ifndef LIBGLESV2_RENDERER_SWAPCHAIN_H_ +#define LIBGLESV2_RENDERER_SWAPCHAIN_H_ + +#include "common/angleutils.h" + +namespace rx +{ + +class SwapChain +{ + public: + SwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) + : mWindow(window), mShareHandle(shareHandle), mBackBufferFormat(backBufferFormat), mDepthBufferFormat(depthBufferFormat) + { + } + + virtual ~SwapChain() {}; + + virtual EGLint resize(EGLint backbufferWidth, EGLint backbufferSize) = 0; + virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval) = 0; + virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height) = 0; + virtual void recreate() = 0; + + virtual HANDLE getShareHandle() {return mShareHandle;}; + + protected: + const HWND mWindow; // Window that the surface is created for. + const GLenum mBackBufferFormat; + const GLenum mDepthBufferFormat; + + HANDLE mShareHandle; +}; + +} +#endif // LIBGLESV2_RENDERER_SWAPCHAIN_H_