Edit

kc3-lang/angle/src/libEGL/Display.h

Branch :

  • Show log

    Commit

  • Author : alokp@chromium.org
    Date : 2010-03-22 19:33:14
    Hash : ea0e1af4
    Message : Minor reshuffling of directory structure in preparation of ESSL to GLSL compiler work. 1. Added include/GLSLANG which includes compiler API 2. Deleted src/include and moved the header files to the same directory as the corresponding source files 3. Modied include path to be relative to src/. I have only fixed paths for files I moved. We should fix it for all new files at least. It is much easier to see where an included file is coming from. I noticed that a few libGLESv2 source files include headers from libEGL project, which seems wrong. I think we should address this issue. Next step: move compiler source files to compiler/frontend and create two new projects compiler/glsl_backend and compiler/hlsl_backend. Review URL: http://codereview.appspot.com/662042 git-svn-id: https://angleproject.googlecode.com/svn/trunk@62 736b8ea6-26fd-11df-bfd4-992fa37f6226

  • src/libEGL/Display.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.
    //
    
    // Display.h: Defines the egl::Display class, representing the abstract
    // display on which graphics are drawn. Implements EGLDisplay.
    // [EGL 1.4] section 2.1.2 page 3.
    
    #ifndef INCLUDE_DISPLAY_H_
    #define INCLUDE_DISPLAY_H_
    
    #ifndef WIN32_LEAN_AND_MEAN
    #define WIN32_LEAN_AND_MEAN
    #endif
    #include <windows.h>
    #include <d3d9.h>
    
    #include "Config.h"
    #include "Surface.h"
    #include "libGLESv2/Context.h"
    
    #include <set>
    
    namespace egl
    {
    class Display
    {
      public:
        Display(HDC deviceContext);
    
        ~Display();
    
        bool initialize();
        void terminate();
    
        bool getConfigs(EGLConfig *configs, const EGLint *attribList, EGLint configSize, EGLint *numConfig);
        bool getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value);
    
        egl::Surface *createWindowSurface(HWND window, EGLConfig config);
        EGLContext createContext(EGLConfig configHandle);
    
        void destroySurface(egl::Surface *surface);
        void destroyContext(gl::Context *context);
    
        bool isInitialized();
        bool isValidConfig(EGLConfig config);
        bool isValidContext(gl::Context *context);
        bool isValidSurface(egl::Surface *surface);
        bool hasExistingWindowSurface(HWND window);
    
        virtual IDirect3DDevice9 *getDevice();
    
      private:
        DISALLOW_COPY_AND_ASSIGN(Display);
        const HDC mDc;
    
        UINT mAdapter;
        D3DDEVTYPE mDeviceType;
        IDirect3D9 *mD3d9;
        IDirect3DDevice9 *mDevice;
    
        typedef std::set<Surface*> SurfaceSet;
        SurfaceSet mSurfaceSet;
    
        ConfigSet mConfigSet;
    
        typedef std::set<gl::Context*> ContextSet;
        ContextSet mContextSet;
    };
    }
    
    #endif   // INCLUDE_DISPLAY_H_