Hey, here is my code adapted from imageLoaderExample, just slightly modified to accomodate (what should be) a simple passthrough texture shader. I only get a black rectangle, can someone tell me what I did wrong ?
testApp.cpp
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
bikers.loadImage("images/bikers.jpg"); //Replaced it with something 512x512
gears.loadImage("images/gears.gif");
tdf.loadImage("images/tdf_1972_poster.jpg");
tdfSmall.loadImage("images/tdf_1972_poster.jpg");
tdfSmall.resize(tdfSmall.width / 4, tdfSmall.height / 4);
tdfSmall.setImageType(OF_IMAGE_GRAYSCALE);
transparency.loadImage("images/transparency.png");
bikeIcon.loadImage("images/bike_icon.png");
bikeIcon.setImageType(OF_IMAGE_GRAYSCALE);
myShader.load("textureShader");
}
//--------------------------------------------------------------
void testApp::update(){
ofBackground(255);
}
//--------------------------------------------------------------
void testApp::draw(){
ofSetColor(255);
bikers.bind();
myShader.begin();
myShader.setUniformTexture("inputTexture", bikers.getTextureReference(), bikers.getTextureReference().getTextureData().textureID);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f(0,0,0);
glTexCoord2f(512,0); glVertex3f(512,0,0);
glTexCoord2f(512,512); glVertex3f(512,512,0);
glTexCoord2f(0,512); glVertex3f(0,512,0);
glEnd();
myShader.end();
bikers.unbind();
}
textureShader.frag
//#version 120
#extension GL_ARB_texture_rectangle : enable
varying vec2 texCoord;
uniform sampler2D inputTexture;
void main()
{
gl_FragColor = texture2D(inputTexture, texCoord);
}
textureShader.vert
#version 120
varying vec2 texCoord;
void main()
{
texCoord = vec2(gl_MultiTexCoord0);
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}