Forge
defines.h
Go to the documentation of this file.
1/*******************************************************
2 * Copyright (c) 2015-2019, ArrayFire
3 * All rights reserved.
4 *
5 * This file is distributed under 3-clause BSD license.
6 * The complete license agreement can be obtained at:
7 * http://arrayfire.com/licenses/BSD-3-Clause
8 ********************************************************/
9
10#pragma once
11
12#ifdef OS_WIN
13 // http://msdn.microsoft.com/en-us/library/b0084kay(v=VS.80).aspx
14 // http://msdn.microsoft.com/en-us/library/3y1sfaz2%28v=VS.80%29.aspx
15 #ifdef FGDLL // libfg
16 #define FGAPI __declspec(dllexport)
17 #else
18 #define FGAPI __declspec(dllimport)
19 #endif
20
21 #ifndef __cplusplus
22 #define false 0
23 #define true 1
24 #endif
25
26 #define FG_STATIC_ static
27#else
28 #define FGAPI __attribute__((visibility("default")))
29 #include <stdbool.h>
30 #define FG_STATIC_
31#endif
32
33#include <fg/version.h>
34#ifndef FG_API_VERSION
35#define FG_API_VERSION FG_API_VERSION_CURRENT
36#endif
37
38#include <cstdlib>
39
40typedef void* fg_window;
41typedef void* fg_font;
42typedef void* fg_chart;
43typedef void* fg_image;
44typedef void* fg_histogram;
45typedef void* fg_plot;
46typedef void* fg_surface;
47typedef void* fg_vector_field;
48
49typedef enum {
51 /*
52 * Arguement related error codes that are
53 * generated when invalid arguments are
54 * provided to any function. All these
55 * codes match the following pattern
56 * '1***'
57 * */
58 FG_ERR_SIZE = 1001,
61 /*
62 * OpenGL related error codes
63 * match the following pattern
64 * '2***'
65 * */
67 /*
68 * FreeType related error codes
69 * match the following pattern
70 * '3***'
71 * */
73 /*
74 * File IO related error codes
75 * match the following pattern
76 * '4***'
77 * */
79 /*
80 * Unsupported configurations
81 * and other similar error codes
82 * match the following pattern
83 * '5***'
84 * */
87 /*
88 * Font config related error codes
89 * '6**'
90 * */
92 /*
93 * FreeImage errors
94 */
98 /*
99 * other error codes
100 * match the following pattern
101 * '9**'
102 * */
105 FG_ERR_UNKNOWN = 9003
107
108typedef enum {
110 FG_RG = 200,
111 FG_RGB = 300,
112 FG_BGR = 301,
113 FG_RGBA = 400,
114 FG_BGRA = 401
116
117typedef enum {
119 FG_CHART_3D = 3
121
125typedef enum {
138
139typedef enum {
140 FG_RED = 0xFF0000FF,
141 FG_GREEN = 0x00FF00FF,
142 FG_BLUE = 0x0000FFFF,
143 FG_YELLOW = 0xFFFF00FF,
144 FG_CYAN = 0x00FFFFFF,
145 FG_MAGENTA = 0xFF00FFFF,
146 FG_WHITE = 0xFFFFFFFF,
147 FG_BLACK = 0x000000FF
149
150typedef enum {
157 FG_UINT16 = 6
159
160typedef enum {
163 FG_PLOT_SURFACE = 2
165
166typedef enum {
174 FG_MARKER_STAR = 7
176
177#ifdef __cplusplus
178namespace forge
179{
187
188 typedef enum {
196 } dtype;
197}
198#endif
void * fg_chart
Definition: defines.h:42
fg_channel_format
Definition: defines.h:108
@ FG_RG
Three(Red, Green & Blue) channels.
Definition: defines.h:110
@ FG_RGBA
Four(Red, Green, Blue & Alpha) channels.
Definition: defines.h:113
@ FG_BGRA
Four(Red, Green, Blue & Alpha) channels.
Definition: defines.h:114
@ FG_BGR
Three(Red, Green & Blue) channels.
Definition: defines.h:112
@ FG_GRAYSCALE
Single channel.
Definition: defines.h:109
@ FG_RGB
Three(Red, Green & Blue) channels.
Definition: defines.h:111
fg_plot_type
Definition: defines.h:160
@ FG_PLOT_SCATTER
Scatter plot.
Definition: defines.h:162
@ FG_PLOT_SURFACE
Surface plot.
Definition: defines.h:163
@ FG_PLOT_LINE
Line plot.
Definition: defines.h:161
fg_color_map
Color maps.
Definition: defines.h:125
@ FG_COLOR_MAP_MAGMA
perceptually uniform shades of black-red-white
Definition: defines.h:134
@ FG_COLOR_MAP_DEFAULT
Default [0-255] grayscale colormap.
Definition: defines.h:126
@ FG_COLOR_MAP_SPECTRUM
Visual spectrum (390nm-830nm) in sRGB colorspace.
Definition: defines.h:127
@ FG_COLOR_MAP_PLASMA
perceptually uniform shades of blue-red-yellow
Definition: defines.h:135
@ FG_COLOR_MAP_INFERNO
perceptually uniform shades of black-red-yellow
Definition: defines.h:133
@ FG_COLOR_MAP_RED
Red color map.
Definition: defines.h:129
@ FG_COLOR_MAP_VIRIDIS
perceptually uniform shades of blue-green-yellow
Definition: defines.h:136
@ FG_COLOR_MAP_BLUE
Blue color map.
Definition: defines.h:132
@ FG_COLOR_MAP_MOOD
Mood color map.
Definition: defines.h:130
@ FG_COLOR_MAP_RAINBOW
Rainbow color map.
Definition: defines.h:128
@ FG_COLOR_MAP_HEAT
Heat color map.
Definition: defines.h:131
void * fg_font
Definition: defines.h:41
fg_marker_type
Definition: defines.h:166
@ FG_MARKER_CIRCLE
Circle marker.
Definition: defines.h:169
@ FG_MARKER_NONE
No marker.
Definition: defines.h:167
@ FG_MARKER_POINT
Point marker.
Definition: defines.h:168
@ FG_MARKER_TRIANGLE
Triangle marker.
Definition: defines.h:171
@ FG_MARKER_CROSS
Cross-hair marker.
Definition: defines.h:172
@ FG_MARKER_PLUS
Plus symbol marker.
Definition: defines.h:173
@ FG_MARKER_STAR
Star symbol marker.
Definition: defines.h:174
@ FG_MARKER_SQUARE
Square marker.
Definition: defines.h:170
fg_err
Definition: defines.h:49
@ FG_ERR_NOT_SUPPORTED
Feature not supported.
Definition: defines.h:85
@ FG_ERR_INTERNAL
Internal error.
Definition: defines.h:103
@ FG_ERR_FILE_NOT_FOUND
File IO errors.
Definition: defines.h:78
@ FG_ERR_FREEIMAGE_UNKNOWN_FORMAT
Unknown format, not supported by freeimage.
Definition: defines.h:95
@ FG_ERR_RUNTIME
Runtime error.
Definition: defines.h:104
@ FG_ERR_FREETYPE_ERROR
Freetype library error.
Definition: defines.h:72
@ FG_ERR_FONTCONFIG_ERROR
Fontconfig related error.
Definition: defines.h:91
@ FG_ERR_NONE
Fuction returned successfully.
Definition: defines.h:50
@ FG_ERR_FREEIMAGE_BAD_ALLOC
freeimage memory allocation failed
Definition: defines.h:96
@ FG_ERR_NOT_CONFIGURED
Library configuration mismatch.
Definition: defines.h:86
@ FG_ERR_UNKNOWN
Unkown error.
Definition: defines.h:105
@ FG_ERR_INVALID_ARG
Invalid argument.
Definition: defines.h:60
@ FG_ERR_INVALID_TYPE
Invalid type argument.
Definition: defines.h:59
@ FG_ERR_SIZE
Invalid size argument.
Definition: defines.h:58
@ FG_ERR_GL_ERROR
OpenGL error.
Definition: defines.h:66
@ FG_ERR_FREEIMAGE_SAVE_FAILED
freeimage file save failed
Definition: defines.h:97
void * fg_plot
Definition: defines.h:45
void * fg_surface
Definition: defines.h:46
fg_dtype
Definition: defines.h:150
@ FG_FLOAT32
Float (32-bits)
Definition: defines.h:155
@ FG_INT32
Signed integer (32-bits)
Definition: defines.h:153
@ FG_INT8
Signed byte (8-bits)
Definition: defines.h:151
@ FG_UINT16
Unsigned integer (16-bits)
Definition: defines.h:157
@ FG_UINT8
Unsigned byte (8-bits)
Definition: defines.h:152
@ FG_UINT32
Unsigned integer (32-bits)
Definition: defines.h:154
@ FG_INT16
Signed integer (16-bits)
Definition: defines.h:156
void * fg_image
Definition: defines.h:43
void * fg_vector_field
Definition: defines.h:47
fg_color
Definition: defines.h:139
@ FG_WHITE
Definition: defines.h:146
@ FG_GREEN
Definition: defines.h:141
@ FG_CYAN
Definition: defines.h:144
@ FG_MAGENTA
Definition: defines.h:145
@ FG_BLACK
Definition: defines.h:147
@ FG_RED
Definition: defines.h:140
@ FG_BLUE
Definition: defines.h:142
@ FG_YELLOW
Definition: defines.h:143
void * fg_window
Definition: defines.h:40
void * fg_histogram
Definition: defines.h:44
fg_chart_type
Definition: defines.h:117
@ FG_CHART_3D
Three dimensional charts.
Definition: defines.h:119
@ FG_CHART_2D
Two dimensional charts.
Definition: defines.h:118
Definition: chart.h:305
fg_color Color
Definition: defines.h:184
fg_chart_type ChartType
Definition: defines.h:182
fg_err ErrorCode
Definition: defines.h:180
fg_marker_type MarkerType
Definition: defines.h:186
dtype
Definition: defines.h:188
@ u32
Definition: defines.h:192
@ s32
Definition: defines.h:191
@ f32
Definition: defines.h:193
@ s16
Definition: defines.h:194
@ s8
Definition: defines.h:189
@ u16
Definition: defines.h:195
@ u8
Definition: defines.h:190
fg_channel_format ChannelFormat
Definition: defines.h:181
fg_plot_type PlotType
Definition: defines.h:185
fg_color_map ColorMap
Definition: defines.h:183