Solved

Texture binding not working in OpenGL

Posted on 2007-11-19
1
1,252 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
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

Free book by J.Peter Bruzzese, Microsoft MVP

Are you using Office 365? Trying to set up email signatures but you’re struggling with transport rules and connectors? Let renowned Microsoft MVP J.Peter Bruzzese show you how in this exclusive e-book on Office 365 email signatures. Better yet, it’s free!

Question has a verified solution.

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

Suggested Solutions

When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup" or a blinking cursor with black screen. A loop for Auto repair will start but fix nothing.  You will be panic as there are no back…
How to record audio from input sources to your PC – connected devices, connected preamp to record vinyl discs, streaming media, that play through your audio card: Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10 – both 32 bit & 64.
Windows 8 came with a dramatically different user interface known as Metro. Notably missing from that interface was a Start button and Start Menu. Microsoft responded to negative user feedback of the Metro interface, bringing back the Start button a…
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…

920 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now