1 // Copyright 2019-2021 Intel Corporation 2 // SPDX-License-Identifier: Apache-2.0 3 4 #pragma once 5 6 #include "common.h" 7 8 struct VKLDeviceInternal; 9 typedef struct VKLDeviceInternal *VKLDevice; 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 OPENVKL_INTERFACE VKLDevice vklNewDevice(const char *deviceName); 16 17 typedef void (*VKLLogCallback)(void *userData, const char *message); 18 OPENVKL_INTERFACE void vklDeviceSetLogCallback(VKLDevice device, 19 VKLLogCallback callback, 20 void *userData); 21 22 typedef void (*VKLErrorCallback)(void *userData, 23 VKLError error, 24 const char *message); 25 OPENVKL_INTERFACE void vklDeviceSetErrorCallback(VKLDevice device, 26 VKLErrorCallback callback, 27 void *userData); 28 29 OPENVKL_INTERFACE void vklDeviceSetInt(VKLDevice device, 30 const char *name, 31 int x); 32 33 OPENVKL_INTERFACE void vklDeviceSetString(VKLDevice device, 34 const char *name, 35 const char *s); 36 37 OPENVKL_INTERFACE void vklCommitDevice(VKLDevice device); 38 39 OPENVKL_INTERFACE VKLError vklDeviceGetLastErrorCode(VKLDevice device); 40 41 OPENVKL_INTERFACE const char *vklDeviceGetLastErrorMsg(VKLDevice device); 42 43 OPENVKL_INTERFACE int vklGetNativeSIMDWidth(VKLDevice device); 44 45 OPENVKL_INTERFACE void vklCommit(VKLObject object); 46 47 OPENVKL_INTERFACE void vklRelease(VKLObject object); 48 49 OPENVKL_INTERFACE void vklReleaseDevice(VKLDevice device); 50 51 #ifdef __cplusplus 52 } // extern "C" 53 #endif 54