BroadPhase2DHashGrid::BroadPhase2DHashGrid() {

	hash_table_size = GLOBAL_DEF("physics_2d/bp_hash_table_size",4096);
	hash_table_size = Math::larger_prime(hash_table_size);
	hash_table = memnew_arr( PosBin*, hash_table_size);

	cell_size = GLOBAL_DEF("physics_2d/cell_size",128);

	for(int i=0;i<hash_table_size;i++)
		hash_table[i]=NULL;
	pass=1;

	current=0;
}
BroadPhase2DHashGrid::BroadPhase2DHashGrid() {

	hash_table_size = GLOBAL_DEF("physics/2d/bp_hash_table_size", 4096);
	hash_table_size = Math::larger_prime(hash_table_size);
	hash_table = memnew_arr(PosBin *, hash_table_size);

	cell_size = GLOBAL_DEF("physics/2d/cell_size", 128);
	large_object_min_surface = GLOBAL_DEF("physics/2d/large_object_surface_threshold_in_cells", 512);

	for (int i = 0; i < hash_table_size; i++)
		hash_table[i] = NULL;
	pass = 1;

	current = 0;
}
Example #3
0
Error EditorRun::run(const String& p_scene,const String p_custom_args,const List<String>& p_breakpoints,const String& p_edited_scene) {

    List<String> args;


    String resource_path = Globals::get_singleton()->get_resource_path();

    if (resource_path!="") {
        args.push_back("-path");
        args.push_back(resource_path.replace(" ","%20"));

    }

    if (true) {
        args.push_back("-rdebug");
        args.push_back("localhost:"+String::num(GLOBAL_DEF("debug/debug_port", 6007)));
    }

    if (p_custom_args!="") {

        Vector<String> cargs=p_custom_args.split(" ",false);
        for(int i=0; i<cargs.size(); i++) {

            args.push_back(cargs[i].replace("%20"," ").replace("$scene",p_edited_scene.replace(" ","%20")));
        }
    }

    if (p_breakpoints.size()) {

        args.push_back("-bp");
        String bpoints;
        for(const List<String>::Element *E=p_breakpoints.front(); E; E=E->next()) {

            bpoints+=E->get().replace(" ","%20");
            if (E->next())
                bpoints+=",";
        }

        args.push_back(bpoints);
    }

    args.push_back(p_scene);

    String exec = OS::get_singleton()->get_executable_path();

    printf("running: %ls", exec.c_str());
    for (List<String>::Element* E = args.front(); E ; E = E->next()) {

        printf(" %ls", E->get().c_str());
    };
    printf("\n");

    pid=0;
    Error err = OS::get_singleton()->execute(exec,args,false,&pid);
    ERR_FAIL_COND_V(err,err);

    status = STATUS_PLAY;

    return OK;
}
Example #4
0
EditorFileSystem::EditorFileSystem() {

	reimport_on_missing_imported_files = GLOBAL_DEF("editor/reimport_missing_imported_files", true);

	singleton = this;
	filesystem = memnew(EditorFileSystemDirectory); //like, empty
	filesystem->parent = NULL;

	thread = NULL;
	scanning = false;
	importing = false;
	use_threads = true;
	thread_sources = NULL;
	new_filesystem = NULL;

	abort_scan = false;
	scanning_changes = false;
	scanning_changes_done = false;
	ResourceSaver::set_save_callback(_resource_saved);

	DirAccess *da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
	if (da->change_dir("res://.import") != OK) {
		da->make_dir("res://.import");
	}
	memdelete(da);

	scan_total = 0;
}
Example #5
0
void OSIPhone::mouse_move(int p_idx, int p_prev_x, int p_prev_y, int p_x, int p_y, bool p_use_as_mouse) {

	if (!GLOBAL_DEF("debug/disable_touch", false)) {

		Ref<InputEventScreenDrag> ev;
		ev.instance();
		ev->set_index(p_idx);
		ev->set_position(Vector2(p_x, p_y));
		ev->set_relative(Vector2(p_x - p_prev_x, p_y - p_prev_y));
		queue_event(ev);
	};

	if (p_use_as_mouse) {
		Ref<InputEventMouseMotion> ev;
		ev.instance();

		ev->set_position(Vector2(p_x, p_y));
		ev->set_global_position(Vector2(p_x, p_y));
		ev->set_relative(Vector2(p_x - p_prev_x, p_y - p_prev_y));

		input->set_mouse_position(ev->get_position());
		ev->set_speed(input->get_last_mouse_speed());
		ev->set_button_mask(BUTTON_LEFT); // pressed

		queue_event(ev);
	};
};
Example #6
0
void OSIPhone::mouse_button(int p_idx, int p_x, int p_y, bool p_pressed, bool p_doubleclick, bool p_use_as_mouse) {

	if (!GLOBAL_DEF("debug/disable_touch", false)) {
		Ref<InputEventScreenTouch> ev;
		ev.instance();

		ev->set_index(p_idx);
		ev->set_pressed(p_pressed);
		ev->set_position(Vector2(p_x, p_y));
		queue_event(ev);
	};

	mouse_list.pressed[p_idx] = p_pressed;

	if (p_use_as_mouse) {

		Ref<InputEventMouseButton> ev;
		ev.instance();

		ev->set_position(Vector2(p_x, p_y));
		ev->set_global_position(Vector2(p_x, p_y));

		//mouse_list.pressed[p_idx] = p_pressed;

		input->set_mouse_position(ev->get_position());
		ev->set_button_index(BUTTON_LEFT);
		ev->set_doubleclick(p_doubleclick);
		ev->set_pressed(p_pressed);

		queue_event(ev);
	};
};
Example #7
0
ScriptDebuggerRemote::ScriptDebuggerRemote() {

	tcp_client  = StreamPeerTCP::create_ref();
	packet_peer_stream = Ref<PacketPeerStream>( memnew(PacketPeerStream) );
	packet_peer_stream->set_stream_peer(tcp_client);
	mutex = Mutex::create();
	locking=false;

	phl.printfunc=_print_handler;
	phl.userdata=this;
	add_print_handler(&phl);
	requested_quit=false;
	performance = Globals::get_singleton()->get_singleton_object("Performance");
	last_perf_time=0;
	poll_every=0;
	request_scene_tree=NULL;
	live_edit_funcs=NULL;
	max_cps = GLOBAL_DEF("debug/max_remote_stdout_chars_per_second",2048);
	char_count=0;
	msec_count=0;
	last_msec=0;

	eh.errfunc=_err_handler;
	eh.userdata=this;
	add_error_handler(&eh);

}
VisualServerWrapMT::VisualServerWrapMT(VisualServer* p_contained,bool p_create_thread) : command_queue(p_create_thread) {

	visual_server=p_contained;
	create_thread=p_create_thread;
	thread=NULL;
	draw_mutex=NULL;
	draw_pending=0;
	draw_thread_up=false;
	alloc_mutex=Mutex::create();
	texture_pool_max_size=GLOBAL_DEF("render/thread_textures_prealloc",20);
	mesh_pool_max_size=GLOBAL_DEF("render/thread_meshes_prealloc",20);
	if (!p_create_thread) {
		server_thread=Thread::get_caller_ID();
	} else {
		server_thread=0;
	}
}
Example #9
0
Error AudioDriverAndroid::init(){

	mutex = Mutex::create();
/*
	// TODO: pass in/return a (Java) device ID, also whether we're opening for input or output
	   this->spec.samples = Android_JNI_OpenAudioDevice(this->spec.freq, this->spec.format == AUDIO_U8 ? 0 : 1, this->spec.channels, this->spec.samples);
	   SDL_CalculateAudioSpec(&this->spec);

	   if (this->spec.samples == 0) {
	       // Init failed?
	       SDL_SetError("Java-side initialization failed!");
	       return 0;
	   }
*/

	//Android_JNI_SetupThread();


  //        __android_log_print(ANDROID_LOG_VERBOSE, "SDL", "SDL audio: opening device");


	JNIEnv *env = ThreadAndroid::get_env();
	int mix_rate = GLOBAL_DEF("audio/mix_rate",44100);

	int latency = GLOBAL_DEF("audio/output_latency",25);
	latency=50;
	unsigned int buffer_size = nearest_power_of_2( latency * mix_rate / 1000 );
	if (OS::get_singleton()->is_stdout_verbose()) {
		print_line("audio buffer size: "+itos(buffer_size));
	}

	__android_log_print(ANDROID_LOG_INFO,"godot","Initializing audio! params: %i,%i ",mix_rate,buffer_size);
	audioBuffer = env->CallObjectMethod(io,_init_audio, mix_rate, buffer_size);


	ERR_FAIL_COND_V( audioBuffer == NULL, ERR_INVALID_PARAMETER);

	audioBuffer = env->NewGlobalRef(audioBuffer);

	jboolean isCopy = JNI_FALSE;
	audioBufferPinned = env->GetShortArrayElements((jshortArray)audioBuffer, &isCopy);
	audioBufferFrames = env->GetArrayLength((jshortArray)audioBuffer);
	audioBuffer32 = memnew_arr(int32_t,audioBufferFrames);

	return OK;
}
Example #10
0
VisualServer::VisualServer() {

//	ERR_FAIL_COND(singleton);
	singleton=this;
	mm_policy=GLOBAL_DEF("render/mipmap_policy",0);
	if (mm_policy<0 || mm_policy>2)
		mm_policy=0;

}
Example #11
0
PacketPeerStream::PacketPeerStream() {


	int rbsize=GLOBAL_DEF( "core/packet_stream_peer_max_buffer_po2",(16));

	ring_buffer.resize(rbsize);
	temp_buffer.resize(1<<rbsize);


}
Example #12
0
Error AudioDriverXAudio2::init() {

	active = false;
	thread_exited = false;
	exit_thread = false;
	pcm_open = false;
	samples_in = NULL;

	mix_rate = 48000;
	// FIXME: speaker_mode seems unused in the Xaudio2 driver so far
	speaker_mode = SPEAKER_MODE_STEREO;
	channels = 2;

	int latency = GLOBAL_DEF("audio/output_latency", 25);
	buffer_size = closest_power_of_2(latency * mix_rate / 1000);

	samples_in = memnew_arr(int32_t, buffer_size * channels);
	for (int i = 0; i < AUDIO_BUFFERS; i++) {
		samples_out[i] = memnew_arr(int16_t, buffer_size * channels);
		xaudio_buffer[i].AudioBytes = buffer_size * channels * sizeof(int16_t);
		xaudio_buffer[i].pAudioData = (const BYTE *)(samples_out[i]);
		xaudio_buffer[i].Flags = 0;
	}

	HRESULT hr;
	hr = XAudio2Create(&xaudio, 0, XAUDIO2_DEFAULT_PROCESSOR);
	if (hr != S_OK) {
		ERR_EXPLAIN("Error creating XAudio2 engine.");
		ERR_FAIL_V(ERR_UNAVAILABLE);
	}
	hr = xaudio->CreateMasteringVoice(&mastering_voice);
	if (hr != S_OK) {
		ERR_EXPLAIN("Error creating XAudio2 mastering voice.");
		ERR_FAIL_V(ERR_UNAVAILABLE);
	}

	wave_format.nChannels = channels;
	wave_format.cbSize = 0;
	wave_format.nSamplesPerSec = mix_rate;
	wave_format.wFormatTag = WAVE_FORMAT_PCM;
	wave_format.wBitsPerSample = 16;
	wave_format.nBlockAlign = channels * wave_format.wBitsPerSample >> 3;
	wave_format.nAvgBytesPerSec = mix_rate * wave_format.nBlockAlign;

	hr = xaudio->CreateSourceVoice(&source_voice, &wave_format, 0, XAUDIO2_MAX_FREQ_RATIO, &voice_callback);
	if (hr != S_OK) {
		ERR_EXPLAIN("Error creating XAudio2 source voice. " + itos(hr));
		ERR_FAIL_V(ERR_UNAVAILABLE);
	}

	mutex = Mutex::create();
	thread = Thread::create(AudioDriverXAudio2::thread_func, this);

	return OK;
};
Example #13
0
MessageQueue::MessageQueue() {

	ERR_FAIL_COND(singleton!=NULL);
	singleton=this;

	buffer_end=0;
	buffer_max_used=0;
	buffer_size=GLOBAL_DEF( "core/message_queue_size_kb", DEFAULT_QUEUE_SIZE_KB );
	buffer_size*=1024;
	buffer = memnew_arr( uint8_t, buffer_size );
}
Example #14
0
void OSIPhone::touch_drag(int p_idx, int p_prev_x, int p_prev_y, int p_x, int p_y) {

	if (!GLOBAL_DEF("debug/disable_touch", false)) {

		Ref<InputEventScreenDrag> ev;
		ev.instance();
		ev->set_index(p_idx);
		ev->set_position(Vector2(p_x, p_y));
		ev->set_relative(Vector2(p_x - p_prev_x, p_y - p_prev_y));
		queue_event(ev);
	};
};
FileAccessNetwork::FileAccessNetwork() {

	eof_flag=false;
	opened=false;
	pos=0;
	sem=Semaphore::create();
	page_sem=Semaphore::create();
	buffer_mutex=Mutex::create();
	FileAccessNetworkClient *nc = FileAccessNetworkClient::singleton;
	nc->lock_mutex();
	id=nc->last_id++;
	nc->accesses[id]=this;
	nc->unlock_mutex();
	page_size = GLOBAL_DEF("remote_fs/page_size",65536);
	read_ahead = GLOBAL_DEF("remote_fs/page_read_ahead",4);
	max_pages = GLOBAL_DEF("remote_fs/max_pages",20);
	last_activity_val=0;
	waiting_on_page=-1;
	last_page=-1;


}
Example #16
0
void OSIPhone::touch_press(int p_idx, int p_x, int p_y, bool p_pressed, bool p_doubleclick) {

	if (!GLOBAL_DEF("debug/disable_touch", false)) {
		Ref<InputEventScreenTouch> ev;
		ev.instance();

		ev->set_index(p_idx);
		ev->set_pressed(p_pressed);
		ev->set_position(Vector2(p_x, p_y));
		queue_event(ev);
	};

	touch_list.pressed[p_idx] = p_pressed;
};
ResourceFormatLoaderImage::ResourceFormatLoaderImage() {

	max_texture_size = GLOBAL_DEF("debug/max_texture_size",0);
	GLOBAL_DEF("debug/max_texture_size_alert",false);
	debug_load_times=GLOBAL_DEF("debug/image_load_times",false);
	GLOBAL_DEF("texture_import/filter",true);
	GLOBAL_DEF("texture_import/gen_mipmaps",true);
	GLOBAL_DEF("texture_import/repeat",true);

}
Example #18
0
void ScriptEditorDebugger::start() {

	stop();


	uint16_t port = GLOBAL_DEF("debug/remote_port",6007);
	perf_history.clear();
	for(int i=0;i<Performance::MONITOR_MAX;i++) {

		perf_max[i]=0;
	}

	server->listen(port);
	set_process(true);

}
Example #19
0
RES Skeleton::_get_gizmo_geometry() const {

	if (!GLOBAL_DEF("debug/draw_skeleton", true))
		return RES();

	if (bones.size()==0)
		return RES();

	Ref<SurfaceTool> surface_tool( memnew( SurfaceTool ));

	Ref<FixedMaterial> mat( memnew( FixedMaterial ));

	mat->set_parameter( FixedMaterial::PARAM_DIFFUSE,Color(0.6,1.0,0.3,0.1) );
	mat->set_line_width(4);
	mat->set_flag(Material::FLAG_DOUBLE_SIDED,true);
	mat->set_flag(Material::FLAG_UNSHADED,true);
	mat->set_flag(Material::FLAG_ONTOP,true);
//	mat->set_hint(Material::HINT_NO_DEPTH_DRAW,true);

	surface_tool->begin(Mesh::PRIMITIVE_LINES);
	surface_tool->set_material(mat);


	const Bone *bonesptr=&bones[0];
	int len=bones.size();

	for (int i=0;i<len;i++) {

		const Bone &b=bonesptr[i];

		Transform t;
		if (b.parent<0)
			continue;

		Vector3 v1=(bonesptr[b.parent].pose_global * bonesptr[b.parent].rest_global_inverse).xform(bonesptr[b.parent].rest_global_inverse.affine_inverse().origin);
		Vector3 v2=(b.pose_global * b.rest_global_inverse).xform(b.rest_global_inverse.affine_inverse().origin);

		surface_tool->add_vertex(v1);
		surface_tool->add_vertex(v2);

	}

	return surface_tool->commit();

}
Example #20
0
void OSIPhone::mouse_move(int p_idx, int p_prev_x, int p_prev_y, int p_x, int p_y, bool p_use_as_mouse) {

	if (!GLOBAL_DEF("debug/disable_touch", false)) {

		InputEvent ev;
		ev.type = InputEvent::SCREEN_DRAG;
		ev.ID = ++last_event_id;
		ev.screen_drag.index = p_idx;
		ev.screen_drag.x = p_x;
		ev.screen_drag.y = p_y;
		ev.screen_drag.relative_x = p_x - p_prev_x;
		ev.screen_drag.relative_y = p_y - p_prev_y;
		queue_event(ev);
	};

	if (p_use_as_mouse) {
		InputEvent ev;
		ev.type = InputEvent::MOUSE_MOTION;
		ev.device = 0;
		ev.mouse_motion.pointer_index = p_idx;
		ev.ID = ++last_event_id;

		if (true) { // vertical

			ev.mouse_motion.x = ev.mouse_button.global_x = p_x;
			ev.mouse_motion.y = ev.mouse_button.global_y = p_y;
			ev.mouse_motion.relative_x = ev.mouse_motion.x - p_prev_x;
			ev.mouse_motion.relative_y = ev.mouse_motion.y - p_prev_y;

		} else { // horizontal?
			ev.mouse_motion.x = ev.mouse_button.global_x = video_mode.height - p_y;
			ev.mouse_motion.y = ev.mouse_button.global_y = p_x;
			ev.mouse_motion.relative_x = ev.mouse_motion.x - (video_mode.height - p_prev_x);
			ev.mouse_motion.relative_y = ev.mouse_motion.y - p_prev_x;
		};

		input->set_mouse_pos(Point2(ev.mouse_motion.x, ev.mouse_motion.y));
		ev.mouse_motion.speed_x = input->get_mouse_speed().x;
		ev.mouse_motion.speed_y = input->get_mouse_speed().y;
		ev.mouse_motion.button_mask = 1; // pressed

		queue_event(ev);
	};
};
void ScriptEditorDebugger::start() {

	stop();

	if (!EditorNode::get_log()->is_visible()) {
		EditorNode::get_singleton()->make_bottom_panel_item_visible(EditorNode::get_log());
	}

	uint16_t port = GLOBAL_DEF("debug/remote_port",6007);
	perf_history.clear();
	for(int i=0;i<Performance::MONITOR_MAX;i++) {

		perf_max[i]=0;
	}

	server->listen(port);
	set_process(true);

}
void VideoStreamTheoraplayer::set_file(const String& p_file) {

	FileAccess* f = FileAccess::open(p_file, FileAccess::READ);
	if (!f || !f->is_open())
		return;

	if (!audio_factory) {
		audio_factory = memnew(TPAudioGodotFactory);
	};

	if (mgr == NULL) {
		mgr = memnew(TheoraVideoManager(4));
		mgr->setAudioInterfaceFactory(audio_factory);
	};

	int track = GLOBAL_DEF("theora/audio_track", 0); // hack

	if (p_file.find(".mp4") != -1) {
		
		std::string file = p_file.replace("res://", "").utf8().get_data();
		clip = mgr->createVideoClip(file, TH_RGBX, 2, false, track);
		//clip->set_audio_track(audio_track);
		memdelete(f);

	} else {

		TheoraDataSource* ds = memnew(TPDataFA(f, p_file));

		try {
			clip = mgr->createVideoClip(ds);
			clip->set_audio_track(audio_track);
		} catch (_TheoraGenericException e) {
			printf("exception ocurred! %s\n", e.repr().c_str());
			clip = NULL;
		};
	};

	clip->pause();
	started = true;
};
Example #23
0
void OSIPhone::mouse_button(int p_idx, int p_x, int p_y, bool p_pressed, bool p_doubleclick, bool p_use_as_mouse) {

	if (!GLOBAL_DEF("debug/disable_touch", false)) {
		InputEvent ev;
		ev.type = InputEvent::SCREEN_TOUCH;
		ev.ID = ++last_event_id;
		ev.screen_touch.index = p_idx;
		ev.screen_touch.pressed = p_pressed;
		ev.screen_touch.x = p_x;
		ev.screen_touch.y = p_y;
		queue_event(ev);
	};

	mouse_list.pressed[p_idx] = p_pressed;

	if (p_use_as_mouse) {

		InputEvent ev;
		ev.type = InputEvent::MOUSE_BUTTON;
		ev.device = 0;
		ev.mouse_button.pointer_index = p_idx;
		ev.ID = ++last_event_id;

		// swaped it for tilted screen
		//ev.mouse_button.x = ev.mouse_button.global_x = video_mode.height - p_y;
		//ev.mouse_button.y = ev.mouse_button.global_y = p_x;
		ev.mouse_button.x = ev.mouse_button.global_x = p_x;
		ev.mouse_button.y = ev.mouse_button.global_y = p_y;

		//mouse_list.pressed[p_idx] = p_pressed;

		input->set_mouse_pos(Point2(ev.mouse_motion.x, ev.mouse_motion.y));
		ev.mouse_button.button_index = BUTTON_LEFT;
		ev.mouse_button.doubleclick = p_doubleclick;
		ev.mouse_button.pressed = p_pressed;

		queue_event(ev);
	};
};
Example #24
0
Error AudioDriverDummy::init() {

	active=false;
	thread_exited=false;
	exit_thread=false;
	pcm_open = false;
	samples_in = NULL;


	mix_rate = 44100;
	speaker_mode = SPEAKER_MODE_STEREO;
	channels = 2;

	int latency = GLOBAL_DEF("audio/output_latency",25);
	buffer_size = nearest_power_of_2( latency * mix_rate / 1000 );

	samples_in = memnew_arr(int32_t, buffer_size*channels);

	mutex=Mutex::create();
	thread = Thread::create(AudioDriverDummy::thread_func, this);

	return OK;
};
Example #25
0
Error AudioDriverMediaKit::init() {
	active = false;

	mix_rate = 44100;
	output_format = OUTPUT_STEREO;
	channels = 2;

	int latency = GLOBAL_DEF("audio/output_latency", 25);
	buffer_size = nearest_power_of_2(latency * mix_rate / 1000);
	samples_in = memnew_arr(int32_t, buffer_size * channels);

	media_raw_audio_format format;
	format = media_raw_audio_format::wildcard;
	format.frame_rate = mix_rate;
	format.channel_count = channels;
	format.format = media_raw_audio_format::B_AUDIO_INT;
	format.byte_order = B_MEDIA_LITTLE_ENDIAN;
	format.buffer_size = buffer_size * sizeof(int32_t) * channels;

	player = new BSoundPlayer(
		&format,
		"godot_sound_server",
		AudioDriverMediaKit::PlayBuffer,
		NULL,
		this
	);

	if (player->InitCheck() != B_OK) {
		fprintf(stderr, "MediaKit ERR: can not create a BSoundPlayer instance\n");
		ERR_FAIL_COND_V(player == NULL, ERR_CANT_OPEN);
	}

	mutex = Mutex::create();
	player->Start();

	return OK;
}
Example #26
0
void StreamPeerMbedTLS::initialize_ssl() {

	_create = _create_func;
	load_certs_func = _load_certs;

	mbedtls_x509_crt_init(&cacert);

#ifdef DEBUG_ENABLED
	mbedtls_debug_set_threshold(1);
#endif

	String certs_path = GLOBAL_DEF("network/ssl/certificates", "");
	ProjectSettings::get_singleton()->set_custom_property_info("network/ssl/certificates", PropertyInfo(Variant::STRING, "network/ssl/certificates", PROPERTY_HINT_FILE, "*.crt"));

	if (certs_path != "") {

		FileAccess *f = FileAccess::open(certs_path, FileAccess::READ);
		if (f) {
			PoolByteArray arr;
			int flen = f->get_len();
			arr.resize(flen + 1);
			{
				PoolByteArray::Write w = arr.write();
				f->get_buffer(w.ptr(), flen);
				w[flen] = 0; //end f string
			}

			memdelete(f);

			_load_certs(arr);
			print_line("Loaded certs from '" + certs_path);
		}
	}

	available = true;
}
Example #27
0
void register_scene_types() {

	SceneStringNames::create();

	OS::get_singleton()->yield(); //may take time to init

	Node::init_node_hrcr();

	resource_loader_image = memnew( ResourceFormatLoaderImage );
	ResourceLoader::add_resource_format_loader( resource_loader_image );

	resource_loader_wav = memnew( ResourceFormatLoaderWAV );
	ResourceLoader::add_resource_format_loader( resource_loader_wav );


#ifdef TOOLS_ENABLED

	//scene first!

#endif

	resource_loader_theme = memnew( ResourceFormatLoaderTheme );
	ResourceLoader::add_resource_format_loader( resource_loader_theme );

	resource_loader_shader = memnew( ResourceFormatLoaderShader );
	ResourceLoader::add_resource_format_loader( resource_loader_shader );

	make_default_theme();

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_type<Object>();

	ObjectTypeDB::register_type<Node>();
	ObjectTypeDB::register_virtual_type<InstancePlaceholder>();

	ObjectTypeDB::register_type<Viewport>();
	ObjectTypeDB::register_virtual_type<RenderTargetTexture>();
	ObjectTypeDB::register_type<HTTPRequest>();
	ObjectTypeDB::register_type<Timer>();
	ObjectTypeDB::register_type<CanvasLayer>();
	ObjectTypeDB::register_type<CanvasModulate>();
	ObjectTypeDB::register_type<ResourcePreloader>();

	/* REGISTER GUI */
	ObjectTypeDB::register_type<ButtonGroup>();
	ObjectTypeDB::register_virtual_type<BaseButton>();

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_type<Control>();
//	ObjectTypeDB::register_type<EmptyControl>();
	ObjectTypeDB::add_compatibility_type("EmptyControl","Control");
	ObjectTypeDB::register_type<Button>();
	ObjectTypeDB::register_type<Label>();
	ObjectTypeDB::register_type<HScrollBar>();
	ObjectTypeDB::register_type<VScrollBar>();
	ObjectTypeDB::register_type<ProgressBar>();
	ObjectTypeDB::register_type<HSlider>();
	ObjectTypeDB::register_type<VSlider>();
	ObjectTypeDB::register_type<Popup>();
	ObjectTypeDB::register_type<PopupPanel>();
	ObjectTypeDB::register_type<MenuButton>();
	ObjectTypeDB::register_type<CheckBox>();
	ObjectTypeDB::register_type<CheckButton>();
	ObjectTypeDB::register_type<ToolButton>();
	ObjectTypeDB::register_type<LinkButton>();
	ObjectTypeDB::register_type<Panel>();
	ObjectTypeDB::register_type<Range>();

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_type<TextureFrame>();
	ObjectTypeDB::register_type<Patch9Frame>();
	ObjectTypeDB::register_type<TabContainer>();
	ObjectTypeDB::register_type<Tabs>();
	ObjectTypeDB::register_virtual_type<Separator>();
	ObjectTypeDB::register_type<HSeparator>();
	ObjectTypeDB::register_type<VSeparator>();
	ObjectTypeDB::register_type<TextureButton>();
	ObjectTypeDB::register_type<Container>();
	ObjectTypeDB::register_virtual_type<BoxContainer>();
	ObjectTypeDB::register_type<HBoxContainer>();
	ObjectTypeDB::register_type<VBoxContainer>();
	ObjectTypeDB::register_type<GridContainer>();
	ObjectTypeDB::register_type<CenterContainer>();
	ObjectTypeDB::register_type<ScrollContainer>();
	ObjectTypeDB::register_type<PanelContainer>();
	ObjectTypeDB::register_virtual_type<SplitContainer>();
	ObjectTypeDB::register_type<HSplitContainer>();
	ObjectTypeDB::register_type<VSplitContainer>();
	ObjectTypeDB::register_type<GraphNode>();
	ObjectTypeDB::register_type<GraphEdit>();

	OS::get_singleton()->yield(); //may take time to init


	ObjectTypeDB::register_virtual_type<ButtonArray>();
	ObjectTypeDB::register_type<HButtonArray>();
	ObjectTypeDB::register_type<VButtonArray>();
	ObjectTypeDB::register_type<TextureProgress>();
	ObjectTypeDB::register_type<ItemList>();

#ifndef	ADVANCED_GUI_DISABLED

	ObjectTypeDB::register_type<FileDialog>();
	ObjectTypeDB::register_type<LineEdit>();
	ObjectTypeDB::register_type<PopupMenu>();
	ObjectTypeDB::register_type<Tree>();

	ObjectTypeDB::register_type<TextEdit>();

	ObjectTypeDB::register_virtual_type<TreeItem>();
	ObjectTypeDB::register_type<OptionButton>();
	ObjectTypeDB::register_type<SpinBox>();
	ObjectTypeDB::register_type<ReferenceFrame>();
	ObjectTypeDB::register_type<ColorPicker>();
	ObjectTypeDB::register_type<ColorPickerButton>();
	ObjectTypeDB::register_type<RichTextLabel>();
	ObjectTypeDB::register_type<PopupDialog>();
	ObjectTypeDB::register_type<WindowDialog>();
	ObjectTypeDB::register_type<AcceptDialog>();
	ObjectTypeDB::register_type<ConfirmationDialog>();
	ObjectTypeDB::register_type<VideoPlayer>();
	ObjectTypeDB::register_type<MarginContainer>();

	OS::get_singleton()->yield(); //may take time to init

#endif

	/* REGISTER 3D */

	ObjectTypeDB::register_type<Spatial>();
	ObjectTypeDB::register_type<Skeleton>();
	ObjectTypeDB::register_type<AnimationPlayer>();
	ObjectTypeDB::register_type<Tween>();

	OS::get_singleton()->yield(); //may take time to init

#ifndef _3D_DISABLED
	ObjectTypeDB::register_type<BoneAttachment>();
	ObjectTypeDB::register_virtual_type<VisualInstance>();
	ObjectTypeDB::register_type<Camera>();
	ObjectTypeDB::register_type<InterpolatedCamera>();
	ObjectTypeDB::register_type<TestCube>();
	ObjectTypeDB::register_type<MeshInstance>();
	ObjectTypeDB::register_type<ImmediateGeometry>();
	ObjectTypeDB::register_type<Sprite3D>();
	ObjectTypeDB::register_type<AnimatedSprite3D>();
	ObjectTypeDB::register_virtual_type<Light>();
	ObjectTypeDB::register_type<DirectionalLight>();
	ObjectTypeDB::register_type<OmniLight>();
	ObjectTypeDB::register_type<SpotLight>();
	ObjectTypeDB::register_type<AnimationTreePlayer>();
	ObjectTypeDB::register_type<Portal>();
	ObjectTypeDB::register_type<Particles>();
	ObjectTypeDB::register_type<Position3D>();
	ObjectTypeDB::register_type<Quad>();
	ObjectTypeDB::register_type<NavigationMeshInstance>();
	ObjectTypeDB::register_type<NavigationMesh>();
	ObjectTypeDB::register_type<Navigation>();

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_virtual_type<CollisionObject>();
	ObjectTypeDB::register_type<StaticBody>();
	ObjectTypeDB::register_type<RigidBody>();
	ObjectTypeDB::register_type<KinematicBody>();


	ObjectTypeDB::register_type<VehicleBody>();
	ObjectTypeDB::register_type<VehicleWheel>();
	ObjectTypeDB::register_type<Area>();
	ObjectTypeDB::register_type<ProximityGroup>();
	ObjectTypeDB::register_type<CollisionShape>();
	ObjectTypeDB::register_type<CollisionPolygon>();
	ObjectTypeDB::register_type<RayCast>();
	ObjectTypeDB::register_type<MultiMeshInstance>();
	ObjectTypeDB::register_type<Room>();
	ObjectTypeDB::register_type<Curve3D>();
	ObjectTypeDB::register_type<Path>();
	ObjectTypeDB::register_type<PathFollow>();
	ObjectTypeDB::register_type<VisibilityNotifier>();
	ObjectTypeDB::register_type<VisibilityEnabler>();
	ObjectTypeDB::register_type<BakedLightInstance>();
	ObjectTypeDB::register_type<BakedLightSampler>();
	ObjectTypeDB::register_type<WorldEnvironment>();

	ObjectTypeDB::register_virtual_type<Joint>();
	ObjectTypeDB::register_type<PinJoint>();
	ObjectTypeDB::register_type<HingeJoint>();
	ObjectTypeDB::register_type<SliderJoint>();
	ObjectTypeDB::register_type<ConeTwistJoint>();
	ObjectTypeDB::register_type<Generic6DOFJoint>();

	//scenariofx

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_type<SpatialSamplePlayer>();
	ObjectTypeDB::register_type<SpatialStreamPlayer>();
	ObjectTypeDB::register_type<SoundRoomParams>();


#endif
	ObjectTypeDB::register_type<MeshLibrary>();
	AcceptDialog::set_swap_ok_cancel( GLOBAL_DEF("display/swap_ok_cancel",bool(OS::get_singleton()->get_swap_ok_cancel())) );

	ObjectTypeDB::register_type<SamplePlayer>();


//	ObjectTypeDB::register_type<StaticBody>();
//	ObjectTypeDB::register_type<RigidBody>();
//	ObjectTypeDB::register_type<CharacterBody>();
//	ObjectTypeDB::register_type<BodyVolumeSphere>();
	//ObjectTypeDB::register_type<BodyVolumeBox>();
	//ObjectTypeDB::register_type<BodyVolumeCylinder>();
	//ObjectTypeDB::register_type<BodyVolumeCapsule>();
	//ObjectTypeDB::register_type<PhysicsJointPin>();




	ObjectTypeDB::register_type<StreamPlayer>();
	ObjectTypeDB::register_type<EventPlayer>();


	/* disable types by default, only editors should enable them */
	//ObjectTypeDB::set_type_enabled("BodyVolumeSphere",false);
	//ObjectTypeDB::set_type_enabled("BodyVolumeBox",false);
	//ObjectTypeDB::set_type_enabled("BodyVolumeCapsule",false);
	//ObjectTypeDB::set_type_enabled("BodyVolumeCylinder",false);
	//ObjectTypeDB::set_type_enabled("BodyVolumeConvexPolygon",false);

	ObjectTypeDB::register_type<CanvasItemMaterial>();
	ObjectTypeDB::register_virtual_type<CanvasItem>();
	ObjectTypeDB::register_type<Node2D>();
	ObjectTypeDB::register_type<Particles2D>();
	ObjectTypeDB::register_type<ParticleAttractor2D>();
	ObjectTypeDB::register_type<Sprite>();
	ObjectTypeDB::register_type<ViewportSprite>();
	ObjectTypeDB::register_type<SpriteFrames>();
	ObjectTypeDB::register_type<AnimatedSprite>();
	ObjectTypeDB::register_type<Position2D>();
	ObjectTypeDB::register_virtual_type<CollisionObject2D>();
	ObjectTypeDB::register_virtual_type<PhysicsBody2D>();
	ObjectTypeDB::register_type<StaticBody2D>();
	ObjectTypeDB::register_type<RigidBody2D>();
	ObjectTypeDB::register_type<KinematicBody2D>();
	ObjectTypeDB::register_type<Area2D>();
	ObjectTypeDB::register_type<CollisionShape2D>();
	ObjectTypeDB::register_type<CollisionPolygon2D>();
	ObjectTypeDB::register_type<RayCast2D>();
	ObjectTypeDB::register_type<VisibilityNotifier2D>();
	ObjectTypeDB::register_type<VisibilityEnabler2D>();
	ObjectTypeDB::register_type<Polygon2D>();
	ObjectTypeDB::register_type<Light2D>();
	ObjectTypeDB::register_type<LightOccluder2D>();
	ObjectTypeDB::register_type<OccluderPolygon2D>();
	ObjectTypeDB::register_type<YSort>();
	ObjectTypeDB::register_type<BackBufferCopy>();
	if (bool(GLOBAL_DEF("physics/remove_collision_helpers_at_runtime",false))) {
		ObjectTypeDB::set_type_enabled("CollisionShape2D",false);
		ObjectTypeDB::set_type_enabled("CollisionPolygon2D",false);
		ObjectTypeDB::set_type_enabled("CollisionShape",false);
		ObjectTypeDB::set_type_enabled("CollisionPolygon",false);
	}

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_type<Camera2D>();
	ObjectTypeDB::register_virtual_type<Joint2D>();
	ObjectTypeDB::register_type<PinJoint2D>();
	ObjectTypeDB::register_type<GrooveJoint2D>();
	ObjectTypeDB::register_type<DampedSpringJoint2D>();
	ObjectTypeDB::register_type<TileSet>();
	ObjectTypeDB::register_type<TileMap>();
	ObjectTypeDB::register_type<ParallaxBackground>();
	ObjectTypeDB::register_type<ParallaxLayer>();
	ObjectTypeDB::register_virtual_type<SoundPlayer2D>();
	ObjectTypeDB::register_type<SamplePlayer2D>();
	ObjectTypeDB::register_type<TouchScreenButton>();
	ObjectTypeDB::register_type<RemoteTransform2D>();

	OS::get_singleton()->yield(); //may take time to init

	/* REGISTER RESOURCES */

	ObjectTypeDB::register_virtual_type<Shader>();
	ObjectTypeDB::register_virtual_type<ShaderGraph>();
	ObjectTypeDB::register_type<CanvasItemShader>();
	ObjectTypeDB::register_type<CanvasItemShaderGraph>();

#ifndef _3D_DISABLED
	ObjectTypeDB::register_type<Mesh>();
	ObjectTypeDB::register_virtual_type<Material>();
	ObjectTypeDB::register_type<FixedMaterial>();
	ObjectTypeDB::register_type<ShaderMaterial>();
	ObjectTypeDB::register_type<RoomBounds>();
	ObjectTypeDB::register_type<MaterialShaderGraph>();
	ObjectTypeDB::register_type<MaterialShader>();
	ObjectTypeDB::add_compatibility_type("Shader","MaterialShader");
	ObjectTypeDB::add_compatibility_type("ParticleSystemMaterial","FixedMaterial");
	ObjectTypeDB::add_compatibility_type("UnshadedMaterial","FixedMaterial");
	ObjectTypeDB::register_type<MultiMesh>();
	ObjectTypeDB::register_type<MeshLibrary>();

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_type<RayShape>();
	ObjectTypeDB::register_type<SphereShape>();
	ObjectTypeDB::register_type<BoxShape>();
	ObjectTypeDB::register_type<CapsuleShape>();
	ObjectTypeDB::register_type<PlaneShape>();
	ObjectTypeDB::register_type<ConvexPolygonShape>();
	ObjectTypeDB::register_type<ConcavePolygonShape>();

	ObjectTypeDB::register_type<SurfaceTool>();
	ObjectTypeDB::register_type<MeshDataTool>();
	ObjectTypeDB::register_type<BakedLight>();

	OS::get_singleton()->yield(); //may take time to init

#endif
	ObjectTypeDB::register_type<World>();
	ObjectTypeDB::register_type<Environment>();
	ObjectTypeDB::register_type<World2D>();
	ObjectTypeDB::register_virtual_type<Texture>();
	ObjectTypeDB::register_type<ImageTexture>();
	ObjectTypeDB::register_type<AtlasTexture>();
	ObjectTypeDB::register_type<LargeTexture>();
	ObjectTypeDB::register_type<CubeMap>();
	ObjectTypeDB::register_type<Animation>();
	ObjectTypeDB::register_virtual_type<Font>();
	ObjectTypeDB::register_type<BitmapFont>();
	ObjectTypeDB::register_type<StyleBoxEmpty>();
	ObjectTypeDB::register_type<StyleBoxTexture>();
	ObjectTypeDB::register_type<StyleBoxFlat>();
	ObjectTypeDB::register_type<StyleBoxImageMask>();
	ObjectTypeDB::register_type<Theme>();

	ObjectTypeDB::add_compatibility_type("Font","BitmapFont");


	ObjectTypeDB::register_type<PolygonPathFinder>();
	ObjectTypeDB::register_type<BitMap>();
	ObjectTypeDB::register_type<ColorRamp>();

	OS::get_singleton()->yield(); //may take time to init

	//ObjectTypeDB::register_type<Volume>();
	ObjectTypeDB::register_type<Sample>();
	ObjectTypeDB::register_type<SampleLibrary>();
	ObjectTypeDB::register_virtual_type<AudioStream>();
	ObjectTypeDB::register_virtual_type<AudioStreamPlayback>();
//	ObjectTypeDB::register_type<AudioStreamGibberish>();
	ObjectTypeDB::register_virtual_type<VideoStream>();

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_virtual_type<Shape2D>();
	ObjectTypeDB::register_type<LineShape2D>();
	ObjectTypeDB::register_type<SegmentShape2D>();
	ObjectTypeDB::register_type<RayShape2D>();
	ObjectTypeDB::register_type<CircleShape2D>();
	ObjectTypeDB::register_type<RectangleShape2D>();
	ObjectTypeDB::register_type<CapsuleShape2D>();
	ObjectTypeDB::register_type<ConvexPolygonShape2D>();
	ObjectTypeDB::register_type<ConcavePolygonShape2D>();
	ObjectTypeDB::register_type<Curve2D>();
	ObjectTypeDB::register_type<Path2D>();
	ObjectTypeDB::register_type<PathFollow2D>();

	ObjectTypeDB::register_type<Navigation2D>();
	ObjectTypeDB::register_type<NavigationPolygon>();
	ObjectTypeDB::register_type<NavigationPolygonInstance>();

	OS::get_singleton()->yield(); //may take time to init

	ObjectTypeDB::register_virtual_type<SceneState>();
	ObjectTypeDB::register_type<PackedScene>();

	ObjectTypeDB::register_type<SceneTree>();

	OS::get_singleton()->yield(); //may take time to init


	resource_saver_text = memnew( ResourceFormatSaverText );
	ResourceSaver::add_resource_format_saver(resource_saver_text);

	resource_loader_text = memnew( ResourceFormatLoaderText );
	ResourceLoader::add_resource_format_loader(resource_loader_text);

}
Example #28
0
void OSIPhone::initialize(const VideoMode& p_desired,int p_video_driver,int p_audio_driver) {

	supported_orientations = 0;
	supported_orientations |= ((GLOBAL_DEF("video_mode/allow_horizontal", true)?1:0) << LandscapeLeft);
	supported_orientations |= ((GLOBAL_DEF("video_mode/allow_horizontal_flipped", false)?1:0) << LandscapeRight);
	supported_orientations |= ((GLOBAL_DEF("video_mode/allow_vertical", false)?1:0) << PortraitDown);
	supported_orientations |= ((GLOBAL_DEF("video_mode/allow_vertical_flipped", false)?1:0) << PortraitUp);

#ifdef GLES1_OVERRIDE
	rasterizer = memnew( RasterizerGLES1 );
#else
	rasterizer_gles22 = memnew( RasterizerGLES2(false, false, false) );
	rasterizer = rasterizer_gles22;
	rasterizer_gles22->set_base_framebuffer(gl_view_base_fb);
#endif

	visual_server = memnew( VisualServerRaster(rasterizer) );
	if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) {

		visual_server = memnew(VisualServerWrapMT(visual_server, false));
	};
	visual_server->init();

	visual_server->init();
	visual_server->cursor_set_visible(false, 0);

	audio_driver = memnew(AudioDriverIphone);
	audio_driver->set_singleton();
	audio_driver->init();

	sample_manager = memnew( SampleManagerMallocSW );
	audio_server = memnew( AudioServerSW(sample_manager) );
	audio_server->init();
	spatial_sound_server = memnew( SpatialSoundServerSW );
	spatial_sound_server->init();

	spatial_sound_2d_server = memnew( SpatialSound2DServerSW );
	spatial_sound_2d_server->init();

	//
	physics_server = memnew( PhysicsServerSW );
	physics_server->init();
	physics_2d_server = memnew( Physics2DServerSW );
	physics_2d_server->init();

	input = memnew( InputDefault );

	/*
#ifdef IOS_SCORELOOP_ENABLED
	scoreloop = memnew(ScoreloopIOS);
	Globals::get_singleton()->add_singleton(Globals::Singleton("Scoreloop", scoreloop));
	scoreloop->connect();
#endif
	*/

#ifdef GAME_CENTER_ENABLED
	game_center = memnew(GameCenter);
	Globals::get_singleton()->add_singleton(Globals::Singleton("GameCenter", game_center));
	game_center->connect();
#endif

#ifdef STOREKIT_ENABLED
	store_kit = memnew(InAppStore);
	Globals::get_singleton()->add_singleton(Globals::Singleton("InAppStore", store_kit));
#endif		
};
Example #29
0
EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSceneImportPlugin *p_plugin) {


	editor=p_editor;
	plugin=p_plugin;

	set_title("Import 3D Scene");
	HBoxContainer *import_hb = memnew( HBoxContainer );
	add_child(import_hb);
	set_child_rect(import_hb);

	VBoxContainer *vbc = memnew( VBoxContainer );
	import_hb->add_child(vbc);
	vbc->set_h_size_flags(SIZE_EXPAND_FILL);

	HBoxContainer *hbc = memnew( HBoxContainer );
	vbc->add_margin_child("Source Scene:",hbc);

	import_path = memnew( LineEdit );
	import_path->set_h_size_flags(SIZE_EXPAND_FILL);
	hbc->add_child(import_path);

	Button * import_choose = memnew( Button );
	import_choose->set_text(" .. ");
	hbc->add_child(import_choose);

	import_choose->connect("pressed", this,"_browse");

	hbc = memnew( HBoxContainer );
	vbc->add_margin_child("Target Scene:",hbc);

	save_path = memnew( LineEdit );
	save_path->set_h_size_flags(SIZE_EXPAND_FILL);
	hbc->add_child(save_path);

	Button * save_choose = memnew( Button );
	save_choose->set_text(" .. ");
	hbc->add_child(save_choose);

	save_choose->connect("pressed", this,"_browse_target");

	texture_action = memnew( OptionButton );
	texture_action->add_item("Same as Target Scene");
	texture_action->add_item("Shared");
	texture_action->select(0);
	vbc->add_margin_child("Target Texture Folder:",texture_action);

	import_options = memnew( Tree );
	vbc->set_v_size_flags(SIZE_EXPAND_FILL);
	vbc->add_margin_child("Options:",import_options,true);

	file_select = memnew(FileDialog);
	file_select->set_access(FileDialog::ACCESS_FILESYSTEM);
	add_child(file_select);


	file_select->set_mode(FileDialog::MODE_OPEN_FILE);

	file_select->connect("file_selected", this,"_choose_file");

	save_select = memnew(EditorDirDialog);
	add_child(save_select);

	//save_select->set_mode(FileDialog::MODE_SAVE_FILE);
	save_select->connect("dir_selected", this,"_choose_save_file");

	get_ok()->connect("pressed", this,"_import");
	get_ok()->set_text("Import");

	TreeItem *root = import_options->create_item(NULL);
	import_options->set_hide_root(true);




	TreeItem *importopts = import_options->create_item(root);
	importopts->set_text(0,"Import:");

	const FlagInfo* fn=scene_flag_names;

	while(fn->text) {

		TreeItem *opt = import_options->create_item(importopts);
		opt->set_cell_mode(0,TreeItem::CELL_MODE_CHECK);
		opt->set_checked(0,true);
		opt->set_editable(0,true);
		opt->set_text(0,fn->text);
		opt->set_metadata(0,fn->value);

		scene_flags.push_back(opt);
		fn++;
	}

	hbc = memnew( HBoxContainer );
	vbc->add_margin_child("Post-Process Script:",hbc);

	script_path = memnew( LineEdit );
	script_path->set_h_size_flags(SIZE_EXPAND_FILL);
	hbc->add_child(script_path);

	Button * script_choose = memnew( Button );
	script_choose->set_text(" .. ");
	hbc->add_child(script_choose);

	script_choose->connect("pressed", this,"_browse_script");

	script_select = memnew(FileDialog);
	add_child(script_select);
	for(int i=0;i<ScriptServer::get_language_count();i++) {

		ScriptLanguage *sl=ScriptServer::get_language(i);
		String ext = sl->get_extension();
		if (ext=="")
			continue;
		script_select->add_filter("*."+ext+" ; "+sl->get_name());
	}


	script_select->set_mode(FileDialog::MODE_OPEN_FILE);

	script_select->connect("file_selected", this,"_choose_script");

	error_dialog = memnew ( ConfirmationDialog );
	add_child(error_dialog);
	error_dialog->get_ok()->set_text("Accept");
//	error_dialog->get_cancel()->hide();

	set_hide_on_ok(false);

	GLOBAL_DEF("import/shared_textures","res://");
	Globals::get_singleton()->set_custom_property_info("import/shared_textures",PropertyInfo(Variant::STRING,"import/shared_textures",PROPERTY_HINT_DIR));

	import_hb->add_constant_override("separation",30);

	VBoxContainer *ovb = memnew( VBoxContainer);
	ovb->set_h_size_flags(SIZE_EXPAND_FILL);
	import_hb->add_child(ovb);

	texture_options = memnew( EditorImportTextureOptions );
	ovb->add_child(texture_options);
	texture_options->set_v_size_flags(SIZE_EXPAND_FILL);
	//animation_options->set_flags(EditorImport::
	texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_RAM);
	texture_options->set_flags( EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA | EditorTextureImportPlugin::IMAGE_FLAG_REPEAT  | EditorTextureImportPlugin::IMAGE_FLAG_FILTER );


	animation_options = memnew( EditorImportAnimationOptions );
	ovb->add_child(animation_options);
	animation_options->set_v_size_flags(SIZE_EXPAND_FILL);
	animation_options->set_flags(EditorSceneAnimationImportPlugin::ANIMATION_DETECT_LOOP|EditorSceneAnimationImportPlugin::ANIMATION_KEEP_VALUE_TRACKS|EditorSceneAnimationImportPlugin::ANIMATION_OPTIMIZE);


	confirm_import = memnew( ConfirmationDialog );
	add_child(confirm_import);
	VBoxContainer *cvb = memnew( VBoxContainer );
	confirm_import->add_child(cvb);
	confirm_import->set_child_rect(cvb);

	PanelContainer *pc = memnew( PanelContainer );
	pc->add_style_override("panel",get_stylebox("normal","TextEdit"));
	//ec->add_child(pc);
	missing_files = memnew( RichTextLabel );
	cvb->add_margin_child("The Following Files are Missing:",pc,true);
	pc->add_child(missing_files);
	confirm_import->get_ok()->set_text("Import Anyway");
	confirm_import->get_cancel()->set_text("Cancel");
	confirm_import->connect("popup_hide",this,"_dialog_hid");
	confirm_import->connect("confirmed",this,"_import_confirm");
	confirm_import->set_hide_on_ok(false);

	add_button("Import & Open",!OS::get_singleton()->get_swap_ok_cancel())->connect("pressed",this,"_open_and_import");

	confirm_open = memnew( ConfirmationDialog );
	add_child(confirm_open);
	confirm_open->set_text("Edited scene has not been saved, open imported scene anyway?");
	confirm_open->connect("confirmed",this,"_import",varray(true));


	wip_import=NULL;
	wip_blocked=false;
	wip_open=false;
	//texture_options->set_format(EditorImport::IMAGE_FORMAT_C);

}
Example #30
0
void register_core_settings() {
	//since in register core types, globals may not e present
	GLOBAL_DEF("network/limits/packet_peer_stream/max_buffer_po2", (16));
}