Files
kotlin-fork/kotlin-native/backend.native/tests/interop/cpp/skiaSignature.def
T
2021-07-30 12:54:51 +03:00

62 lines
1.3 KiB
Modula-2

language = C++
compilerOpts = -std=c++17
plugin = org.jetbrains.kotlin.native.interop.skia
package = org.jetbrains.skiko.skia.native
headers = stdio.h
---
// TODO: this one checks the syntactic aspect for now.
// To be updated for proper c++ destructor and
// kotlin garbage collection interaction.
template <typename T> class sk_sp {
public:
sk_sp(T* obj) : data(obj) {}
T* release() {
return data;
}
private:
T* data;
};
template <typename T> sk_sp<T> sk_ref_sp(T* obj) {
return sk_sp<T>(obj);
}
class SkData {
public:
SkData() {
printf("SkData()\n");
};
SkData(int val) {
printf("SkData(%d)\n", val);
data = val + 100;
};
SkData(SkData* obj) {
printf("SkData(SkData*)\n");
data = obj->data + 200;
};
SkData(SkData* obj, SkData* obj2) {
printf("SkData(SkData*, SkData*)\n");
data = obj->data + obj2->data + 300;
};
SkData* foo(SkData* obj, SkData* obj2) {
return new SkData(obj->data + obj2->data + data);
};
int data;
void setData(int val) {
data = val;
};
int checkData(int val) {
return val == data;
};
};