#ifndef LIBANGLE_DISPLAY_H_
#define LIBANGLE_DISPLAY_H_
#include <mutex>
#include <vector>
#include "common/SimpleMutex.h"
#include "common/WorkerThread.h"
#include "common/platform.h"
#include "libANGLE/AttributeMap.h"
#include "libANGLE/BlobCache.h"
#include "libANGLE/Caps.h"
#include "libANGLE/Config.h"
#include "libANGLE/Context.h"
#include "libANGLE/Debug.h"
#include "libANGLE/Error.h"
#include "libANGLE/LoggingAnnotator.h"
#include "libANGLE/MemoryProgramCache.h"
#include "libANGLE/MemoryShaderCache.h"
#include "libANGLE/Observer.h"
#include "libANGLE/ShareGroup.h"
#include "libANGLE/Version.h"
#include "platform/Feature.h"
#include "platform/autogen/FrontendFeatures_autogen.h"
#if !defined(ANGLE_USE_DISPLAY_PREPARE_FOR_CALL)
# if ANGLE_PLATFORM_APPLE
#define ANGLE_USE_DISPLAY_PREPARE_FOR_CALL …
# else
#define ANGLE_USE_DISPLAY_PREPARE_FOR_CALL …
# endif
#endif
namespace angle
{
class FrameCaptureShared;
}
namespace gl
{
class Context;
class TextureManager;
class SemaphoreManager;
}
namespace rx
{
class DisplayImpl;
class EGLImplFactory;
}
namespace egl
{
class Device;
class Image;
class Stream;
class Surface;
class Sync;
class Thread;
SurfaceMap;
ThreadSet;
struct DisplayState final : private angle::NonCopyable
{ … };
constexpr EGLAttrib kProgramCacheSizeAbsoluteMax = …;
ImageMap;
StreamSet;
SyncMap;
class Display final : public LabeledObject,
public angle::ObserverInterface,
public angle::NonCopyable
{ … };
}
#endif