Jump to content
  • Advertisement
Sign in to follow this  

Address Issues

This topic is 5079 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

error C2664: 'NeHeLoadBitmap' : cannot convert parameter 2 from 'unsigned int *' to 'unsigned int &'
        A reference that is not to 'const' cannot be bound to a non-lvalue

I'm not too sure what to pass as the second parameter to this function:
bool NeHeLoadBitmap(LPTSTR szFileName, GLuint &texid)					// Creates Texture From A Bitmap File
	HBITMAP hBMP;														// Handle Of The Bitmap
	BITMAP	BMP;														// Bitmap Structure

	glGenTextures(1, &texid);											// Create The Texture

	if (!hBMP)															// Does The Bitmap Exist?
		return FALSE;													// If Not Return False

	GetObject(hBMP, sizeof(BMP), &BMP);									// Get The Object
																		// hBMP:        Handle To Graphics Object
																		// sizeof(BMP): Size Of Buffer For Object Information
																		// &BMP:        Buffer For Object Information

	glPixelStorei(GL_UNPACK_ALIGNMENT, 4);								// Pixel Storage Mode (Word Alignment / 4 Bytes)

	// Typical Texture Generation Using Data From The Bitmap
	glBindTexture(GL_TEXTURE_2D, texid);								// Bind To The Texture ID
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);	// Linear Min Filter
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);	// Linear Mag Filter
	glTexImage2D(GL_TEXTURE_2D, 0, 3, BMP.bmWidth, BMP.bmHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);

	DeleteObject(hBMP);													// Delete The Object

	return TRUE;														// Loading Was Successful

Source from nehe.gamedev.net For the first parameter, I pass a string. For the second, I tried this:
GLuint texture = 1;
NeheLoadBitmap("string", &texture);

But this is not working. So what should I pass as the second parameter?

Share this post

Link to post
Share on other sites
& means reference so you don't have to pass it the address...
NeheLoadBitmap("string", texture);
...is sufficient.
References are not duplicated inside functions when used as parameters. They enable the function to modify the actual variables you pass in to it.
It's a c++ feature so you don't have to do it the C way of pointers
(not feeling like explaining alot today I'm afraid)
But definately start using them, they're cool ;]

[Edited by - ProPuke on January 17, 2005 11:38:08 AM]

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!