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// SwapChain9.h: Defines a back-end specific class for the D3D9 swap chain. 8 9#ifndef LIBGLESV2_RENDERER_SWAPCHAIN9_H_ 10#define LIBGLESV2_RENDERER_SWAPCHAIN9_H_ 11 12#include "common/angleutils.h" 13#include "libGLESv2/renderer/SwapChain.h" 14 15namespace rx 16{ 17class Renderer9; 18 19class SwapChain9 : public SwapChain 20{ 21 public: 22 SwapChain9(Renderer9 *renderer, HWND window, HANDLE shareHandle, 23 GLenum backBufferFormat, GLenum depthBufferFormat); 24 virtual ~SwapChain9(); 25 26 EGLint resize(EGLint backbufferWidth, EGLint backbufferHeight); 27 virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval); 28 virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height); 29 virtual void recreate(); 30 31 virtual IDirect3DSurface9 *getRenderTarget(); 32 virtual IDirect3DSurface9 *getDepthStencil(); 33 virtual IDirect3DTexture9 *getOffscreenTexture(); 34 35 static SwapChain9 *makeSwapChain9(SwapChain *swapChain); 36 37 private: 38 DISALLOW_COPY_AND_ASSIGN(SwapChain9); 39 40 void release(); 41 42 Renderer9 *mRenderer; 43 EGLint mHeight; 44 EGLint mWidth; 45 EGLint mSwapInterval; 46 47 IDirect3DSwapChain9 *mSwapChain; 48 IDirect3DSurface9 *mBackBuffer; 49 IDirect3DSurface9 *mRenderTarget; 50 IDirect3DSurface9 *mDepthStencil; 51 IDirect3DTexture9* mOffscreenTexture; 52}; 53 54} 55#endif // LIBGLESV2_RENDERER_SWAPCHAIN9_H_ 56