diff --git a/jshader.cpp b/jshader.cpp index 4fc2a7e..36e240a 100644 --- a/jshader.cpp +++ b/jshader.cpp @@ -26,6 +26,7 @@ namespace shader SDL_FPoint tex_size = {320, 240}; bool usingOpenGL; GLuint texture_number; + GLuint nose; #ifndef __APPLE__ @@ -144,7 +145,11 @@ namespace shader printf("tex size: %fx%f\n", tex_size.x, tex_size.y); SDL_PropertiesID props = SDL_GetTextureProperties(backBuffer); texture_number = SDL_GetNumberProperty(props, SDL_PROP_TEXTURE_OPENGL_TEXTURE_NUMBER, -1); + printf("texture number: %i\n", texture_number); int access = SDL_GetNumberProperty(props, SDL_PROP_TEXTURE_ACCESS_NUMBER, -1); + nose = SDL_GetNumberProperty(props, SDL_PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER, -1); + printf("texture target number: %i\n", nose); + if (access != SDL_TEXTUREACCESS_TARGET) { std::cout << "ERROR FATAL: La textura per al render ha de tindre SDL_TEXTUREACCESS_TARGET definit." << std::endl; @@ -173,23 +178,33 @@ namespace shader return true; } + unsigned char pixels[512*240*4]; + void render() { - SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_FlushRenderer(renderer); SDL_SetRenderTarget(renderer, NULL); + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); SDL_RenderClear(renderer); + SDL_FlushRenderer(renderer); if (usingOpenGL) { - glBindTexture(GL_TEXTURE_2D, texture_number); - GLint oldProgramId; if (programId != 0) { glGetIntegerv(GL_CURRENT_PROGRAM, &oldProgramId); glUseProgram(programId); } - + + glEnable(GL_TEXTURE_2D); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, 1); + //glGetTexImage(GL_TEXTURE_2D, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8, pixels); + //if (glGetError()) { printf("GLGETERROR!\n"); exit(1);} + //GLint param; + //glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, ¶m); + //printf("tex width: %i\n", param); glViewport(0, 0, win_size.x, win_size.y); glBegin(GL_TRIANGLE_STRIP); @@ -211,5 +226,6 @@ namespace shader SDL_RenderTexture(renderer, backBuffer, NULL, NULL); SDL_RenderPresent(renderer); } + if (glGetError()) { printf("GLERROR!\n"); exit(1); } } }