Jump to content
  • Advertisement
Sign in to follow this  
CodeTitan

Address Issues

This topic is 4904 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
	hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL), szFileName, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE );

	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
Advertisement
& 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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!