OpenFrameworks中的透明背景窗口

时间:2015-03-23 14:44:31

标签: c++ opengl window glut openframeworks

我正在尝试创建一个隐藏覆盖,捕获触摸事件(负责使用oscpack发送数据包)。因此,我需要创建一个透明的全屏窗口。 (如果交叉兼容性有问题,编辑:win32会很好)

official documentation中,ofBackground似乎接受Alpha混合,但当我编写ofBackground(0, 255, 0, 10);并运行项目时,窗口不透明。 我也尝试使用ofEnableAlphaBlending();,但结果是一样的。 (我认为它只能为新绘制的东西进行alpha混合)

我试图挖掘更多,我在这个方法中找到了一点评论:

ofAppGlutWindow::setupOpenGL(int w, int h, int screenMode)
{
//code
}

/*
    ofBackground(200,200,200);      // default bg color
            ofSetColor(0xFFFFFF);           // default draw color
            // used to be black, but
            // black + texture = black
            // so maybe grey bg
            // and "white" fg color
            // as default works the best...
            */

这对我来说没有像我最初想的那样帮助我,我仍然被卡住了。

1 个答案:

答案 0 :(得分:2)

您无法直接使用openFrameworks执行此操作。您需要创建具有透明背景的OpenGL上下文。这很难做到,我不知道你是否可以将它与oF集成,但你可以测试this

但是,如果您使用的是OSX,则会出现以下插件:ofxTransparentWindow

一个肮脏的技巧是获取桌面图像并将其作为背景添加到你的ofApp中。