Exemple #1
0
Screen* meh_screen_starting_new(App* app) {
	g_assert(app != NULL);

	Screen* screen = meh_screen_new(app->window);

	screen->name = g_strdup("Starting screen");
	screen->messages_handler = &meh_screen_starting_messages_handler;
	screen->destroy_data = &meh_screen_starting_destroy_data;

	/*
	 * Custom data
	 */
	StartingData* data = g_new(StartingData, 1);

	/* Splashscreen */
	gchar* tmp = g_strdup_printf("%s/splashscreen.png", app->res_dir);
	data->splash_texture = meh_image_load_file(app->window->sdl_renderer, tmp);
	g_free(tmp);
	tmp = NULL;

	data->splash = meh_widget_image_new(data->splash_texture, 0, 0, MEH_FAKE_WIDTH, MEH_FAKE_HEIGHT);
	data->done = FALSE;

	screen->data = data;

	return screen;
}
Exemple #2
0
Screen* meh_screen_launch_new(App* app, Screen* src_screen, Platform* platform, Executable* executable,
															WidgetImage* src_widget) {
	g_assert(app != NULL);
	g_assert(src_screen != NULL);
	g_assert(platform != NULL);
	g_assert(executable != NULL);

	Screen* screen = meh_screen_new(app->window);

	screen->name = g_strdup("Launch screen");
	screen->messages_handler = &meh_screen_launch_messages_handler;
	screen->destroy_data = &meh_screen_launch_destroy_data;

	/*
	 * custom data
	 */
	LaunchData* data = g_new(LaunchData, 1);

	data->src_screen = src_screen;
	data->image_widget = NULL;
	data->executable = executable;
	data->platform = platform;
	data->src_widget = src_widget;
	data->zoom_logo = FALSE;

	/* fading rect */
	SDL_Color black = { 0, 0, 0 ,0 };
	data->fade_widget = meh_widget_rect_new(0, 0, MEH_FAKE_WIDTH, MEH_FAKE_HEIGHT, black, TRUE);
	data->fade_widget->a = meh_transition_start(MEH_TRANSITION_LINEAR, 1, 254, app->settings.fade_duration*4);
	meh_screen_add_rect_transitions(screen, data->fade_widget);

	if (app->settings.zoom_logo && src_widget != NULL) {
		/* cover image */
		data->image_widget = meh_widget_image_new(
									src_widget->texture,
									src_widget->x.value,
									src_widget->y.value,
									src_widget->h.value,
									src_widget->w.value);

		/* starts the cover transitions */
		data->image_widget->x = meh_transition_start(MEH_TRANSITION_CUBIC, src_widget->x.value, -(MEH_FAKE_WIDTH), app->settings.fade_duration*4);
		data->image_widget->y = meh_transition_start(MEH_TRANSITION_CUBIC, src_widget->y.value, -(MEH_FAKE_HEIGHT), app->settings.fade_duration*4);
		data->image_widget->w = meh_transition_start(MEH_TRANSITION_CUBIC, src_widget->w.value, MEH_FAKE_WIDTH*3, app->settings.fade_duration*4);
		data->image_widget->h = meh_transition_start(MEH_TRANSITION_CUBIC, src_widget->h.value, MEH_FAKE_HEIGHT*3, app->settings.fade_duration*4);
		meh_screen_add_image_transitions(screen, data->image_widget);

		data->zoom_logo = TRUE;
	}

	screen->data = data;

	return screen;
}
Exemple #3
0
/*
 * meh_widget_video_new allocates a new widget video.
 * and prepares its internal texture.
 */
WidgetVideo* meh_widget_video_new(Window* window, gchar* filename, float x, float y, float w, float h) {
	/* create the embedded image widget */
	WidgetImage* i = meh_widget_image_new(NULL, x, y, w, h);

	WidgetVideo* v = g_new(WidgetVideo, 1);

	v->video = NULL;
	v->w_image = i;

	meh_widget_video_set(window, v, filename);

	return v;
}