#include “checkers.h”
#include “GL_bmp.h”
#include “GL_font.h”
#include “resource_IO.h”
#pragma comment( lib, “opengl32.lib” )
#pragma comment( lib, “glu32.lib” )
extern GL_Window main_window;
extern float view_zoom;
extern float view_rotate_x;
extern float view_rotate_y;
extern GL_Point board_table[32];
extern BOOL game_over;
extern char text_value[32];
//——–
// Global Variables
//——–
GL_Font gl_font; // Font Class
GLUquadricObj * quadric_object = gluNewQuadric();
GLuint textures[14];
#define GRID_FONT textures[0]
#define SIDE_RED textures[1]
#define SIDE_WHITE textures[2]
#define TOP_BORDER textures[3]
#define TOP_KING_RED textures[4]
#define TOP_KING_WHITE textures[5]
#define TOP_PIECE_RED textures[6]
#define TOP_PIECE_WHITE textures[7]
#define TOP_SQUARE_EMPTY textures[8]
#define TOP_SQUARE_END textures[9]
#define TOP_SQUARE_HI_LIGHTED textures[10]
#define TOP_SQUARE_JUMPED textures[11]
#define TOP_SQUARE_MID textures[12]
#define TOP_SQUARE_VOID textures[13]
GLfloat lightpos[] = { 100.0f, 100.0f, -100.0f, 1.0f };
GLfloat lightcor[] = { 1.0f, 1.0f, 1.0f, 1.0f };
STATE move_displayed; // Currently Displayed STATE
//—————-
// BOOL Initialize (void)
//—————-
void Initialize(void)
{
LoadGLtextures();
glEnable(GL_TEXTURE_2D);
gl_font.SetTexture(GRID_FONT, 16, 16);
gl_font.SetFontProperties(16, 16, 10);
gl_font.SetDisplayMode(160, 120);
gl_font.BuildFont();
glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
glClearDepth(1.0f);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glShadeModel (GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
// Set Perspective Calculations To Most Accurate
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glEnable(GL_TEXTURE_2D); // Enable Texture Mapping
glEnable(GL_LIGHTING);
}
//—————
// void LoadGLtextures(void)
//——–
void LoadGLtextures(void)
{
AUX_RGBImageRec * Imagem[1];
memset(Imagem, 0, sizeof(void *) * 1);
if (Imagem[0] = LoadBMP(“images/font.bmp”)) {
glGenTextures(1, &GRID_FONT);
glBindTexture(GL_TEXTURE_2D, GRID_FONT);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, Imagem[0]->sizeX, Imagem[0]->sizeY, GL_RGB,GL_UNSIGNED_BYTE, Imagem[0]->data);
glTexImage2D(GL_TEXTURE_2D, 0, 3, Imagem[0]->sizeX, Imagem[0]->sizeY, 0, GL_RGB,GL_UNSIGNED_BYTE, Imagem[0]->data);
glTexParameteri
(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri
(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
if (Imagem[0]){
if (Imagem[0]->data)
free(Imagem[0]->data);
free(Imagem[0]);
}
}
if (Imagem[0] = LoadBMP(“images/side_red.bmp”)) {
glGenTextures(1, &SIDE_RED);
glBindTexture(GL_TEXTURE_2D, SIDE_RED);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, Imagem[0]->sizeX, Imagem[0]->sizeY, GL_RGB,GL_UNSIGNED_BYTE, Imagem[0]->data);
glTexImage2D(GL_TEXTURE_2D, 0, 3, Imagem[0]->sizeX, Imagem[0]->sizeY, 0, GL_RGB,GL_UNSIGNED_BYTE, Imagem[0]->data);
glTexParameteri
(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri
(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
if (Imagem[0]) {
if (Imagem[0]->data)
free(Imagem[0]->data);
free(Imagem[0]);
}
|
دیدگاهتان را بنویسید