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; }
/* 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; }