elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (Ayuda) Error al cargar BMP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Ayuda) Error al cargar BMP  (Leído 2,486 veces)
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
(Ayuda) Error al cargar BMP
« en: 17 Mayo 2015, 22:34 pm »

Hola, muy buenas a tod@s. Hoy tengo una duda sobre como cargar BMP en la RAM para pasarsela a OpenGL. Bueno, se podría decir que casi lo consigo, pero no!. Mejor vean por ustedes mismos el resultado, y a ver si alguien ve el error...

Código
  1. TEXTURE::TEXTURE(const char *path) {
  2. unsigned char header[54];
  3. unsigned int dataPos;
  4. unsigned int width, height, size;
  5. unsigned char *data;
  6. FILE *filePointer = fopen(path, "rb");
  7.  
  8. if(filePointer == NULL)
  9. printf_s("Error openning image file at '%s'!", path);
  10.  
  11. if(!fread(header, 1, 54, filePointer))
  12. printf_s("Error, file at '%s' isn't a real BMP file.", path);
  13.  
  14. if(header[0] != 'B' || header[1] != 'M')
  15. printf_s("Error, file at '%s' isn't a real BMP file.", path);
  16.  
  17. dataPos = *(int *)&header[0x0A];
  18. size    = *(int *)&header[0x22];
  19. width   = *(int *)&header[0x12];
  20. height  = *(int *)&header[0x16];
  21.  
  22. if(!size)
  23. size = width * height * 3;
  24.  
  25. if(!dataPos)
  26. dataPos = 54;
  27.  
  28. data = new unsigned char[size];
  29. fread(data, 1, size, filePointer);
  30.  
  31. fclose(filePointer);
  32.  
  33. glGenTextures(1, &texID);
  34.  
  35. glBindTexture(GL_TEXTURE_2D, texID);
  36.  
  37. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  38. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  39. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
  40.  
  41. glBindTexture(GL_TEXTURE_2D, 0);
  42. }

Resultado:


Imagen original:


Código del Vertex Shader:
Código
  1. #version 330 core
  2.  
  3. layout(location = 0) in vec4 position;
  4. layout(location = 1) in vec2 texCoords;
  5.  
  6. out DATA {
  7.    vec2 texCoords;
  8. } vs_out;
  9.  
  10. void main() {
  11.    gl_Position = position;
  12.  
  13.    vs_out.texCoords = texCoords;
  14. }

Código del Fragment Shader:
Código
  1. #version 330 core
  2.  
  3. layout(location = 0) out vec4 color;
  4.  
  5. in DATA {
  6.    vec2 texCoords;
  7. } fs_in;
  8.  
  9. uniform sampler2D sampler;
  10.  
  11. void main() {
  12.    color = texture(sampler, fs_in.texCoords);
  13. }
Espero que me puedan ayudar... ¡Gracias!



O esto es magia, o visual studio me está trolleando. Ahora si que funciona... Sinceramente, no se que pasaba...


« Última modificación: 18 Mayo 2015, 11:03 am por Eternal Idol » En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: (Ayuda) Error al cargar BMP
« Respuesta #1 en: 18 Mayo 2015, 11:04 am »

No, o no habias recompilado o estas ejecutando manualmente una version antigua (compilaste relase x64 y ejecutaste debug x86 por ejemplo) o vaya uno a saber.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: (Ayuda) Error al cargar BMP
« Respuesta #2 en: 18 Mayo 2015, 15:04 pm »

No, o no habias recompilado o estas ejecutando manualmente una version antigua (compilaste relase x64 y ejecutaste debug x86 por ejemplo) o vaya uno a saber.

A saber xD

Pero juraría no haber hecho nada, y no tengo versiones antiguas. tampoco recompilé xD
En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
error al cargar el motor de grabacion del xoom. ayuda porfi.
Multimedia
el_fosi 8 3,712 Último mensaje 17 Febrero 2005, 06:02 am
por el_fosi
Ayuda cargar evento al cargar tabPageX
Programación Visual Basic
Kaxperday 3 2,601 Último mensaje 19 Noviembre 2014, 23:09 pm
por ivancea96
[AYUDA] Error con función cargar archivo.
Programación C/C++
Black cracker 8 2,791 Último mensaje 3 Septiembre 2015, 15:17 pm
por someRandomCode
ayuda necesito cargar rom j6 plus me da error y estoy rompiendo el movil
Foro Libre
dff200 0 1,646 Último mensaje 11 Abril 2020, 22:03 pm
por dff200
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines