All pastes #283483 Raw Edit

Untitled

public c v1 · immutable
#283483 ·published 2006-12-18 11:15 UTC
rendered paste body
        const char *code =          "uniform sampler2D ytex, utex, vtex;\n"          "void main(void) {\n"          "  float r, g, b, y, u, v;\n"          "  y = texture2D(ytex, gl_TexCoord[0].st).r;\n"          "  u = texture2D(utex, gl_TexCoord[0].st).r;\n"          "  v = texture2D(vtex, gl_TexCoord[0].st).r;\n"          "  y = (y - 0.0625) * 1.164;\n"          "  u = u - 0.5;\n"          "  v = v - 0.5;\n"                    "  r = y + (1.402   * v);\n"          "  g = y - (0.34414 * u) - (0.71414 * v);\n"          "  b = y + (1.772   * u);\n"                    "  gl_FragColor = vec4(r, g, b, 1.0);\n"          "}\n";        glShaderSourceARB(fshad, 1, &code, NULL);   glCompileShaderARB(fshad);   glAttachObjectARB(tex->prog, fshad);   glLinkProgramARB(tex->prog);      glEnable(GL_TEXTURE_2D);   texfmt = GL_LUMINANCE;   glGenTextures(1, &(tex->texture));   glUniform1iARB(glGetUniformLocationARB(tex->prog, "ytex", 0));   glBindTexture(GL_TEXTURE_2D, tex->texture);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);   glTexImage2D(GL_TEXTURE_2D, 0,                texfmt, tw, th, 0,                texfmt, GL_UNSIGNED_BYTE, rows[0]);   glGenTextures(1, &(tex->texture2));   glUniform1iARB(glGetUniformLocationARB(tex->prog, "utex", 1));   glBindTexture(GL_TEXTURE_2D, tex->texture2);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);   glTexImage2D(GL_TEXTURE_2D, 0,                texfmt, tw / 2, th / 2, 0,                texfmt, GL_UNSIGNED_BYTE, rows[th]);   glGenTextures(1, &(tex->texture3));   glUniform1iARB(glGetUniformLocationARB(tex->prog, "vtex", 2));   glBindTexture(GL_TEXTURE_2D, tex->texture3);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);   glTexImage2D(GL_TEXTURE_2D, 0,                texfmt, tw / 2, th / 2, 0,                texfmt, GL_UNSIGNED_BYTE, rows[th + (th / 2)]);