OpenGL Texture
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
/* Create checkerboard texture */
#define checkImageWidth 64
#define checkImageHeight 64
static GLubyte checkImage[checkImageHeight][checkImageWidth][4];
static GLuint texName;
GLfloat _angle=45;
void makeCheckImage(void)
{
int i, j, c;
for (i = 0; i < checkImageHeight; i++) {
for (j = 0; j < checkImageWidth; j++) {
//c = ((((i&0x8)==0)^((j&0x8))==0))*255; //checks
// c=((((i&0X15)==0)^((j&0x15))==0))*120;//border
//c=((((i&0X2)==0)^((j&0x2))==0))*200; //more checks
c=((((i&0x22)==0)^((j&0x22))==0))*200; //flag
checkImage[i][j][0] = (GLubyte) c;
checkImage[i][j][1] = (GLubyte) c;
checkImage[i][j][2] = (GLubyte) c;
checkImage[i][j][3] = (GLubyte) 200;
}
}
}
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
makeCheckImage();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glGenTextures(1, &texName);
glBindTexture(GL_TEXTURE_2D, texName);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
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, GL_RGBA, checkImageWidth,
checkImageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE,
checkImage);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glBindTexture(GL_TEXTURE_2D, texName);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -5.0f);
glRotatef(_angle, 1.0f,0.0f, 0.0f);
glBegin(GL_QUADS);
glColor3f(0.0f, 1.0f, 0.0f); // Green
glTexCoord2f(0.0, 0.0);glVertex3f( 1.0f, 1.0f, -1.0f);
glTexCoord2f(0.0, 1.0); glVertex3f(-1.0f, 1.0f, -1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, 1.0f, 1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f( 1.0f, 1.0f, 1.0f);
glColor3f(1.0f, 1.0f, 0.0f); // Yellow
glTexCoord2f(0.0, 0.0); glVertex3f( 1.0f, -1.0f, 1.0f);
glTexCoord2f(0.0, 1.0); glVertex3f(-1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0, 1.0); glVertex3f(-1.0f, -1.0f, -1.0f);
glTexCoord2f(1.0, 0.0); glVertex3f( 1.0f, -1.0f, -1.0f);
// Front face (z = 1.0f)
glColor3f(1.0f, 0.0f, 0.0f); // Red
glTexCoord2f(0.0, 0.0);glVertex3f( 1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(-1.0f, 1.0f, 1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f( 1.0f, -1.0f, 1.0f);
// Back face (z = -1.0f)
glColor3f(1.0f, 1.0f, 1.0f); // Yellow
glTexCoord2f(0.0, 0.0);glVertex3f( 1.0f, -1.0f, -1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(-1.0f, -1.0f, -1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, 1.0f, -1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f( 1.0f, 1.0f, -1.0f);
// Left face (x = -1.0f)
glColor3f(0.0f, 0.0f, 1.0f); // Blue
glTexCoord2f(0.0, 0.0);glVertex3f(-1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(-1.0f, 1.0f, -1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, -1.0f, -1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f(-1.0f, -1.0f, 1.0f);
// Right face (x = 1.0f)
glColor3f(1.0f, 0.0f, 1.0f); // Magenta
glTexCoord2f(0.0, 0.0);glVertex3f(1.0f, 1.0f, -1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(1.0f, 1.0f, 1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0, 0.0); glVertex3f(1.0f, -1.0f, -1.0f);
glEnd();
glFlush();
glDisable(GL_TEXTURE_2D);
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, -3.6);
}
void update(int value) {
_angle += 1.5f;
if (_angle > 360) {
_angle -= 360;
}
glutPostRedisplay();
glutTimerFunc(25, update,0);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(250, 250);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutTimerFunc(25, update, 0);
glutMainLoop();
return 0;
}
#include <GL/glu.h>
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
/* Create checkerboard texture */
#define checkImageWidth 64
#define checkImageHeight 64
static GLubyte checkImage[checkImageHeight][checkImageWidth][4];
static GLuint texName;
GLfloat _angle=45;
void makeCheckImage(void)
{
int i, j, c;
for (i = 0; i < checkImageHeight; i++) {
for (j = 0; j < checkImageWidth; j++) {
//c = ((((i&0x8)==0)^((j&0x8))==0))*255; //checks
// c=((((i&0X15)==0)^((j&0x15))==0))*120;//border
//c=((((i&0X2)==0)^((j&0x2))==0))*200; //more checks
c=((((i&0x22)==0)^((j&0x22))==0))*200; //flag
checkImage[i][j][0] = (GLubyte) c;
checkImage[i][j][1] = (GLubyte) c;
checkImage[i][j][2] = (GLubyte) c;
checkImage[i][j][3] = (GLubyte) 200;
}
}
}
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
makeCheckImage();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glGenTextures(1, &texName);
glBindTexture(GL_TEXTURE_2D, texName);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
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, GL_RGBA, checkImageWidth,
checkImageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE,
checkImage);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glBindTexture(GL_TEXTURE_2D, texName);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -5.0f);
glRotatef(_angle, 1.0f,0.0f, 0.0f);
glBegin(GL_QUADS);
glColor3f(0.0f, 1.0f, 0.0f); // Green
glTexCoord2f(0.0, 0.0);glVertex3f( 1.0f, 1.0f, -1.0f);
glTexCoord2f(0.0, 1.0); glVertex3f(-1.0f, 1.0f, -1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, 1.0f, 1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f( 1.0f, 1.0f, 1.0f);
glColor3f(1.0f, 1.0f, 0.0f); // Yellow
glTexCoord2f(0.0, 0.0); glVertex3f( 1.0f, -1.0f, 1.0f);
glTexCoord2f(0.0, 1.0); glVertex3f(-1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0, 1.0); glVertex3f(-1.0f, -1.0f, -1.0f);
glTexCoord2f(1.0, 0.0); glVertex3f( 1.0f, -1.0f, -1.0f);
// Front face (z = 1.0f)
glColor3f(1.0f, 0.0f, 0.0f); // Red
glTexCoord2f(0.0, 0.0);glVertex3f( 1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(-1.0f, 1.0f, 1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f( 1.0f, -1.0f, 1.0f);
// Back face (z = -1.0f)
glColor3f(1.0f, 1.0f, 1.0f); // Yellow
glTexCoord2f(0.0, 0.0);glVertex3f( 1.0f, -1.0f, -1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(-1.0f, -1.0f, -1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, 1.0f, -1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f( 1.0f, 1.0f, -1.0f);
// Left face (x = -1.0f)
glColor3f(0.0f, 0.0f, 1.0f); // Blue
glTexCoord2f(0.0, 0.0);glVertex3f(-1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(-1.0f, 1.0f, -1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(-1.0f, -1.0f, -1.0f);
glTexCoord2f(1.0, 0.0);glVertex3f(-1.0f, -1.0f, 1.0f);
// Right face (x = 1.0f)
glColor3f(1.0f, 0.0f, 1.0f); // Magenta
glTexCoord2f(0.0, 0.0);glVertex3f(1.0f, 1.0f, -1.0f);
glTexCoord2f(0.0, 1.0);glVertex3f(1.0f, 1.0f, 1.0f);
glTexCoord2f(1.0, 1.0);glVertex3f(1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0, 0.0); glVertex3f(1.0f, -1.0f, -1.0f);
glEnd();
glFlush();
glDisable(GL_TEXTURE_2D);
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, -3.6);
}
void update(int value) {
_angle += 1.5f;
if (_angle > 360) {
_angle -= 360;
}
glutPostRedisplay();
glutTimerFunc(25, update,0);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(250, 250);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutTimerFunc(25, update, 0);
glutMainLoop();
return 0;
}
Tinti Titanium Metal | Tinti Titanium Art
ReplyDeleteTinti Titanium Art. Tinti Titanium Art, titanium white dominus Tinti. titanium mens wedding bands Titanium Art. Tinti Titanium Art. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. black titanium Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. 2019 ford edge titanium for sale Tinti. Tinti. Tinti. titanium gr 5 Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti. Tinti.