Hash :
a9b96d0d
Author :
Date :
2013-01-25T21:56:18
Include windows.h from one place to ensure that min and max macros are not defined. These conflict with the STL functions of the same name. This is to make the standalone ANGLE gyp build work again. Review URL: https://codereview.appspot.com/7211043 Also includes r1729 which adds the missing new file. git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1790 736b8ea6-26fd-11df-bfd4-992fa37f6226
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
//
// Copyright (c) 2002-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.
//
// 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 LIBEGL_DISPLAY_H_
#define LIBEGL_DISPLAY_H_
#include "common/system.h"
#include <set>
#include <vector>
#include "libGLESv2/Context.h"
#include "libGLESv2/renderer/Renderer.h"
#include "libEGL/Config.h"
#include "libEGL/Surface.h"
namespace egl
{
class Display
{
public:
~Display();
bool initialize();
void terminate();
static egl::Display *getDisplay(EGLNativeDisplayType displayId);
bool getConfigs(EGLConfig *configs, const EGLint *attribList, EGLint configSize, EGLint *numConfig);
bool getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value);
EGLSurface createWindowSurface(HWND window, EGLConfig config, const EGLint *attribList);
EGLSurface createOffscreenSurface(EGLConfig config, HANDLE shareHandle, const EGLint *attribList);
EGLContext createContext(EGLConfig configHandle, const gl::Context *shareContext, bool notifyResets, bool robustAccess);
void destroySurface(egl::Surface *surface);
void destroyContext(gl::Context *context);
bool isInitialized() const;
bool isValidConfig(EGLConfig config);
bool isValidContext(gl::Context *context);
bool isValidSurface(egl::Surface *surface);
bool hasExistingWindowSurface(HWND window);
rx::Renderer *getRenderer() { return mRenderer; };
virtual void notifyDeviceLost();
const char *getExtensionString() const;
private:
DISALLOW_COPY_AND_ASSIGN(Display);
Display(EGLNativeDisplayType displayId, HDC deviceContext, bool software);
bool restoreLostDevice();
EGLNativeDisplayType mDisplayId;
const HDC mDc;
bool mSoftwareDevice;
typedef std::set<Surface*> SurfaceSet;
SurfaceSet mSurfaceSet;
ConfigSet mConfigSet;
typedef std::set<gl::Context*> ContextSet;
ContextSet mContextSet;
rx::Renderer *mRenderer;
void initExtensionString();
std::string mExtensionString;
};
}
#endif // LIBEGL_DISPLAY_H_