This commit is contained in:
Juan Linietsky 2016-01-12 07:08:32 -03:00
commit e47c584d77
3 changed files with 30 additions and 17 deletions

View file

@ -170,15 +170,12 @@ RES ResourceFormatPBM::load(const String &p_path,const String& p_original_path,E
}
DVector<uint8_t>::Read r=token.read();
int bitwidth = width;
if (bitwidth % 8)
bitwidth+=8-(bitwidth%8);
for(int i=0;i<height;i++) {
for(int j=0;j<width;j++) {
char num = r[i*bitwidth+j];
char num = r[i*width+j];
bm->set_bit(Point2i(j,i),num=='0');
}
@ -197,11 +194,14 @@ RES ResourceFormatPBM::load(const String &p_path,const String& p_original_path,E
}
DVector<uint8_t>::Read r=token.read();
int bitwidth = width;
if (bitwidth % 8)
bitwidth+=8-(bitwidth%8);
for(int i=0;i<height;i++) {
for(int j=0;j<width;j++) {
int ofs = width*i+j;
int ofs = bitwidth*i+j;
uint8_t byte = r[ofs/8];
bool bit = (byte>>(7-(ofs%8)))&1;

View file

@ -455,6 +455,9 @@ bool EditorExportPlatformPC::_set(const StringName& p_name, const Variant& p_val
} else if (n=="resources/pack_mode") {
export_mode=ExportMode(int(p_value));
} else if (n=="resources/bundle_dependencies_(for_optical_disc)") {
bundle=p_value;
} else if (n=="binary/64_bits") {
use64=p_value;
@ -478,6 +481,9 @@ bool EditorExportPlatformPC::_get(const StringName& p_name,Variant &r_ret) const
} else if (n=="resources/pack_mode") {
r_ret=export_mode;
} else if (n=="resources/bundle_dependencies_(for_optical_disc)") {
r_ret=bundle;
} else if (n=="binary/64_bits") {
r_ret=use64;
@ -492,7 +498,8 @@ void EditorExportPlatformPC::_get_property_list( List<PropertyInfo> *p_list) con
p_list->push_back( PropertyInfo( Variant::STRING, "custom_binary/debug", PROPERTY_HINT_GLOBAL_FILE,binary_extension));
p_list->push_back( PropertyInfo( Variant::STRING, "custom_binary/release", PROPERTY_HINT_GLOBAL_FILE,binary_extension));
p_list->push_back( PropertyInfo( Variant::INT, "resources/pack_mode", PROPERTY_HINT_ENUM,"Single Exec.,Exec+Pack (.pck),Copy,Bundles (Optical)"));
p_list->push_back( PropertyInfo( Variant::INT, "resources/pack_mode", PROPERTY_HINT_ENUM,"Pack into executable,Pack into binary file (.pck),Pack into archive file (.zip)"));
p_list->push_back( PropertyInfo( Variant::BOOL, "resources/bundle_dependencies_(for_optical_disc)"));
p_list->push_back( PropertyInfo( Variant::BOOL, "binary/64_bits"));
}
@ -1274,26 +1281,32 @@ Error EditorExportPlatformPC::export_project(const String& p_path, bool p_debug,
}
}
String dstfile = p_path.replace_first("res://","").replace("\\","/");
if (export_mode!=EXPORT_EXE) {
String dstfile=p_path.replace_first("res://","").replace("\\","/");
String dstfile_extension=export_mode==EXPORT_ZIP?".zip":".pck";
if (dstfile.find("/")!=-1)
dstfile=dstfile.get_base_dir()+"/data.pck";
dstfile=dstfile.get_base_dir()+"/data"+dstfile_extension;
else
dstfile="data.pck";
dstfile="data"+dstfile_extension;
if (export_mode==EXPORT_PACK) {
memdelete(dst);
dst=FileAccess::open(dstfile,FileAccess::WRITE);
if (!dst) {
memdelete(dst);
EditorNode::add_io_error("Can't write data pack to:\n "+p_path);
return ERR_FILE_CANT_WRITE;
dst=FileAccess::open(dstfile,FileAccess::WRITE);
if (!dst) {
EditorNode::add_io_error("Can't write data pack to:\n "+p_path);
return ERR_FILE_CANT_WRITE;
}
}
}
memdelete(src_exe);
Error err = save_pack(dst,export_mode==EXPORT_BUNDLES);
Error err = export_mode==EXPORT_ZIP?save_zip(dstfile,bundle):save_pack(dst,bundle);
memdelete(dst);
return err;
}

View file

@ -175,8 +175,7 @@ public:
enum ExportMode {
EXPORT_EXE,
EXPORT_PACK,
EXPORT_COPY,
EXPORT_BUNDLES
EXPORT_ZIP
};
@ -198,6 +197,7 @@ private:
Ref<Texture> logo;
ExportMode export_mode;
bool bundle;
protected:
bool _set(const StringName& p_name, const Variant& p_value);