Solved

Texture binding not working in OpenGL

Posted on 2007-11-19
1
1,264 Views
Last Modified: 2013-12-21
I cannot get the texture working in my little bowling game. The BowlingScene is a box, like a room, but the texture in the wall was not displayed, why this could happen?
class BowlingScene : public Figure3d
{
private:
GLuint texture1;
 
public:
BowlingScene(double x, double y, double z,double rx, double ry, double rz);
void Draw();
};
 
 
 
 
 
 
BowlingScene::BowlingScene(double x, double y, double z,double rx, double ry, double rz)
{
    glGenTextures(0,&(this->texture1));
    AUX_RGBImageRec *imagenTextura1;
    imagenTextura1 = auxDIBImageLoad("textures\\background.bmp");
    glBindTexture(GL_TEXTURE_2D,this->texture1);
    glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,imagenTextura1->sizeX,
	imagenTextura1->sizeY,0,GL_RGB,GL_UNSIGNED_BYTE,imagenTextura1->data);
    glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);     //GL_NEAREST
 
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);     //GL_NEAREST
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);     //GL_NEAREST
 
    delete imagenTextura1;
 
    // OTHER CONSTRUCTOR CODE
}
 
 
 
 
 
void BowlingScene::Draw()
{
    glPushMatrix();   //guardar la matriz actual
    glTranslated(pos.x, pos.y, pos.z); //trasladar (modifica la matriz actual)
 
    glColor3f(1.0,1.0,0.0);
    glPointSize(10);
    GLfloat brillo[] = { 50 };
    GLfloat color[] = { 0.0, 0.5, 0.5, 1.0 };
    GLfloat specular[] = { 0.4, 0.4, 0.4, 1.0 };
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
    glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, brillo);
 
    double bottom = -50, ceil = 600,
        left = -600, right = 670,
        back = 2200, front = -50;
 
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, this->texture1);
 
        glBegin(GL_QUAD_STRIP);
 
    // Cara fondo
    glTexCoord2f(0,0);
    glVertex3d(left,bottom,front);
    glTexCoord2f(0,1);
    glVertex3d(left,ceil,front);
    glTexCoord2f(1,0);
    glVertex3d(right,bottom,front);
    glTexCoord2f(1,1);
    glVertex3d(right,ceil,front);
 
    glColor3d(0.5,0.8,0.4);
 
    // ETC...........
}

Open in new window

0
Comment
Question by:avatar-e
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 20

Accepted Solution

by:
ikework earned 500 total points
ID: 20318141
hi avatar-e,

the first param of glGetTextures is the count of textures to generate, instead of 0 put 1


ike
BowlingScene::BowlingScene(double x, double y, double z,double rx, double ry, double rz)
{
    glGenTextures(1,&(this->texture1));  // << here put 1 instead of 0
    AUX_RGBImageRec *imagenTextura1;
    imagenTextura1 = auxDIBImageLoad("textures\\background.bmp");
    glBindTexture(GL_TEXTURE_2D,this->texture1);

Open in new window

0

Featured Post

Building an interactive eFuture classroom

Watch and learn how ATEN provided a total control system solution including seamless switching matrix switch, HDBaseT extenders, PDU, lighting control to build an interactive eFuture classroom.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Determining the an SCCM package name from the Package ID
This article is a collection of issues that people face from time to time and possible solutions to those issues. I hope you enjoy reading it.
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…
The Task Scheduler is a powerful tool that is built into Windows. It allows you to schedule tasks (actions) on a recurring basis, such as hourly, daily, weekly, monthly, at log on, at startup, on idle, etc. This video Micro Tutorial is a brief intro…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question