1*8975f5c5SAndroid Build Coastguard Worker// 2*8975f5c5SAndroid Build Coastguard Worker// Copyright 2021 The ANGLE Project Authors. All rights reserved. 3*8975f5c5SAndroid Build Coastguard Worker// Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker// found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker// 6*8975f5c5SAndroid Build Coastguard Worker 7*8975f5c5SAndroid Build Coastguard Worker// DeviceMtl: Metal implementation of egl::Device 8*8975f5c5SAndroid Build Coastguard Worker 9*8975f5c5SAndroid Build Coastguard Worker#include "libANGLE/renderer/metal/DeviceMtl.h" 10*8975f5c5SAndroid Build Coastguard Worker 11*8975f5c5SAndroid Build Coastguard Worker#include "libANGLE/Device.h" 12*8975f5c5SAndroid Build Coastguard Worker#include "libANGLE/Display.h" 13*8975f5c5SAndroid Build Coastguard Worker#include "libANGLE/renderer/metal/DisplayMtl.h" 14*8975f5c5SAndroid Build Coastguard Worker 15*8975f5c5SAndroid Build Coastguard Worker#include <EGL/eglext.h> 16*8975f5c5SAndroid Build Coastguard Workernamespace rx 17*8975f5c5SAndroid Build Coastguard Worker{ 18*8975f5c5SAndroid Build Coastguard Worker 19*8975f5c5SAndroid Build Coastguard Worker// DeviceMtl implementation, implements DeviceImpl 20*8975f5c5SAndroid Build Coastguard WorkerDeviceMtl::DeviceMtl() {} 21*8975f5c5SAndroid Build Coastguard WorkerDeviceMtl::~DeviceMtl() {} 22*8975f5c5SAndroid Build Coastguard Worker 23*8975f5c5SAndroid Build Coastguard Workeregl::Error DeviceMtl::initialize() 24*8975f5c5SAndroid Build Coastguard Worker{ 25*8975f5c5SAndroid Build Coastguard Worker return egl::NoError(); 26*8975f5c5SAndroid Build Coastguard Worker} 27*8975f5c5SAndroid Build Coastguard Worker 28*8975f5c5SAndroid Build Coastguard Workeregl::Error DeviceMtl::getAttribute(const egl::Display *display, EGLint attribute, void **outValue) 29*8975f5c5SAndroid Build Coastguard Worker{ 30*8975f5c5SAndroid Build Coastguard Worker DisplayMtl *displayImpl = mtl::GetImpl(display); 31*8975f5c5SAndroid Build Coastguard Worker 32*8975f5c5SAndroid Build Coastguard Worker switch (attribute) 33*8975f5c5SAndroid Build Coastguard Worker { 34*8975f5c5SAndroid Build Coastguard Worker case EGL_METAL_DEVICE_ANGLE: 35*8975f5c5SAndroid Build Coastguard Worker *outValue = displayImpl->getMetalDevice(); 36*8975f5c5SAndroid Build Coastguard Worker break; 37*8975f5c5SAndroid Build Coastguard Worker default: 38*8975f5c5SAndroid Build Coastguard Worker return egl::EglBadAttribute(); 39*8975f5c5SAndroid Build Coastguard Worker } 40*8975f5c5SAndroid Build Coastguard Worker 41*8975f5c5SAndroid Build Coastguard Worker return egl::NoError(); 42*8975f5c5SAndroid Build Coastguard Worker} 43*8975f5c5SAndroid Build Coastguard Worker 44*8975f5c5SAndroid Build Coastguard Workervoid DeviceMtl::generateExtensions(egl::DeviceExtensions *outExtensions) const 45*8975f5c5SAndroid Build Coastguard Worker{ 46*8975f5c5SAndroid Build Coastguard Worker outExtensions->deviceMetal = true; 47*8975f5c5SAndroid Build Coastguard Worker} 48*8975f5c5SAndroid Build Coastguard Worker 49*8975f5c5SAndroid Build Coastguard Worker} // namespace rx 50