Export variables with gdextension
Signed-off-by: somebody_master <somebody_master@somebodyserver.mooo.com>
This commit is contained in:
parent
78c4323b8f
commit
f1a0aaccd7
2
Test.gd
2
Test.gd
@ -2,7 +2,7 @@ extends Test
|
|||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
start_test();
|
pass
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _process(_delta: float) -> void:
|
func _process(_delta: float) -> void:
|
||||||
|
@ -1,17 +1,37 @@
|
|||||||
#ifndef TEST_HPP
|
#ifndef TEST_HPP
|
||||||
#define TEST_HPP
|
#define TEST_HPP
|
||||||
|
|
||||||
|
#include <godot_cpp/classes/mesh_instance3d.hpp>
|
||||||
#include <godot_cpp/classes/node3d.hpp>
|
#include <godot_cpp/classes/node3d.hpp>
|
||||||
|
|
||||||
|
#include <godot_cpp/classes/texture2d.hpp>
|
||||||
|
|
||||||
using namespace godot;
|
using namespace godot;
|
||||||
|
|
||||||
class Test : public Node3D {
|
class Test : public Node3D {
|
||||||
GDCLASS(Test, Node3D);
|
GDCLASS(Test, Node3D);
|
||||||
|
|
||||||
public:
|
|
||||||
void start_test();
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
|
||||||
|
private:
|
||||||
|
int i_value = 0;
|
||||||
|
float f_value = 0.0;
|
||||||
|
String s_value = "Hello";
|
||||||
|
Ref<Texture2D> tex_value;
|
||||||
|
|
||||||
|
public:
|
||||||
|
int get_i_value();
|
||||||
|
void set_i_value(int input);
|
||||||
|
|
||||||
|
float get_f_value();
|
||||||
|
void set_f_value(float input);
|
||||||
|
|
||||||
|
String get_s_value();
|
||||||
|
void set_s_value(String s);
|
||||||
|
|
||||||
|
Ref<Texture2D> get_tex_value();
|
||||||
|
void set_tex_value(Ref<Texture2D> tex);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -5,22 +5,52 @@
|
|||||||
|
|
||||||
#include <godot_cpp/classes/image_texture.hpp>
|
#include <godot_cpp/classes/image_texture.hpp>
|
||||||
|
|
||||||
void Test::start_test() {
|
|
||||||
Ref<ImageTexture> tex(memnew(ImageTexture));
|
|
||||||
|
|
||||||
auto format = tex->get_format();
|
|
||||||
UtilityFunctions::print(tex->get_reference_count());
|
|
||||||
|
|
||||||
Ref<ImageTexture> tex2 = tex;
|
|
||||||
UtilityFunctions::print(tex->get_reference_count());
|
|
||||||
|
|
||||||
tex2.unref();
|
|
||||||
UtilityFunctions::print(tex->get_reference_count());
|
|
||||||
|
|
||||||
tex.unref();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Test::_bind_methods() {
|
void Test::_bind_methods() {
|
||||||
ClassDB:
|
ClassDB::bind_method(D_METHOD("get_i_value"), &Test::get_i_value);
|
||||||
ClassDB::bind_method(D_METHOD("start_test"), &Test::start_test);
|
ClassDB::bind_method(D_METHOD("set_i_value", "i_val"), &Test::set_i_value);
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "i_value"), "set_i_value", "get_i_value");
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("get_f_value"), &Test::get_f_value);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_f_value", "f_val"), &Test::set_f_value);
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "f_value"), "set_f_value", "get_f_value");
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("get_s_value"), &Test::get_s_value);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_s_value", "s_val"), &Test::set_s_value);
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "s_value"), "set_s_value", "get_s_value");
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("get_tex_value"), &Test::get_tex_value);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_tex_value", "tex"), &Test::set_tex_value);
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "tex_value", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_tex_value", "get_tex_value");
|
||||||
|
}
|
||||||
|
|
||||||
|
int Test::get_i_value() {
|
||||||
|
return i_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Test::set_i_value(int input) {
|
||||||
|
i_value = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
float Test::get_f_value() {
|
||||||
|
return f_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Test::set_f_value(float input) {
|
||||||
|
f_value = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
String Test::get_s_value() {
|
||||||
|
return s_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Test::set_s_value(String s) {
|
||||||
|
s_value = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ref<Texture2D> Test::get_tex_value() {
|
||||||
|
return tex_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Test::set_tex_value(Ref<Texture2D> tex) {
|
||||||
|
tex_value = tex;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user