X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Foverlay%2Foverlay.C;h=ae9087815b7a664b7b592602f7e14bc95dcac9da;hb=b2dd11566e4788acc8d38bdfbc20c8d5772106e5;hp=8c0322050dcf98fc3e92356399186d49e2d54da8;hpb=9fed7535470aa37781733db836068da3b4c17a0d;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/overlay/overlay.C b/cinelerra-5.1/plugins/overlay/overlay.C index 8c032205..ae908781 100644 --- a/cinelerra-5.1/plugins/overlay/overlay.C +++ b/cinelerra-5.1/plugins/overlay/overlay.C @@ -183,12 +183,7 @@ const char* OverlayConfig::output_to_text(int output_layer) OverlayWindow::OverlayWindow(Overlay *plugin) - : PluginClientWindow(plugin, - 300, - 160, - 300, - 160, - 0) + : PluginClientWindow(plugin, xS(300), yS(100), xS(300), yS(100), 0) { this->plugin = plugin; } @@ -199,26 +194,28 @@ OverlayWindow::~OverlayWindow() void OverlayWindow::create_objects() { - int x = 10, y = 10; + int xs5 = xS(5), xs10 = xS(10); + int ys10 = yS(10), ys30 = yS(30); + int x = xs10, y = ys10; BC_Title *title; add_subwindow(title = new BC_Title(x, y, _("Mode:"))); add_subwindow(mode = new OverlayMode(plugin, - x + title->get_w() + 5, + x + title->get_w() + xs5, y)); mode->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Layer order:"))); add_subwindow(direction = new OverlayDirection(plugin, - x + title->get_w() + 5, + x + title->get_w() + xs5, y)); direction->create_objects(); - y += 30; + y += ys30; add_subwindow(title = new BC_Title(x, y, _("Output layer:"))); add_subwindow(output = new OverlayOutput(plugin, - x + title->get_w() + 5, + x + title->get_w() + xs5, y)); output->create_objects(); @@ -233,7 +230,7 @@ void OverlayWindow::create_objects() OverlayMode::OverlayMode(Overlay *plugin, int x, int y) - : BC_PopupMenu(x, y, 150, + : BC_PopupMenu(x, y, xS(150), OverlayConfig::mode_to_text(plugin->config.mode), 1) { this->plugin = plugin; @@ -266,9 +263,7 @@ int OverlayMode::handle_event() OverlayDirection::OverlayDirection(Overlay *plugin, int x, int y) - : BC_PopupMenu(x, - y, - 150, + : BC_PopupMenu(x, y, xS(150), OverlayConfig::direction_to_text(plugin->config.direction), 1) { @@ -307,9 +302,7 @@ int OverlayDirection::handle_event() OverlayOutput::OverlayOutput(Overlay *plugin, int x, int y) - : BC_PopupMenu(x, - y, - 100, + : BC_PopupMenu(x, y, xS(100), OverlayConfig::output_to_text(plugin->config.output_layer), 1) { @@ -485,20 +478,12 @@ int Overlay::handle_opengl() #undef TWO #define TWO 2.0 -static const char *blend_NORMAL_frag = - " vec4 result = mix(src_color, src_color, src_color.a);\n"; - -static const char *blend_ADDITION_frag = - " vec4 result = dst_color + src_color;\n" - " result = clamp(result, 0.0, 1.0);\n"; - -static const char *blend_SUBTRACT_frag = - " vec4 result = dst_color - src_color;\n" - " result = clamp(result, 0.0, 1.0);\n"; - static const char *blend_REPLACE_frag = " vec4 result = src_color;\n"; +GL_VEC_FRAG(NORMAL); +GL_VEC_FRAG(ADDITION); +GL_VEC_FRAG(SUBTRACT); GL_STD_FRAG(MULTIPLY); GL_VEC_FRAG(DIVIDE); GL_VEC_FRAG(MAX); @@ -572,21 +557,6 @@ static const char * const overlay_shaders[TRANSFER_TYPES] = { dst->init_screen(); src->draw_texture(); break; - case TRANSFER_NORMAL: -// Move destination to screen - if( dst->get_opengl_state() != VFrame::SCREEN ) { - dst->to_texture(); - dst->enable_opengl(); - dst->init_screen(); - dst->draw_texture(); - } - src->to_texture(); - dst->enable_opengl(); - dst->init_screen(); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - src->draw_texture(); - break; default: src->to_texture(); dst->to_texture();