Quantcast
Channel: bugs, errors - openFrameworks
Viewing all articles
Browse latest Browse all 636

Shaders keep throwing weird error

$
0
0

I tried to create a simple box blur shader applied to a photo. When running the code, I keep getting this error:

[ error ] ofShader: setupShaderFromSource(): GL_FRAGMENT_SHADER shader failed to compile
[ error ] ofShader: GL_FRAGMENT_SHADER shader reports:
0:5(18): error: syntax error, unexpected NEW_IDENTIFIER, expecting '{'

[ error ] ofShader: GL_FRAGMENT_SHADER, offending line 18:
	  16	   color += texture(tex0, texCoordVarying + vec2(-1.0, -2.0));
	  17	   color += texture(tex0, texCoordVarying + vec2(0.0, -2.0));
	  18	   color += texture(tex0, texCoordVarying + vec2(1.0, -2.0));
	  19	   color += texture(tex0, texCoordVarying + vec2(2.0, -2.0));
	  20	   color += texture(tex0, texCoordVarying + vec2(-2.0, -1.0));

[ error ] ofShader: checkProgramLinkStatus(): program failed to link
[ error ] ofShader: ofShader: program reports:
error: linking with uncompiled/unspecialized shader

This keeps happening, although I tried to change the version of the shader (from version 150 to version 420), and use the latest OpenGL version (by using setGLVersion(4,2)). Anyone know what happened?

Here is the code I wrote:
File main.cpp

#include "ofMain.h"
#include "ofApp.h"

//========================================================================
int main( ){

        //Use ofGLFWWindowSettings for more options like multi-monitor fullscreen
        ofGLWindowSettings settings;
        settings.setSize(1024, 768);
    settings.setGLVersion(4, 2);
        settings.windowMode = OF_WINDOW; //can also be OF_FULLSCREEN

        auto window = ofCreateWindow(settings);

        ofRunApp(window, make_shared<ofApp>());
        ofRunMainLoop();

}

File ofApp.cpp

#include "ofApp.h"

//--------------------------------------------------------------
void ofApp::setup(){
    image.load("photo/model_1366.png");
    fboBlur.allocate(image.getWidth(), image.getHeight());
    shader.load("shaderGL3/boxblur");
}

//--------------------------------------------------------------
void ofApp::update(){
    //
}

//--------------------------------------------------------------
void ofApp::draw(){
    fboBlur.begin();

    shader.begin();
    image.draw(0, 0);
    shader.end();

    fboBlur.end();

    fboBlur.draw(0, 0);
}

File shaderGL3/boxblur.frag

// OF_GLSL_SHADER_HEADER
#version 420

uniform sample2D tex0;

in vec2 texCoordVarying;
out vec4 outputColor;

void main() {
    vec4 color = vec4(0.0);

    // dear fucking god, why?
    
    color += texture(tex0, texCoordVarying + vec2(-2.0, -2.0));
    color += texture(tex0, texCoordVarying + vec2(-1.0, -2.0));
    color += texture(tex0, texCoordVarying + vec2(0.0, -2.0));
    color += texture(tex0, texCoordVarying + vec2(1.0, -2.0));
    color += texture(tex0, texCoordVarying + vec2(2.0, -2.0));
    color += texture(tex0, texCoordVarying + vec2(-2.0, -1.0));
    color += texture(tex0, texCoordVarying + vec2(-1.0, -1.0));
    color += texture(tex0, texCoordVarying + vec2(0.0, -1.0));
    color += texture(tex0, texCoordVarying + vec2(1.0, -1.0));
    color += texture(tex0, texCoordVarying + vec2(2.0, -1.0));
    color += texture(tex0, texCoordVarying + vec2(-2.0, 0.0));
    color += texture(tex0, texCoordVarying + vec2(-1.0, 0.0));
    color += texture(tex0, texCoordVarying + vec2(0.0, 0.0));
    color += texture(tex0, texCoordVarying + vec2(1.0, 0.0));
    color += texture(tex0, texCoordVarying + vec2(2.0, 0.0));
    color += texture(tex0, texCoordVarying + vec2(-2.0, 1.0));
    color += texture(tex0, texCoordVarying + vec2(-1.0, 1.0));
    color += texture(tex0, texCoordVarying + vec2(0.0, 1.0));
    color += texture(tex0, texCoordVarying + vec2(1.0, 1.0));
    color += texture(tex0, texCoordVarying + vec2(2.0, 1.0));
    color += texture(tex0, texCoordVarying + vec2(-2.0, 2.0));
    color += texture(tex0, texCoordVarying + vec2(-1.0, 2.0));
    color += texture(tex0, texCoordVarying + vec2(0.0, 2.0));
    color += texture(tex0, texCoordVarying + vec2(1.0, 2.0));
    color += texture(tex0, texCoordVarying + vec2(2.0, 2.0));
  
    outputColor = color / 25.0;
}

3 posts - 2 participants

Read full topic


Viewing all articles
Browse latest Browse all 636

Trending Articles