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;
}
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();
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;
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)
{
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)
{
#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);
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();