コード例 #1
0
ファイル: lv_video.c プロジェクト: Starlon/LibVisualAndroid
VisVideo *visual_video_new ()
{
	VisVideo *video;

	video = visual_mem_new0 (VisVideo, 1);

	visual_video_init (video);

	/* Do the VisObject initialization */
	visual_object_set_allocated (VISUAL_OBJECT (video), TRUE);
	visual_object_ref (VISUAL_OBJECT (video));

	return video;
}
コード例 #2
0
ファイル: nebulus.c プロジェクト: Libvisual/LibVisualAndroid
/* Main plugin stuff */
const VisPluginInfo *get_plugin_info (void)
{
	static VisActorPlugin actor = {
		.requisition = lv_nebulus_requisition,
		.palette = lv_nebulus_palette,
		.render = lv_nebulus_render,
		.vidoptions.depth = VISUAL_VIDEO_DEPTH_GL
	};

	static VisPluginInfo info = {
		.type = VISUAL_PLUGIN_TYPE_ACTOR,

		.plugname = "nebulus",
		.name = "Nebulus",
		.author = N_("Original by: Pascal Brochart <*****@*****.**> and many others, Port and maintaince by: Dennis Smit <*****@*****.**>"),
		.version = "1.0",
		.about = N_("Libvisual nebulus plugin"),
		.help = N_("This plugin shows multiple visual effect using openGL"),
		.license = VISUAL_PLUGIN_LICENSE_GPL,

		.init = lv_nebulus_init,
		.cleanup = lv_nebulus_cleanup,
		.events = lv_nebulus_events,

		.plugin = VISUAL_OBJECT (&actor)
	};

	VISUAL_VIDEO_ATTR_OPTIONS_GL_ENTRY(actor.vidoptions, VISUAL_GL_ATTRIBUTE_RED_SIZE, 5);
	VISUAL_VIDEO_ATTR_OPTIONS_GL_ENTRY(actor.vidoptions, VISUAL_GL_ATTRIBUTE_GREEN_SIZE, 5);
	VISUAL_VIDEO_ATTR_OPTIONS_GL_ENTRY(actor.vidoptions, VISUAL_GL_ATTRIBUTE_BLUE_SIZE, 5);
	VISUAL_VIDEO_ATTR_OPTIONS_GL_ENTRY(actor.vidoptions, VISUAL_GL_ATTRIBUTE_DEPTH_SIZE, 16);
	VISUAL_VIDEO_ATTR_OPTIONS_GL_ENTRY(actor.vidoptions, VISUAL_GL_ATTRIBUTE_DOUBLEBUFFER, 1);
	VISUAL_VIDEO_ATTR_OPTIONS_GL_ENTRY(actor.vidoptions, VISUAL_GL_ATTRIBUTE_RGBA, 1);

	return &info;
}

static int lv_nebulus_init (VisPluginData *plugin)
{
	NebulusPrivate *priv;

#if ENABLE_NLS
	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
#endif

	visual_return_val_if_fail (plugin != NULL, -1);

	priv = visual_mem_new0 (NebulusPrivate, 1);
	visual_object_set_private (VISUAL_OBJECT (plugin), priv);

	glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxtexsize);
	if (maxtexsize < 256) {
		visual_log (VISUAL_LOG_CRITICAL, _("Nebulus: max texture size is lower than 256"));
		return -1;
	}

	if (tunnel_first)
		precalculate_tunnel();

	priv->pcmbuf = visual_buffer_new_allocate (1024 * sizeof (float));

	visual_video_init (&child_image);
	visual_video_init (&energy_image);
	visual_video_init (&tentacle_image);
	visual_video_init (&tunnel_image);
	visual_video_init (&twist_image);
	visual_video_init (&background_image);

	init_gl();

	return 0;
}