Original Post
Hi, I am new to opengGL. I am trying to map a texture onto a square. But its givin problems. I am givin the code: Added source code tags, please check the forum FAQ for details on the tags in use on this board [Edited by - _the_phantom_ on April 7, 2005 8:54:06 AM]
OpenGL settings function(called once):
Tao.OpenGl.Gl.glShadeModel ( Gl.GL_SMOOTH );
Tao.OpenGl.Gl.glClearColor ( 0.0f, 0.0f, 0.0f, 0.0f );
Tao.OpenGl.Gl.glClearDepth ( 1.0 );
Tao.OpenGl.Gl.glEnable ( Gl.GL_DEPTH_TEST );
Tao.OpenGl.Gl.glDepthFunc ( Gl.GL_LEQUAL );
Tao.OpenGl.Gl.glHint ( Gl.GL_PERSPECTIVE_CORRECTION_HINT, Gl.GL_NICEST);
Tao.OpenGl.Gl.glEnable ( Gl.GL_TEXTURE_2D );
Gl.glTexParameteri (Gl.GL_TEXTURE_2D , Gl.GL_TEXTURE_MIN_FILTER , Gl.GL_LINEAR );
Gl.glTexParameteri (Gl.GL_TEXTURE_2D , Gl.GL_TEXTURE_MAG_FILTER , Gl.GL_LINEAR );
================================================================
TextureClass constructor:
public MyTexture( string Filename )
{
m_Texture = new uint[1];
rect = new Rectangle (0,0,0,0);
m_FileName = Filename;
}
Binding Function:(called once only)
public void BindTexture()
{
m_Image = new Bitmap ( m_FileName );
rect = new Rectangle( 0, 0, m_Image.Width , m_Image.Height );
m_BitmapData = m_Image.LockBits ( rect , System.Drawing.Imaging.ImageLockMode .ReadOnly ,
System.Drawing.Imaging.PixelFormat.Format24bppRgb );
Tao.OpenGl.Gl.glGenTextures ( 1 , m_Texture ); //generates a unique ID of some kind
Gl.glBindTexture ( Gl.GL_TEXTURE_2D , m_Texture[0] );
Gl.glTexImage2D ( Gl.GL_TEXTURE_2D , 0 , (int)Gl.GL_RGB8 ,
m_Image.Width , m_Image.Height , 0 , Gl.GL_BGR_EXT ,
Gl.GL_UNSIGNED_BYTE , m_BitmapData.Scan0 );
m_Image.UnlockBits ( m_BitmapData );
m_Image.Dispose ();
}
=================================================================
Draw function:(repetedly called)
OpenGLObject.Clear();
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
Gl.glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glBindTexture(Gl.GL_TEXTURE_2D ,TextureObject.m_Texture[0] );
Gl.glBegin(Gl.GL_QUADS);
Gl.glTexCoord2f(1.0f, 1.0f);
Gl.glVertex3f( 0.75f, 0.75f , 1.0f );
Gl.glTexCoord2f(0.0f,1.0f);
Gl.glVertex3f( 0.25f, 0.75f , 1.0f );
Gl.glTexCoord2f(0.0f,0.0f);
Gl.glVertex3f( 0.25f, 0.25f , 1.0f );
Gl.glTexCoord2f(1.0f,0.0f);
Gl.glVertex3f( 0.75f, 0.25f , 1.0f );
Gl.glEnd();