#include "../../HEADERS/EFFECTS/Screen.h" extern "C" { #include "../../GLES_3_1_compatibility.h" #include } #include #include "../../HEADERS/UTILS/ShaderMaker.h" Screen::Screen(int left, int top, int width, int height) : PseudoContext{ left, top, width, height } { glGenVertexArrays(1, &quadVAO); glBindVertexArray(quadVAO); glGenBuffers(1, &vertVBO); glBindBuffer(GL_ARRAY_BUFFER, vertVBO); glBufferData(GL_ARRAY_BUFFER, sizeof(quadVerts), quadVerts, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float)/**/,(void*) 0); glEnableVertexAttribArray(0); string root = "C:\\Users\\BoBoBoat\\Desktop\\SCUOLA\\CGI\\GL_STUFF\\GL_STUFF\\SOURCES\\EFFECTS\\SCREEN"; string vertSh = root + "\\vertexShader_2.glsl"; string fragSh = root + "\\fragmentShader_2.glsl"; program2 = ShaderMaker::createProgram(&vertSh[0], &fragSh[0]); shaderTexId = glGetUniformLocation(program2, "inTex"); } void Screen::setInputTexture(GLuint inputTex) { inputTexture = inputTex; } void Screen::draw() { glBindFramebuffer(GL_FRAMEBUFFER, 0); //glViewport(left, top, width, height); //gluOrtho2D(0, width, height, 0); glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(program2); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, inputTexture); glUniform1i(shaderTexId, 0); glBindVertexArray(quadVAO); glDrawArrays(GL_TRIANGLES, 0, 6); glBindVertexArray(0); glutSwapBuffers(); }