Ramal Kurdy

Members
  • Content count

    8
  • Joined

  • Last visited

Community Reputation

105 Neutral

About Ramal Kurdy

  • Rank
    Newbie
  1. Finally I managed to fix it. Now everything works. I will update the code.  Many thanks for all you support. 
  2. 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. 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. 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.     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. 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.   Where do I place it?
  8. 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; }