Hash :
79a2f7e4
Author :
Date :
2023-04-06T10:42:19
EAGL: Remove the impl preprocessor guards Adhere to the project formatting: - Remove #if preprocessor guards from the EAGL implementation. - Order the includes as in style guide - Use include / import consistently - Move GLES_SILENCE_DEPRECIATION into .gn, similar to CGL - Remove or add platform.h include based on whether the file itself actually the platform.h defined macros Simplifies the nested preprocessor macros. Makes it simpler to further fix the preprocessor use. WebKit should instead have a non-ANGLE .mm file #importing the implementations with the proper include guards. Bug: angleproject:8121 Change-Id: I775bedd048fe3382f873abffb693f130f6104c5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404158 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Dan Glastonbury <djg@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
//
// Copyright 2020 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.
//
// DisplayEAGL.h: EAGL implementation of egl::Display
#ifndef LIBANGLE_RENDERER_GL_EAGL_DISPLAYEAGL_H_
#define LIBANGLE_RENDERER_GL_EAGL_DISPLAYEAGL_H_
#include <unordered_set>
#include "libANGLE/renderer/gl/DisplayGL.h"
#ifdef __OBJC__
@class EAGLContext;
typedef EAGLContext *EAGLContextObj;
#else
typedef void *EAGLContextObj;
#endif
namespace rx
{
class WorkerContext;
class DisplayEAGL : public DisplayGL
{
public:
DisplayEAGL(const egl::DisplayState &state);
~DisplayEAGL() override;
egl::Error initialize(egl::Display *display) override;
void terminate() override;
egl::Error prepareForCall() override;
egl::Error releaseThread() override;
SurfaceImpl *createWindowSurface(const egl::SurfaceState &state,
EGLNativeWindowType window,
const egl::AttributeMap &attribs) override;
SurfaceImpl *createPbufferSurface(const egl::SurfaceState &state,
const egl::AttributeMap &attribs) override;
SurfaceImpl *createPbufferFromClientBuffer(const egl::SurfaceState &state,
EGLenum buftype,
EGLClientBuffer clientBuffer,
const egl::AttributeMap &attribs) override;
SurfaceImpl *createPixmapSurface(const egl::SurfaceState &state,
NativePixmapType nativePixmap,
const egl::AttributeMap &attribs) override;
ContextImpl *createContext(const gl::State &state,
gl::ErrorSet *errorSet,
const egl::Config *configuration,
const gl::Context *shareContext,
const egl::AttributeMap &attribs) override;
egl::ConfigSet generateConfigs() override;
bool testDeviceLost() override;
egl::Error restoreLostDevice(const egl::Display *display) override;
bool isValidNativeWindow(EGLNativeWindowType window) const override;
egl::Error validateClientBuffer(const egl::Config *configuration,
EGLenum buftype,
EGLClientBuffer clientBuffer,
const egl::AttributeMap &attribs) const override;
DeviceImpl *createDevice() override;
egl::Error waitClient(const gl::Context *context) override;
egl::Error waitNative(const gl::Context *context, EGLint engine) override;
gl::Version getMaxSupportedESVersion() const override;
EAGLContextObj getEAGLContext() const;
WorkerContext *createWorkerContext(std::string *infoLog);
void initializeFrontendFeatures(angle::FrontendFeatures *features) const override;
void populateFeatureList(angle::FeatureList *features) override;
RendererGL *getRenderer() const override;
private:
egl::Error makeCurrentSurfaceless(gl::Context *context) override;
void generateExtensions(egl::DisplayExtensions *outExtensions) const override;
void generateCaps(egl::Caps *outCaps) const override;
std::shared_ptr<RendererGL> mRenderer;
egl::Display *mEGLDisplay;
EAGLContextObj mContext;
std::unordered_set<uint64_t> mThreadsWithContextCurrent;
bool mDeviceContextIsVolatile = false;
};
} // namespace rx
#endif // LIBANGLE_RENDERER_GL_EAGL_DISPLAYEAGL_H_