Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GL/glut.h>
- #define WIDTH 640
- #define HEIGHT 480
- unsigned int TEX_NAME;
- unsigned char* tex_data;
- void display();
- int main(int argc, char** argv)
- {
- glutInit(&argc, argv);
- glutInitWindowSize(WIDTH, HEIGHT);
- glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
- glutCreateWindow("A test thing");
- // Set all callback functions
- glutDisplayFunc(display);
- // Set up opengl
- glViewport(0, 0, WIDTH, HEIGHT);
- glEnable(GL_TEXTURE_2D);
- glClearColor(0.0f, 0.5f, 0.5f, 0.0f);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
- // Prepare texture-related nonsense
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- 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_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- tex_data = new unsigned char[WIDTH * HEIGHT * 4];
- for (int i = 0; i < WIDTH * HEIGHT * 4; i++) {
- tex_data[i] = 0;
- }
- glGenTextures(1, &TEX_NAME);
- glBindTexture(GL_TEXTURE_2D, TEX_NAME);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, WIDTH, HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex_data);
- glutMainLoop();
- return 0;
- }
- void display()
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glEnable(GL_TEXTURE_2D);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glBindTexture(GL_TEXTURE_2D, TEX_NAME);
- // Draw quad
- glBegin(GL_QUADS);
- glColor3f(1.0f, 1.0f, 1.0f);
- glTexCoord2f(0.0f, 0.0f);
- glVertex3f(0.0, 0.0, 0.0);
- glTexCoord2f(1.0f, 0.0f);
- glVertex3f(1.0, 0.0, 0.0);
- glTexCoord2f(1.0f, 1.0f);
- glVertex3f(1.0, 1.0, 0.0);
- glTexCoord2f(0.0f, 1.0f);
- glVertex3f(0.0, 1.0, 0.0);
- glEnd();
- glutSwapBuffers();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement