Edit

kc3-lang/angle/Include/Surface.h

Branch :

  • Show log

    Commit

  • Author : daniel@transgaming.com
    Date : 2010-03-08 20:26:45
    Hash : 4f39fd99
    Message : Initial import from TransGaming git-svn-id: https://angleproject.googlecode.com/svn/trunk@2 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • Include/Surface.h
  • //
    // Copyright (c) 2002-2010 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.
    //
    
    // Surface.h: Defines the egl::Surface class, representing a drawing surface
    // such as the client area of a window, including any back buffers.
    // Implements EGLSurface and related functionality. [EGL 1.4] section 2.2 page 3.
    
    #ifndef INCLUDE_SURFACE_H_
    #define INCLUDE_SURFACE_H_
    
    #define EGLAPI
    #include <EGL/egl.h>
    #include <d3d9.h>
    
    #include "angleutils.h"
    
    namespace egl
    {
    class Surface
    {
      public:
        Surface(IDirect3DDevice9 *device, IDirect3DSwapChain9 *swapChain, EGLint configID);
    
        ~Surface();
    
        HWND getWindowHandle();
        void swap();
    
        EGLint getWidth() const;
        EGLint getHeight() const;
    
        virtual IDirect3DSurface9 *getRenderTarget();
    
      private:
        DISALLOW_COPY_AND_ASSIGN(Surface);
        IDirect3DSwapChain9 *const mSwapChain;
        IDirect3DSurface9 *mBackBuffer;
        IDirect3DSurface9 *mRenderTarget;
    
        const EGLint mConfigID;            // ID of EGLConfig surface was created with
        EGLint mHeight;                    // Height of surface
        EGLint mWidth;                    // Width of surface
    //    EGLint horizontalResolution;    // Horizontal dot pitch
    //    EGLint verticalResolution;        // Vertical dot pitch
    //    EGLBoolean largestPBuffer;        // If true, create largest pbuffer possible
    //    EGLBoolean mipmapTexture;        // True if texture has mipmaps
    //    EGLint mipmapLevel;                // Mipmap level to render to
    //    EGLenum multisampleResolve;        // Multisample resolve behavior
        EGLint mPixelAspectRatio;        // Display aspect ratio
        EGLenum mRenderBuffer;            // Render buffer
        EGLenum mSwapBehavior;            // Buffer swap behavior
    //    EGLenum textureFormat;            // Format of texture: RGB, RGBA, or no texture
    //    EGLenum textureTarget;            // Type of texture: 2D or no texture
    //    EGLenum vgAlphaFormat;            // Alpha format for OpenVG
    //    EGLenum vgColorSpace;            // Color space for OpenVG
    };
    }
    
    #endif   // INCLUDE_SURFACE_H_