Solved

Texture binding not working in OpenGL

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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

The use of stolen credentials is a hot commodity this year allowing threat actors to move laterally within the network in order to avoid breach detection.
When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup". After a while, you have entered a loop for Auto repair which does not fix anything and you will be in a  panic as all your work w…
In this video, we discuss why the need for additional vertical screen space has become more important in recent years, namely, due to the transition in the marketplace of 4x3 computer screens to 16x9 and 16x10 screens (so-called widescreen format). …
This Micro Tutorial will give you a basic overview of Windows DVD Burner through its features and interface. This will be demonstrated using Windows 7 operating system.

759 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

17 Experts available now in Live!

Get 1:1 Help Now