//
// Copyright 2021 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.
//
// cl_loader.h:
//   Simple CL function loader.

#ifndef LIBCL_CL_LOADER_H_
#define LIBCL_CL_LOADER_H_

#include "export.h"

#ifndef CL_API_ENTRY
#    define CL_API_ENTRY ANGLE_EXPORT
#endif
#include "angle_cl.h"

// 'angle_cl.h' has to be included before this to enable CL defines
#include "CL/cl_icd.h"

ANGLE_NO_EXPORT extern cl_icd_dispatch cl_loader;

namespace angle
{
using GenericProc = void (*)();
using LoadProc    = GenericProc(CL_API_CALL *)(const char *);
ANGLE_NO_EXPORT void LoadCL(LoadProc loadProc);
}  // namespace angle

#endif  // LIBCL_CL_LOADER_H_
