- Commit mañanero per tindre en el curro 4 cosetes que vaig provar ahir
This commit is contained in:
24
jshader.cpp
24
jshader.cpp
@@ -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, ¶m);
|
||||||
|
//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); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user