السلام عليكم ورحمة الله تعالى
أما بعد:
لدي الكود التالي شغال ولكن عند تنفيذه لايظهر الإكساء , حاولت كثيرا ولم أعرف ما السبب , أرجو المساعدة العاجلة ولكم جزيل الشكر
ملاحظة :
أنا أنفذ الكود على visual stedio 2010
كان الكود يعطي خطأ وعندما أضفت الكلمة LPSWSTR أصبح ينفذ ولكن من دون أن تظهر الاكساءات
-- الكود في الملف المرفق -- لم أضع الصورة بالمرفقات علما أنها bmp
مشكورين اخواني في الله
#include "stdafx.h"
#include "stdafx.h"
#include <stdio.h>
#include<glut.h>
#include<gl.h>
#include<stdlib.h>
#include<glaux.h>
#include<GLU.H>
#include <math.h>
GLuint texture[3];
GLuint filter=0;
void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glPointSize(5.0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture[filter]);
glBegin(GL_QUADS);
glTexCoord2f(0,0); glVertex3f (0,0,0);
glTexCoord2f(1,0); glVertex3f (0.7,0,0);
glTexCoord2f(1,1); glVertex3f (0.7,0.7,0);
glTexCoord2f(0,1); glVertex3f (0,0.7,0);
glEnd();
glFlush();
}
void init (void)
{
/*select clearing (background) color */
glClearColor (0.0, 0.0, 0.0, 0.0);
glEnable(GL_TEXTURE_2D); // Enable Texture Mapping
//glBlendFunc(GL_SRC_ALPHA,GL_ONE);
}
void reshape(int w, int h)
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity(); /* clear the matrix */
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow ("Simple OpengGL Sample");
init ();
glutReshapeFunc(reshape);
glutDisplayFunc(display);
glutMainLoop();
}
AUX_RGBImageRec *LoadBMP(char *Filename) // Loads A Bitmap Image
{
FILE *File=NULL; // File Handle
if (!Filename) // Make Sure A Filename Was Given
{
return NULL; // If Not Return NULL
}
File=fopen(Filename,"r"); // Check To See If The File Exists
if (File) // Does The File Exist?
{
fclose(File); // Close The Handle
return auxDIBImageLoad((LPCWSTR)Filename); // Load The Bitmap And Return A Pointer
}
return NULL; // If Load Failed Return NULL
}
int LoadGLTextures() // Load Bitmaps And Convert To Textures
{
int Status=FALSE; // Status Indicator
AUX_RGBImageRec *TextureImage[1]; // Create Storage Space For The Texture
memset(TextureImage,0,sizeof(void *)*1); // Set The Pointer To NULL
// Load The Bitmap, Check For Errors, If Bitmap's Not Found Quit
if (TextureImage[0]=LoadBMP("Data/front.bmp"))
{
Status=TRUE; // Set The Status To TRUE
glGenTextures(3, &texture[0]); // Create Three Textures
// Create Nearest Filtered Texture
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
// Create Linear Filtered Texture
glBindTexture(GL_TEXTURE_2D, texture[1]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
// Create MipMapped Texture
glBindTexture(GL_TEXTURE_2D, texture[2]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
}
if (TextureImage[0]) // If Texture Exists
{
if (TextureImage[0]->data) // If Texture Image Exists
{
free(TextureImage[0]->data); // Free The Texture Image Memory
}
free(TextureImage[0]); // Free The Image Structure
}
return Status; // Return The Status
}