Quantcast
Channel: beginners - openFrameworks
Viewing all articles
Browse latest Browse all 4929

ofGLESWindowSettings | ofShader | OfxGStreamer

$
0
0

@novas_fronteiras wrote:

hi!

i’m trying to use ofShader with OfxGStreamer but with no success.
later i used shaders with ofGLFWWindowSettings and ofVideoPlayer and worked fine, but the performance was much low with fps alternation.

now, with GStreamer addon, the performance is great, but i get errors when using ofGLFWWindowSettings or ofGLWindowSettings such as:

[ error ] ofShader: setupShaderFromSource(): GL_VERTEX_SHADER shader failed to compile
ERROR: 0:12: ‘’ : #version required and missing.
ERROR: 0:12: ‘varying’ : syntax error: syntax error
[ error ] ofShader: setupShaderFromSource(): GL_FRAGMENT_SHADER shader failed to compile

taking a look at some examples and others code, i tried to use ofGLESWindowSettings and this is the one that i could see positive responses, such as:

[verbose] ofShader: checkAndCreateProgram(): creating GLSL program
[verbose] ofShader: setupShaderFromSource(): GL_VERTEX_SHADER shader compiled
[verbose] ofShader: setupShaderFromSource(): GL_FRAGMENT_SHADER shader compiled
[verbose] ofShader: linkProgram(): attaching GL_FRAGMENT_SHADER shader to program 1
[verbose] ofShader: linkProgram(): attaching GL_VERTEX_SHADER shader to program 1

on this case the video is flickering and there are no returning from shaders commands. and now i really dont know how to fix that
i will try to sum up the code below:

main.cpp


int main( ){
    ofSetLogLevel(OF_LOG_VERBOSE);
    int windowWidth = 1920;
    int windowHeight = 1080;

#ifdef TARGET_OPENGLES
    ofGLESWindowSettings settings;
    settings.width = windowWidth;
    settings.height = windowHeight;
    settings.setGLESVersion(2);
    ofCreateWindow(settings);
#else
    ofSetupOpenGL(windowWidth, windowHeight, OF_WINDOW);
#endif

    ofRunApp( new ofApp());
}

ofApp.h

        // [...]
        ofVideoPlayer player;
        ofShader shader;
        bool doShader;
        ofxToggle doShaderT;
        // [...]

ofApp.cpp

//--------------------------------------------------------------
#include "ofGstVideoPlayer.h"

void ofApp::setup(){
      // [...]
      player.setPlayer(ofPtr<ofGstVideoPlayer>(new ofGstVideoPlayer));
      player.load("videos/test.mov");
      player.play();
      // [...]
      shader.load("shaders/brcosa_GLSL");
      doShader = true;
}
//--------------------------------------------------------------
void ofApp::update(){
    player.update();
    player.setSpeed(speed);
    player.isFrameNew();
    if(doShaderT){
        doShader = !doShader;
    }
    // [...]
}
//--------------------------------------------------------------
void ofApp::draw(){
    fbo.begin();
    ofClear(0,0,0,255);
    
     if( doShader ){
        player.getTexture().bind();
        shader.begin();
        shader.setUniformTexture("tex0", player.getTexture(), 0);
        shader.setUniform1f("saturation", saturacao);
        shader.setUniform1f("contrast", contraste);
        shader.setUniform1f("brightness", brilho);
     }
     player.draw(-player.getWidth()/2, -player.getHeight()/2);
     if( doShader ){
        shader.end();
        player.getTexture().unbind();
     }

     fbo.end();
    
    ofSetColor(255);
    fbo.draw(0,0,1920,1080);
     // [...]
}

OF 10.1
XCode 9.4.1
macOS Mojave

hope someone can help me with some new ideas!
thank you!!

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 4929

Trending Articles