Blink API

BlinkC.h

Go to the documentation of this file.
00001 // Copyright (c) 2013 The Foundry Visionmongers Ltd.  All Rights Reserved.
00002 
00007 #ifndef Blink_Library_BlinkC_h
00008 #define Blink_Library_BlinkC_h
00009 #include "BlinkBuild.h"
00010 #include "BlinkTypes.h"
00011 #ifdef __cplusplus
00012 extern "C" {
00013 #endif
00014 
00015 #define BLINK_SUCCESS 0
00016 #define BLINK_ERROR_ERROR 1
00017 #define BLINK_ERROR_OUT_OF_MEMORY 2
00018 #define BLINK_ERROR_RUNNING_KERNEL 3
00019 #define BLINK_ERROR_PARSING_KERNEL 4
00020 #define BLINK_ERROR_COMPILING_KERNEL 5
00021 #define BLINK_ERROR_INVALID_IMAGE_SPEC 6
00022 #define BLINK_ERROR_DEVICE 7
00023 #define BLINK_ERROR_PARAMETER 8
00024 #define BLINK_ERROR_INCOMPATIBLE_IMAGES 9
00025 #define BLINK_ERROR_INVALID_PROPERTY 10
00026 
00027 #define BLINK_PROPERTY_NAME 0
00028 
00029 
00030 BLINK_SHARED_API BlinkRef Blink_Retain(BlinkRef ref);
00031 BLINK_SHARED_API void Blink_Release(BlinkRef ref);
00032 
00033 BLINK_SHARED_API const char* Blink_Error_GetUserMessage(BlinkErrorRef errorRef);
00034 BLINK_SHARED_API BlinkErrorCode Blink_Error_GetStringProperty(BlinkErrorRef errorRef, BlinkErrorProperty property, const char** string);
00035 BLINK_SHARED_API BlinkErrorCode Blink_Error_GetIntProperty(BlinkErrorRef errorRef, BlinkErrorProperty property, int* value);
00036 
00037 BLINK_SHARED_API BlinkErrorCode Blink_Device_CurrentCPUDevice(BlinkRef* pRef, BlinkErrorRef* optionalErrorDesc);
00038 BLINK_SHARED_API BlinkErrorCode Blink_Device_CurrentGPUDevice(BlinkRef* pRef, BlinkErrorRef* optionalErrorDesc);
00039 BLINK_SHARED_API BlinkErrorCode Blink_Device_DeviceWithID(BlinkRef* pRef, BlinkComputeDeviceID id, BlinkErrorRef* optionalErrorDesc);
00040 
00041 BLINK_SHARED_API BlinkErrorCode Blink_Device_Available(BlinkRef device, char* value, BlinkErrorRef* optionalErrorDesc);
00042 
00043 BLINK_SHARED_API BlinkErrorCode Blink_Device_Bind(BlinkRef* pRef, BlinkRef device, BlinkErrorRef* optionalErrorDesc);
00044 
00045 BLINK_SHARED_API BlinkErrorCode Blink_Device_GetProperty(BlinkRef device, BlinkPropertyType type, void* data, int* size, BlinkErrorRef* optionalErrorDesc);
00046 
00047 BLINK_SHARED_API BlinkErrorCode Blink_Image_CreateEmptyImage(BlinkRef* pRef, BlinkErrorRef* optionalErrorDesc);
00048 BLINK_SHARED_API BlinkErrorCode Blink_Image_CreateImage(BlinkRef* pRef, const struct BlinkImageInfo* imageInfo, BlinkRef device, BlinkErrorRef* optionalErrorDesc);
00049 BLINK_SHARED_API BlinkErrorCode Blink_Image_ImageForDeviceMemory(BlinkRef* pRef, const struct BlinkDeviceMemory* deviceMemory, const struct BlinkImageInfo* imageInfo, const struct BlinkBufferDesc* layout, BlinkRef device, BlinkErrorRef* optionalErrorDesc);
00050 
00051 BLINK_SHARED_API BlinkErrorCode Blink_Image_CopyRef(BlinkRef* pRef, BlinkRef src, BlinkErrorRef* optionalErrorDesc);
00052 BLINK_SHARED_API BlinkErrorCode Blink_Image_DistributeTo(BlinkRef* pRef, BlinkRef src, BlinkRef device, BlinkErrorRef* optionalErrorDesc);
00053 BLINK_SHARED_API BlinkErrorCode Blink_Image_MakeLike(BlinkRef* pRef, BlinkRef src, BlinkRef device, BlinkErrorRef* optionalErrorDesc);
00054 BLINK_SHARED_API BlinkErrorCode Blink_Image_Info(BlinkRef image, struct BlinkImageInfo* info, BlinkErrorRef* optionalErrorDesc);
00055 BLINK_SHARED_API BlinkErrorCode Blink_Image_Clear(BlinkRef image, BlinkErrorRef* optionalErrorDesc);
00056 BLINK_SHARED_API BlinkErrorCode Blink_Image_IsEmpty(BlinkRef image, char* result, BlinkErrorRef* optionalErrorDesc);
00057 BLINK_SHARED_API BlinkErrorCode Blink_Image_CopyFrom(BlinkRef dst, BlinkRef src, BlinkErrorRef* optionalErrorDesc);
00058 
00059 BLINK_SHARED_API BlinkErrorCode Blink_Image_CopyFromBuffer(BlinkRef dst, const void* src, const struct BlinkBufferDesc* bufferDesc, BlinkErrorRef* optionalErrorDesc);
00060 BLINK_SHARED_API BlinkErrorCode Blink_Image_CopyToBuffer(BlinkRef src, void* dst, const struct BlinkBufferDesc* bufferDesc, BlinkErrorRef* optionalErrorDesc);
00061 
00062 
00063 BLINK_SHARED_API BlinkErrorCode Blink_IKernel_Make(BlinkRef* pRef, BlinkRef programSource, BlinkErrorRef* optionalErrorDesc);
00064 BLINK_SHARED_API BlinkErrorCode Blink_IKernel_GetKernelInfo(BlinkRef ref, struct BlinkKernelInfo *kInfo, BlinkErrorRef* optionalErrorDesc);
00065 BLINK_SHARED_API BlinkErrorCode Blink_IKernel_GetNumImages(BlinkRef ref, unsigned* nImgs, BlinkErrorRef* optionalErrorDesc);
00066 BLINK_SHARED_API BlinkErrorCode Blink_IKernel_GetNumParameters(BlinkRef ref, unsigned* nParams, BlinkErrorRef* optionalErrorDesc);
00067 BLINK_SHARED_API BlinkErrorCode Blink_IKernel_GetImageInfo(BlinkRef ref, unsigned index, struct BlinkKernelImageInfo *imgInfo, BlinkErrorRef* optionalErrorDesc);
00068 BLINK_SHARED_API BlinkErrorCode Blink_IKernel_GetParameterInfo(BlinkRef ref, unsigned index, struct BlinkKernelParameterInfo *paramInfo, BlinkErrorRef* optionalErrorDesc);
00069 
00070 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_Make(BlinkRef* pRef, BlinkRef programSource, BlinkRef dev, BlinkRef* images, int nImages, BlinkCodegenFlags flags, BlinkErrorRef* optionalErrorDesc);
00071 
00072 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_SetIntParam(BlinkRef ref, const char* name, const int* values, int nValues, BlinkErrorRef* optionalErrorDesc);
00073 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_SetFloatParam(BlinkRef ref, const char* name, const float* values, int nValues, BlinkErrorRef* optionalErrorDesc);
00074 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_SetBoolParam(BlinkRef ref, const char* name, const char* values, int nValues, BlinkErrorRef* optionalErrorDesc);
00075 
00076 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_GetIntParam(BlinkRef ref, const char* name, int* values, int nValues, BlinkErrorRef* optionalErrorDesc);
00077 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_GetFloatParam(BlinkRef ref, const char* name, float* values, int nValues, BlinkErrorRef* optionalErrorDesc);
00078 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_GetBoolParam(BlinkRef ref, const char* name, char* values, int nValues, BlinkErrorRef* optionalErrorDesc);
00079 
00080 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_GetNumInputRanges(BlinkRef ref, unsigned int *count, BlinkErrorRef *optionalErrorDesc);
00081 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_GetInputRanges(BlinkRef ref, struct BlinkImageAccessDesc *accessDescs, unsigned int maxDescs, BlinkErrorRef *optionalErrorDesc);
00082 
00083 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_Iterate(BlinkRef ref, BlinkErrorRef* optionalErrorDesc);
00084 BLINK_SHARED_API BlinkErrorCode Blink_Kernel_IterateWithController(BlinkRef ref, const struct BlinkKernelIterationController* controller, BlinkErrorRef* optionalErrorDesc);
00085 
00086 BLINK_SHARED_API BlinkErrorCode Blink_ProgramSource_Make(BlinkRef* pRef, const char* source, BlinkErrorRef* optionalErrorDesc);
00087 
00088 
00089 //This function may change before release.
00090 BLINK_SHARED_API BlinkErrorCode Blink_Add_Precompiled_Kernel(const char* key,
00091                                              const void* targetCodeData,
00092                                              int targetCodeCompressedSize,
00093                                              int targetCodeUncompressedSize,
00094                                              const void* sharedLibData,
00095                                              int sharedLibCompressedSize,
00096                                              int sharedLibUncompressedSize,
00097                                              const void* execInfoData,
00098                                              int execInfoSize);
00099 
00100 
00101 #ifdef __cplusplus
00102 }
00103 #endif
00104 #endif
 All Classes Namespaces Files Functions Variables


©2017 The Foundry Visionmongers, Ltd. All Rights Reserved.
www.thefoundry.co.uk