X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=init.cpp;h=13a86df236d5ea909dc269c8f8af827e1b7b5a35;hp=b7604e4333979bcd2faa3b06f9bb46864bee8db6;hb=c2371eea5dadf97add7c1a71b8ea660973c9c6de;hpb=d398770154ecc4bc95282dc45656789dd5686309 diff --git a/init.cpp b/init.cpp index b7604e4..13a86df 100644 --- a/init.cpp +++ b/init.cpp @@ -58,13 +58,13 @@ void measure_texel_subpixel_precision() float texdata[] = { 0, 1 }; glGenTextures(1, &src_texnum); check_error(); - glBindTexture(GL_TEXTURE_1D, src_texnum); + glBindTexture(GL_TEXTURE_2D, src_texnum); check_error(); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); check_error(); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); check_error(); - glTexImage1D(GL_TEXTURE_1D, 0, GL_LUMINANCE16F_ARB, 2, 0, GL_LUMINANCE, GL_FLOAT, texdata); + glTexImage2D(GL_TEXTURE_2D, 0, GL_R16F, 2, 1, 0, GL_RED, GL_FLOAT, texdata); check_error(); // Basic state. @@ -81,7 +81,7 @@ void measure_texel_subpixel_precision() read_file("vs.vert"), read_file("texture1d.frag")); glUseProgram(glsl_program_num); check_error(); - glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 1D sampler. + glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 2D sampler. check_error(); // Draw the texture stretched over a long quad, interpolating it out. @@ -89,16 +89,16 @@ void measure_texel_subpixel_precision() // texture coordinates in order not to get long stretches of (1,1,1,...) // at the start and (...,0,0,0) at the end. float vertices[] = { + 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f + 1.0f, 0.0f }; float texcoords[] = { + 0.25f, 0.0f, 0.25f, 0.0f, 0.75f, 0.0f, - 0.75f, 0.0f, - 0.25f, 0.0f + 0.75f, 0.0f }; GLuint vao; @@ -110,7 +110,7 @@ void measure_texel_subpixel_precision() GLuint position_vbo = fill_vertex_attribute(glsl_program_num, "position", 2, GL_FLOAT, sizeof(vertices), vertices); GLuint texcoord_vbo = fill_vertex_attribute(glsl_program_num, "texcoord", 2, GL_FLOAT, sizeof(texcoords), texcoords); - glDrawArrays(GL_QUADS, 0, 4); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); check_error(); cleanup_vertex_attribute(glsl_program_num, "position", position_vbo); @@ -136,7 +136,7 @@ void measure_texel_subpixel_precision() movit_texel_subpixel_precision = biggest_jump; // Clean up. - glBindTexture(GL_TEXTURE_1D, 0); + glBindTexture(GL_TEXTURE_2D, 0); check_error(); glBindFramebuffer(GL_FRAMEBUFFER, 0); check_error(); @@ -189,13 +189,13 @@ void measure_roundoff_problems() } glGenTextures(1, &src_texnum); check_error(); - glBindTexture(GL_TEXTURE_1D, src_texnum); + glBindTexture(GL_TEXTURE_2D, src_texnum); check_error(); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); check_error(); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); check_error(); - glTexImage1D(GL_TEXTURE_1D, 0, GL_LUMINANCE32F_ARB, 512, 0, GL_LUMINANCE, GL_FLOAT, texdata); + glTexImage2D(GL_TEXTURE_2D, 0, GL_R32F, 512, 1, 0, GL_RED, GL_FLOAT, texdata); check_error(); // Basic state. @@ -212,20 +212,14 @@ void measure_roundoff_problems() read_file("vs.vert"), read_file("texture1d.frag")); glUseProgram(glsl_program_num); check_error(); - glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 1D sampler. + glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 2D sampler. // Draw the texture stretched over a long quad, interpolating it out. float vertices[] = { + 0.0f, 1.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 1.0f, 1.0f, - 0.0f, 1.0f - }; - float texcoords[] = { - 0.25f, 0.0f, - 0.75f, 0.0f, - 0.75f, 0.0f, - 0.25f, 0.0f + 1.0f, 0.0f }; GLuint vao; @@ -235,9 +229,9 @@ void measure_roundoff_problems() check_error(); GLuint position_vbo = fill_vertex_attribute(glsl_program_num, "position", 2, GL_FLOAT, sizeof(vertices), vertices); - GLuint texcoord_vbo = fill_vertex_attribute(glsl_program_num, "texcoord", 2, GL_FLOAT, sizeof(texcoords), texcoords); + GLuint texcoord_vbo = fill_vertex_attribute(glsl_program_num, "texcoord", 2, GL_FLOAT, sizeof(vertices), vertices); // Same data. - glDrawArrays(GL_QUADS, 0, 4); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); check_error(); cleanup_vertex_attribute(glsl_program_num, "position", position_vbo); @@ -265,7 +259,7 @@ void measure_roundoff_problems() movit_num_wrongly_rounded = wrongly_rounded; // Clean up. - glBindTexture(GL_TEXTURE_1D, 0); + glBindTexture(GL_TEXTURE_2D, 0); check_error(); glBindFramebuffer(GL_FRAMEBUFFER, 0); check_error();