Ramal Kurdy

  • Content count

  • Joined

  • Last visited

Community Reputation

105 Neutral

About Ramal Kurdy

  • Rank
  1. Loading image into OpenGL

    Finally I managed to fix it. Now everything works. I will update the code.  Many thanks for all you support. 
  2. Loading image into OpenGL

    I managed to get the picture to display by changing the height and width of the picture. Now it works. However, the colours of the other shapes on the window all turned into black colour. Do I have to call glDisable(GL_TEXTURE_2D);. If yes, where do I call it?    Thanks
  3. Loading image into OpenGL

    Can you post a link to the image you're trying to display? It doesn't just look like the image is blurry, it looks like you're reading from the wrong offset and using the wrong image pitch, to have what looks like alternating pixel rows side-by-side, and not starting at the upper-left of the image.   This is the link   http://postimg.org/image/mmhvccujl/
  4. Loading image into OpenGL

    Hi  NumberXaero. I tried the code, but a white blank screen appears.  This is the size of my window:   gluOrtho2D(0, 500, 0, 500);   The quad is set in the middle of the window: glTranslatef(250,250,0);   This is the window position: glutInitWindowPosition(350, 200);    
  5. Loading image into OpenGL

        I modfied the code, but the picture is still blurry. Iam trying to insert the image below. I have resized it and made it smaller. Do you think I need to change the values within texture buffer?  t1 = AllocateTextureBuffer(256, 50, 4); This is what it looks like. direct link http://s30.postimg.org/eurazb6i9/Picture1.png
  6. Loading image into OpenGL

    Thanks I changed it. Now I can see the picture upside down and a bit blurry. I edited the code above. Could you please have a look at it. 
  7. Loading image into OpenGL

      Where do I place it?
  8. Loading image into OpenGL

    Iam trying to load a bmp image into OpenGL. The program works fine but the image does not appear. The source code below does not contain any errors. Could you please help.   Thanks SOLVED: THE CODE BELOW WORKS.   #include "stdafx.h" #include <stdlib.h> #include "glut.h" #include <math.h> #include <stdio.h> float fTranslate = 0.0; GLuint texture[1];   typedef struct Texture_Image { int width; int height; int format; unsigned char *data; } TEXTURE_IMAGE;   typedef TEXTURE_IMAGE *P_TEXTURE_IMAGE;   P_TEXTURE_IMAGE t1;     P_TEXTURE_IMAGE AllocateTextureBuffer(GLint w, GLint h, GLint f) { P_TEXTURE_IMAGE ti=NULL; unsigned char *c=NULL;   ti = (P_TEXTURE_IMAGE)malloc(sizeof(TEXTURE_IMAGE));   if (ti != NULL) { ti->width = w; ti->height = h; ti->format = f;   c = (unsigned char *)malloc(w * h * f);   if (c != NULL) { ti->data = c; } else { printf("error"); return NULL; } } else { printf("error"); return NULL; } return ti; }   void DeallocateTexture(P_TEXTURE_IMAGE t) { if(t) { if(t->data) { free(t->data); } free(t); } }     int ReadTextureData (char *filename, P_TEXTURE_IMAGE buffer) { FILE *f; int i, j, k, done = 0; int stride = buffer->width * buffer->format; unsigned char *p = NULL;   f = fopen(filename, "rb"); if (f !=NULL) { for (i = buffer->height-1; i>=0; i--) { p = buffer->data + (i * stride); for (j = 0; j < buffer->width; j++) { for (k = 0; k < buffer->format-1; k++, p++, done++) { *p = fgetc(f); } *p = 255; p++; } } fclose(f); } else { printf("name error\n"); } return done; }     void BuildTexture (P_TEXTURE_IMAGE tex) { glGenTextures(1, &texture[0]); glBindTexture(GL_TEXTURE_2D, texture[0]); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tex->width, tex->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex->data); }     int InitGL(GLvoid) {        glMatrixMode(GL_PROJECTION);    glLoadIdentity();    gluOrtho2D(0, 500, 0, 500);   t1 = AllocateTextureBuffer(256, 256, 4); if (ReadTextureData("globe.bmp", t1) == 0) { printf("error\n"); return false; }   BuildTexture (t1);   DeallocateTexture (t1);   glEnable(GL_TEXTURE_2D);   glClearColor(0.0f, 0.0f, 0.0f, 0.0f);   return true; } void quad(){ glBindTexture(GL_TEXTURE_2D, texture[0]); glBegin(GL_QUADS);   glTexCoord2f(1.0, 0.0);glVertex3f( 112, 112, 0.0); glTexCoord2f(1.0, 1.0);glVertex3f( 112, -112, 0.0); glTexCoord2f(0.0, 1.0);glVertex3f( -112, -112, 0.0); glTexCoord2f(0.0, 0.0);glVertex3f( -112, 112, 0.0); glEnd(); } GLvoid DrawGLScene (GLvoid) { glClear(GL_COLOR_BUFFER_BIT);   glColor3f(1.0,1.0,1.0);   glBindTexture(GL_TEXTURE_2D, texture[0]); glPushMatrix(); glTranslatef(250,250,0); quad(); glPopMatrix();   glutSwapBuffers(); glutPostRedisplay(); }     int main(int argc, char **argv) { glutInit(&argc,argv); glutInitWindowPosition(350, 200); glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE);   glutCreateWindow("Image");   InitGL(); glutDisplayFunc(DrawGLScene); glutMainLoop(); return 0; }