-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathcolor.cpp
More file actions
87 lines (66 loc) · 2.75 KB
/
Copy pathcolor.cpp
File metadata and controls
87 lines (66 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <OpenImageIO/color.h>
#include "color.h"
#include "handles.h"
using oiio_go::Handle;
extern "C" {
ColorConfig* New_ColorConfig() {
return static_cast<ColorConfig*>(new OIIO::ColorConfig());
}
ColorConfig* New_ColorConfigPath(const char * filename) {
return static_cast<ColorConfig*>(new OIIO::ColorConfig(filename));
}
void deleteColorConfig(ColorConfig* c) {
delete static_cast<OIIO::ColorConfig*>(c);
}
bool supportsOpenColorIO() {
return OIIO::ColorConfig::supportsOpenColorIO();
}
bool ColorConfig_error(ColorConfig* c) {
return static_cast<OIIO::ColorConfig*>(c)->has_error();
}
const char* ColorConfig_geterror(ColorConfig* c) {
if (!ColorConfig_error(c)) {
return NULL;
}
return static_cast<OIIO::ColorConfig*>(c)->geterror().c_str();
}
int ColorConfig_getNumColorSpaces(ColorConfig* c) {
return static_cast<OIIO::ColorConfig*>(c)->getNumColorSpaces();
}
const char * ColorConfig_getColorSpaceNameByIndex(ColorConfig* c, int index) {
return static_cast<OIIO::ColorConfig*>(c)->getColorSpaceNameByIndex(index);
}
int ColorConfig_getNumLooks(ColorConfig* c) {
return static_cast<OIIO::ColorConfig*>(c)->getNumLooks();
}
const char * ColorConfig_getLookNameByIndex(ColorConfig* c, int index) {
return static_cast<OIIO::ColorConfig*>(c)->getLookNameByIndex(index);
}
int ColorConfig_getNumDisplays(ColorConfig* c) {
return static_cast<OIIO::ColorConfig*>(c)->getNumDisplays();
}
const char * ColorConfig_getDisplayNameByIndex(ColorConfig* c, int index) {
return static_cast<OIIO::ColorConfig*>(c)->getDisplayNameByIndex(index);
}
int ColorConfig_getNumViews(ColorConfig* c, const char * display) {
return static_cast<OIIO::ColorConfig*>(c)->getNumViews(display);
}
const char * ColorConfig_getViewNameByIndex(ColorConfig* c, const char * display, int index) {
return static_cast<OIIO::ColorConfig*>(c)->getViewNameByIndex(display, index);
}
const char * ColorConfig_getColorSpaceNameByRole(ColorConfig* c, const char *role) {
return static_cast<OIIO::ColorConfig*>(c)->getColorSpaceNameByRole(role);
}
void deleteColorProcessor(ColorProcessor* processor) {
// In OIIO 3.x, ColorProcessor is managed via shared_ptr (ColorProcessorHandle)
// The Handle wrapper will decrement the reference count when deleted
delete static_cast<Handle<OIIO::ColorProcessor>*>(processor);
}
ColorProcessor* ColorConfig_createColorProcessor(ColorConfig* c, const char * inputColorSpace,
const char * outputColorSpace) {
// In OIIO 3.x, createColorProcessor returns ColorProcessorHandle (shared_ptr<ColorProcessor>)
auto cp = static_cast<OIIO::ColorConfig*>(c)->createColorProcessor(inputColorSpace, outputColorSpace);
if (!cp) return nullptr;
return (ColorProcessor*) new Handle<OIIO::ColorProcessor>(cp);
}
} // extern "C"