Hash :
ccd9a43b
        
        Author :
  
        
        Date :
2024-05-22T11:15:39
        
      
Split EGL_ANGLE_device_d3d into D3D9 and D3D11 versions. Add EGL_ANGLE_device_d3d9 and EGL_ANGLE_device_d3d11 which make it possible to know what type of device can be queried ahead of time without generating EGL errors. Refactor the DeviceD3D class into Device9 and Device11. Remove the getType method now that it's not needed for internal validation. Keep EGL_ANGLE_device_d3d for backwards compatibility. Bug: angleproject:342096132 Change-Id: Ib950abad58e46a5be269891ea7afd0cb8534cbe8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5559163 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@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
//
// Copyright 2015 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.
//
// DeviceImpl.h: Implementation methods of egl::Device
#ifndef LIBANGLE_RENDERER_DEVICEIMPL_H_
#define LIBANGLE_RENDERER_DEVICEIMPL_H_
#include "common/angleutils.h"
#include "libANGLE/Caps.h"
#include "libANGLE/Error.h"
namespace egl
{
class Display;
}
namespace rx
{
class DisplayImpl;
class DeviceImpl : angle::NonCopyable
{
  public:
    DeviceImpl();
    virtual ~DeviceImpl();
    virtual egl::Error initialize() = 0;
    virtual egl::Error getAttribute(const egl::Display *display,
                                    EGLint attribute,
                                    void **outValue)                            = 0;
    virtual void generateExtensions(egl::DeviceExtensions *outExtensions) const = 0;
    virtual const std::string getDeviceString(EGLint name);
};
}  // namespace rx
#endif  // LIBANGLE_RENDERER_DEVICEIMPL_H_