62 lines
1.3 KiB
Modula-2
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;
|
|
};
|
|
};
|