- Commit mañanero per tindre en el curro 4 cosetes que vaig provar ahir

This commit is contained in:
2025-06-11 07:19:49 +02:00
parent 2a9d714295
commit b3fcbc1843

View File

@@ -26,6 +26,7 @@ namespace shader
SDL_FPoint tex_size = {320, 240}; SDL_FPoint tex_size = {320, 240};
bool usingOpenGL; bool usingOpenGL;
GLuint texture_number; GLuint texture_number;
GLuint nose;
#ifndef __APPLE__ #ifndef __APPLE__
@@ -144,7 +145,11 @@ namespace shader
printf("tex size: %fx%f\n", tex_size.x, tex_size.y); printf("tex size: %fx%f\n", tex_size.x, tex_size.y);
SDL_PropertiesID props = SDL_GetTextureProperties(backBuffer); SDL_PropertiesID props = SDL_GetTextureProperties(backBuffer);
texture_number = SDL_GetNumberProperty(props, SDL_PROP_TEXTURE_OPENGL_TEXTURE_NUMBER, -1); 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); 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) if (access != SDL_TEXTUREACCESS_TARGET)
{ {
std::cout << "ERROR FATAL: La textura per al render ha de tindre SDL_TEXTUREACCESS_TARGET definit." << std::endl; 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; return true;
} }
unsigned char pixels[512*240*4];
void render() void render()
{ {
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); SDL_FlushRenderer(renderer);
SDL_SetRenderTarget(renderer, NULL); SDL_SetRenderTarget(renderer, NULL);
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer); SDL_RenderClear(renderer);
SDL_FlushRenderer(renderer);
if (usingOpenGL) if (usingOpenGL)
{ {
glBindTexture(GL_TEXTURE_2D, texture_number);
GLint oldProgramId; GLint oldProgramId;
if (programId != 0) if (programId != 0)
{ {
glGetIntegerv(GL_CURRENT_PROGRAM, &oldProgramId); glGetIntegerv(GL_CURRENT_PROGRAM, &oldProgramId);
glUseProgram(programId); 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, &param);
//printf("tex width: %i\n", param);
glViewport(0, 0, win_size.x, win_size.y); glViewport(0, 0, win_size.x, win_size.y);
glBegin(GL_TRIANGLE_STRIP); glBegin(GL_TRIANGLE_STRIP);
@@ -211,5 +226,6 @@ namespace shader
SDL_RenderTexture(renderer, backBuffer, NULL, NULL); SDL_RenderTexture(renderer, backBuffer, NULL, NULL);
SDL_RenderPresent(renderer); SDL_RenderPresent(renderer);
} }
if (glGetError()) { printf("GLERROR!\n"); exit(1); }
} }
} }