More 3D Work

-=-=-=-=-=-

-ESM Shadow Mapping for softer and less glitchy shadows
-HDR Pipeline (convert to Linear on texture import, convert to SRGB at the end)
-Fix to xml parse bug
This commit is contained in:
Juan Linietsky
2014-06-16 10:22:26 -03:00
parent 64e83bfd14
commit 703004f830
40 changed files with 1114 additions and 116 deletions

View File

@ -1330,12 +1330,17 @@ Error GDCompiler::_parse_class(GDScript *p_script,GDScript *p_owner,const GDPars
}
path=base.get_base_dir().plus_file(path);
}
script = ResourceLoader::load(path);
if (script.is_null()) {
_set_error("Could not load base class: "+path,p_class);
return ERR_FILE_NOT_FOUND;
}
if (!script->valid) {
_set_error("Script not fully loaded (cyclic preload?): "+path,p_class);
return ERR_BUSY;
}
//print_line("EXTENDS PATH: "+path+" script is "+itos(script.is_valid())+" indices is "+itos(script->member_indices.size())+" valid? "+itos(script->valid));
if (p_class->extends_class.size()) {
@ -1438,6 +1443,9 @@ Error GDCompiler::_parse_class(GDScript *p_script,GDScript *p_owner,const GDPars
}
print_line("Script: "+p_script->get_path()+" indices: "+itos(p_script->member_indices.size()));
for(int i=0;i<p_class->variables.size();i++) {
StringName name = p_class->variables[i].identifier;

View File

@ -93,6 +93,7 @@ const char *GDFunctions::get_func_name(Function p_func) {
"load",
"inst2dict",
"dict2inst",
"hash",
"print_stack",
};
@ -863,6 +864,12 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va
r_ret = gdscr->_new(NULL,0,r_error);
} break;
case HASH: {
VALIDATE_ARG_COUNT(1);
r_ret=p_args[0]->hash();
} break;
case PRINT_STACK: {
@ -1238,6 +1245,12 @@ MethodInfo GDFunctions::get_info(Function p_func) {
mi.return_val.type=Variant::OBJECT;
return mi;
} break;
case HASH: {
MethodInfo mi("hash",PropertyInfo(Variant::NIL,"var:var"));
mi.return_val.type=Variant::INT;
return mi;
} break;
case PRINT_STACK: {
MethodInfo mi("print_stack");

View File

@ -89,6 +89,7 @@ public:
RESOURCE_LOAD,
INST2DICT,
DICT2INST,
HASH,
PRINT_STACK,
FUNC_MAX

View File

@ -1451,6 +1451,7 @@ Error GDScript::reload() {
valid=false;
GDParser parser;
Error err = parser.parse(source,basedir);
@ -1721,6 +1722,7 @@ GDScript::GDScript() {
_base=NULL;
_owner=NULL;
tool=false;
}

View File

@ -183,6 +183,7 @@ class GDScript : public Script {
bool valid;
friend class GDInstance;
friend class GDFunction;
friend class GDCompiler;