Merge pull request #2274 from MarianoGnu/master
Improve Visual Shader Editor responsiveness
This commit is contained in:
commit
1db523d0bb
17 changed files with 2429 additions and 1490 deletions
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
enum PropertyHint {
|
||||
PROPERTY_HINT_NONE, ///< no hint provided.
|
||||
PROPERTY_HINT_RANGE, ///< hint_text = "min,max,step"
|
||||
PROPERTY_HINT_RANGE, ///< hint_text = "min,max,step,slider; //slider is optional"
|
||||
PROPERTY_HINT_EXP_RANGE, ///< hint_text = "min,max,step", exponential edit
|
||||
PROPERTY_HINT_ENUM, ///< hint_text= "val1,val2,val3,etc"
|
||||
PROPERTY_HINT_EXP_EASING, /// exponential easing funciton (Math::ease)
|
||||
|
|
@ -58,12 +58,12 @@ enum PropertyHint {
|
|||
PROPERTY_HINT_KEY_ACCEL, ///< hint_text= "length" (as integer)
|
||||
PROPERTY_HINT_FLAGS, ///< hint_text= "flag1,flag2,etc" (as bit flags)
|
||||
PROPERTY_HINT_ALL_FLAGS,
|
||||
PROPERTY_HINT_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
|
||||
PROPERTY_HINT_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
|
||||
PROPERTY_HINT_DIR, ///< a directort path must be passed
|
||||
PROPERTY_HINT_GLOBAL_FILE, ///< a file path must be passed, hint_text (optionally) is a filter "*.png,*.wav,*.doc,"
|
||||
PROPERTY_HINT_GLOBAL_DIR, ///< a directort path must be passed
|
||||
PROPERTY_HINT_RESOURCE_TYPE, ///< a resource object type
|
||||
PROPERTY_HINT_MULTILINE_TEXT, ///< used for string properties that can contain multiple lines
|
||||
PROPERTY_HINT_MULTILINE_TEXT, ///< used for string properties that can contain multiple lines
|
||||
PROPERTY_HINT_COLOR_NO_ALPHA, ///< used for ignoring alpha component when editing a color
|
||||
PROPERTY_HINT_IMAGE_COMPRESS_LOSSY,
|
||||
PROPERTY_HINT_IMAGE_COMPRESS_LOSSLESS,
|
||||
|
|
@ -71,7 +71,7 @@ enum PropertyHint {
|
|||
};
|
||||
|
||||
enum PropertyUsageFlags {
|
||||
|
||||
|
||||
PROPERTY_USAGE_STORAGE=1,
|
||||
PROPERTY_USAGE_EDITOR=2,
|
||||
PROPERTY_USAGE_NETWORK=4,
|
||||
|
|
@ -102,15 +102,15 @@ enum PropertyUsageFlags {
|
|||
#define ADD_PROPERTYINO( m_property, m_setter, m_getter, m_index ) ObjectTypeDB::add_property( get_type_static(), (m_property).added_usage(PROPERTY_USAGE_STORE_IF_NONONE), m_setter, m_getter, m_index )
|
||||
|
||||
struct PropertyInfo {
|
||||
|
||||
Variant::Type type;
|
||||
|
||||
Variant::Type type;
|
||||
String name;
|
||||
PropertyHint hint;
|
||||
String hint_string;
|
||||
String hint_string;
|
||||
uint32_t usage;
|
||||
|
||||
_FORCE_INLINE_ PropertyInfo added_usage(int p_fl) const { PropertyInfo pi=*this; pi.usage|=p_fl; return pi; }
|
||||
|
||||
|
||||
PropertyInfo() { type=Variant::NIL; hint=PROPERTY_HINT_NONE; usage = PROPERTY_USAGE_DEFAULT; }
|
||||
PropertyInfo( Variant::Type p_type, const String p_name, PropertyHint p_hint=PROPERTY_HINT_NONE, const String& p_hint_string="",uint32_t p_usage=PROPERTY_USAGE_DEFAULT) {
|
||||
type=p_type; name=p_name; hint=p_hint; hint_string=p_hint_string; usage=p_usage;
|
||||
|
|
@ -125,23 +125,23 @@ struct PropertyInfo {
|
|||
Array convert_property_list(const List<PropertyInfo> * p_list);
|
||||
|
||||
struct MethodInfo {
|
||||
|
||||
|
||||
String name;
|
||||
List<PropertyInfo> arguments;
|
||||
Vector<Variant> default_arguments;
|
||||
PropertyInfo return_val;
|
||||
uint32_t flags;
|
||||
int id;
|
||||
|
||||
|
||||
inline bool operator<(const MethodInfo& p_method) const { return id==p_method.id?(name < p_method.name):(id<p_method.id); }
|
||||
|
||||
|
||||
MethodInfo();
|
||||
MethodInfo(const String& p_name);
|
||||
MethodInfo(const String& p_name, const PropertyInfo& p_param1);
|
||||
MethodInfo(const String& p_name, const PropertyInfo& p_param1,const PropertyInfo& p_param2);
|
||||
MethodInfo(const String& p_name, const PropertyInfo& p_param1,const PropertyInfo& p_param2,const PropertyInfo& p_param3);
|
||||
MethodInfo(const String& p_name, const PropertyInfo& p_param1,const PropertyInfo& p_param2,const PropertyInfo& p_param3,const PropertyInfo& p_param4);
|
||||
MethodInfo(const String& p_name, const PropertyInfo& p_param1,const PropertyInfo& p_param2,const PropertyInfo& p_param3,const PropertyInfo& p_param4,const PropertyInfo& p_param5);
|
||||
MethodInfo(const String& p_name, const PropertyInfo& p_param1,const PropertyInfo& p_param2,const PropertyInfo& p_param3,const PropertyInfo& p_param4,const PropertyInfo& p_param5);
|
||||
MethodInfo(Variant::Type ret);
|
||||
MethodInfo(Variant::Type ret,const String& p_name);
|
||||
MethodInfo(Variant::Type ret,const String& p_name, const PropertyInfo& p_param1);
|
||||
|
|
@ -158,7 +158,7 @@ struct MethodInfo {
|
|||
//return NULL;
|
||||
|
||||
/*
|
||||
the following is an uncomprehensible blob of hacks and workarounds to compensate for many of the fallencies in C++. As a plus, this macro pretty much alone defines the object model.
|
||||
the following is an uncomprehensible blob of hacks and workarounds to compensate for many of the fallencies in C++. As a plus, this macro pretty much alone defines the object model.
|
||||
*/
|
||||
|
||||
#define REVERSE_GET_PROPERTY_LIST \
|
||||
|
|
@ -314,7 +314,7 @@ private:
|
|||
class ScriptInstance;
|
||||
typedef uint32_t ObjectID;
|
||||
|
||||
class Object {
|
||||
class Object {
|
||||
public:
|
||||
|
||||
enum ConnectFlags {
|
||||
|
|
@ -404,7 +404,7 @@ friend void postinitialize_handler(Object*);
|
|||
|
||||
void property_list_changed_notify();
|
||||
|
||||
protected:
|
||||
protected:
|
||||
|
||||
virtual bool _use_builtin_script() const { return false; }
|
||||
virtual void _initialize_typev() { initialize_type(); }
|
||||
|
|
@ -412,14 +412,14 @@ protected:
|
|||
virtual bool _getv(const StringName& p_name,Variant &r_property) const { return false; };
|
||||
virtual void _get_property_listv(List<PropertyInfo> *p_list,bool p_reversed) const {};
|
||||
virtual void _notificationv(int p_notification,bool p_reversed) {};
|
||||
|
||||
|
||||
static String _get_category() { return ""; }
|
||||
static void _bind_methods();
|
||||
bool _set(const StringName& p_name,const Variant &p_property) { return false; };
|
||||
bool _get(const StringName& p_name,Variant &r_property) const { return false; };
|
||||
void _get_property_list(List<PropertyInfo> *p_list) const {};
|
||||
void _notification(int p_notification) {};
|
||||
|
||||
|
||||
_FORCE_INLINE_ static void (*_get_bind_methods())() {
|
||||
return &Object::_bind_methods;
|
||||
}
|
||||
|
|
@ -431,13 +431,13 @@ protected:
|
|||
}
|
||||
_FORCE_INLINE_ void (Object::* (_get_get_property_list() const))(List<PropertyInfo> *p_list) const{
|
||||
return &Object::_get_property_list;
|
||||
}
|
||||
}
|
||||
_FORCE_INLINE_ void (Object::* (_get_notification() const))(int){
|
||||
return &Object::_notification;
|
||||
}
|
||||
}
|
||||
static void get_valid_parents_static(List<String> *p_parents);
|
||||
static void _get_valid_parents_static(List<String> *p_parents);
|
||||
|
||||
|
||||
|
||||
void cancel_delete();
|
||||
|
||||
|
|
@ -485,7 +485,7 @@ public:
|
|||
|
||||
void add_change_receptor( Object *p_receptor );
|
||||
void remove_change_receptor( Object *p_receptor );
|
||||
|
||||
|
||||
template<class T>
|
||||
T *cast_to() {
|
||||
|
||||
|
|
@ -500,7 +500,7 @@ public:
|
|||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
template<class T>
|
||||
const T *cast_to() const {
|
||||
|
||||
|
|
@ -517,11 +517,11 @@ public:
|
|||
}
|
||||
|
||||
enum {
|
||||
|
||||
|
||||
NOTIFICATION_POSTINITIALIZE=0,
|
||||
NOTIFICATION_PREDELETE=1
|
||||
};
|
||||
|
||||
|
||||
/* TYPE API */
|
||||
static void get_inheritance_list_static(List<String>* p_inheritance_list) { p_inheritance_list->push_back("Object"); }
|
||||
|
||||
|
|
@ -545,7 +545,7 @@ public:
|
|||
return *_type_ptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* IAPI */
|
||||
// void set(const String& p_name, const Variant& p_value);
|
||||
// Variant get(const String& p_name) const;
|
||||
|
|
@ -554,7 +554,7 @@ public:
|
|||
Variant get(const StringName& p_name, bool *r_valid=NULL) const;
|
||||
|
||||
void get_property_list(List<PropertyInfo> *p_list,bool p_reversed=false) const;
|
||||
|
||||
|
||||
bool has_method(const StringName& p_method) const;
|
||||
void get_method_list(List<MethodInfo> *p_list) const;
|
||||
Variant callv(const StringName& p_method,const Array& p_args);
|
||||
|
|
@ -564,14 +564,14 @@ public:
|
|||
Variant call(const StringName& p_name, VARIANT_ARG_LIST); // C++ helper
|
||||
void call_multilevel(const StringName& p_name, VARIANT_ARG_LIST); // C++ helper
|
||||
|
||||
void notification(int p_notification,bool p_reversed=false);
|
||||
void notification(int p_notification,bool p_reversed=false);
|
||||
|
||||
//used mainly by script, get and set all INCLUDING string
|
||||
virtual Variant getvar(const Variant& p_key, bool *r_valid=NULL) const;
|
||||
virtual void setvar(const Variant& p_key, const Variant& p_value,bool *r_valid=NULL);
|
||||
|
||||
/* SCRIPT */
|
||||
|
||||
|
||||
void set_script(const RefPtr& p_script);
|
||||
RefPtr get_script() const;
|
||||
|
||||
|
|
@ -614,14 +614,14 @@ public:
|
|||
StringName tr(const StringName& p_message) const; //translate message (alternative)
|
||||
|
||||
bool _is_queued_for_deletion; // set to true by SceneTree::queue_delete()
|
||||
bool is_queued_for_deletion() const;
|
||||
bool is_queued_for_deletion() const;
|
||||
|
||||
_FORCE_INLINE_ void set_message_translation(bool p_enable) { _can_translate=p_enable; }
|
||||
_FORCE_INLINE_ bool can_translate_messages() const { return _can_translate; }
|
||||
|
||||
void clear_internal_resource_paths();
|
||||
|
||||
Object();
|
||||
Object();
|
||||
virtual ~Object();
|
||||
|
||||
};
|
||||
|
|
@ -649,13 +649,13 @@ class ObjectDB {
|
|||
static HashMap<Object*,ObjectID,ObjectPtrHash> instance_checks;
|
||||
|
||||
static uint32_t instance_counter;
|
||||
friend class Object;
|
||||
friend class Object;
|
||||
friend void unregister_core_types();
|
||||
|
||||
static void cleanup();
|
||||
static uint32_t add_instance(Object *p_object);
|
||||
static void remove_instance(Object *p_object);
|
||||
public:
|
||||
public:
|
||||
|
||||
typedef void (*DebugFunc)(Object *p_obj);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue