Results 1 to 1 of 1
Thread: OpenGL .
Hybrid View
-
17th November 2011 20:54 #1
OpenGL .
!
OpenGL. Visual Studio 2010 C++.
, 3D (3d max) OpenGL. , . , ( , , ), , , output-a Visual Studio : "unresolved external symbol __imp____glewGenerateMipmap".
'glew32.lib' 'freeglut.lib', include- 'glew.h' . , .. , '#define GLEW_STATIC' . - .
Texture.h
Texture.cppCode:#ifdef TEXTURE_EXPORTS #define TEXTURE_API __declspec(dllexport) #else #define TEXTURE_API __declspec(dllimport) #endif #pragma once #include <gl/glew.h> #include <gl/freeglut.h> #include <Windows.h> #include <fstream> extern TEXTURE_API int numTexture; extern TEXTURE_API unsigned int LoadBMP(char *fileName);
Code:#include "stdafx.h" #include "Texture.h" unsigned int LoadBMP(char *fileName) { FILE *file; unsigned char *texture; unsigned int textureID; BITMAPFILEHEADER fileHeader; BITMAPINFOHEADER infoHeader; RGBTRIPLE rgb; if(fileName == '\0') { return (-1); } if(fopen(fileName, "rb") == NULL) { MessageBox(NULL, L"Texture not found", L"Spacesim", MB_OK | MB_ICONERROR); return (-1); } file = fopen(fileName, "rb"); fread(&fileHeader, sizeof(fileHeader), 1, file); fseek(file, sizeof(fileHeader), SEEK_SET); fread(&infoHeader, sizeof(infoHeader), 1, file); texture = (unsigned char*)malloc(infoHeader.biWidth * infoHeader.biHeight * 4); memset(texture, 0, infoHeader.biWidth * infoHeader.biHeight * 4); int j = 0; for(int i = 0; i < infoHeader.biWidth * infoHeader.biHeight; i++) { fread(&rgb, sizeof(rgb), 1, file); texture[j+0] = rgb.rgbtRed; texture[j+1] = rgb.rgbtGreen; texture[j+2] = rgb.rgbtBlue; texture[j+3] = 255; j+=4; } fclose(file); GLuint error = glGetError(); glGenTextures(1, &textureID); glBindTexture(GL_TEXTURE_2D, textureID); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); error = glGetError(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 4); glGenerateMipmap(GL_TEXTURE_2D); //, error = glGetError(); free(texture); return (textureID); }




Reply With Quote
Lenovo ThinkPad 15 IdeaPad 15
5th May 2023, 22:16 in