Cube
This commit is contained in:
parent
0eb4680c48
commit
a2068517ec
3 changed files with 111 additions and 6 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1 +1,3 @@
|
|||
/build
|
||||
/build
|
||||
*.a
|
||||
*.o
|
4
makefile
4
makefile
|
@ -21,6 +21,10 @@ CFLAGS += -Wno-unused-const-variable
|
|||
CFLAGS += -Wno-unused-macros
|
||||
CFLAGS += -O3
|
||||
CFLAGS += -Ilibadd/include
|
||||
CFLAGS += -lm
|
||||
CFLAGS += -lglfw
|
||||
CFLAGS += -lGL
|
||||
CFLAGS += -lGLU
|
||||
CFLAGS += -g
|
||||
|
||||
GITHASH = $(shell git rev-parse --short HEAD)
|
||||
|
|
109
src/main.c
109
src/main.c
|
@ -1,8 +1,107 @@
|
|||
#include <add.h>
|
||||
#define GLFW_INCLUDE_NONE
|
||||
#include <GLFW/glfw3.h>
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, const char **argv) {
|
||||
printf("Hello, World!\n");
|
||||
printf("add(1, 2) = %d\n", add(1, 2));
|
||||
return 0;
|
||||
#define WIDTH 800
|
||||
#define HEIGHT 600
|
||||
|
||||
// Function to draw the cube
|
||||
void drawCube() {
|
||||
glBegin(GL_QUADS);
|
||||
|
||||
// Front face
|
||||
glColor3f(1.0f, 0.0f, 0.0f);
|
||||
glVertex3f(-1.0f, -1.0f, 1.0f);
|
||||
glVertex3f(1.0f, -1.0f, 1.0f);
|
||||
glVertex3f(1.0f, 1.0f, 1.0f);
|
||||
glVertex3f(-1.0f, 1.0f, 1.0f);
|
||||
|
||||
// Back face
|
||||
glColor3f(0.0f, 1.0f, 0.0f);
|
||||
glVertex3f(-1.0f, -1.0f, -1.0f);
|
||||
glVertex3f(-1.0f, 1.0f, -1.0f);
|
||||
glVertex3f(1.0f, 1.0f, -1.0f);
|
||||
glVertex3f(1.0f, -1.0f, -1.0f);
|
||||
|
||||
// Top face
|
||||
glColor3f(0.0f, 0.0f, 1.0f);
|
||||
glVertex3f(-1.0f, 1.0f, -1.0f);
|
||||
glVertex3f(-1.0f, 1.0f, 1.0f);
|
||||
glVertex3f(1.0f, 1.0f, 1.0f);
|
||||
glVertex3f(1.0f, 1.0f, -1.0f);
|
||||
|
||||
// Bottom face
|
||||
glColor3f(1.0f, 1.0f, 0.0f);
|
||||
glVertex3f(-1.0f, -1.0f, -1.0f);
|
||||
glVertex3f(1.0f, -1.0f, -1.0f);
|
||||
glVertex3f(1.0f, -1.0f, 1.0f);
|
||||
glVertex3f(-1.0f, -1.0f, 1.0f);
|
||||
|
||||
// Right face
|
||||
glColor3f(1.0f, 0.0f, 1.0f);
|
||||
glVertex3f(1.0f, -1.0f, -1.0f);
|
||||
glVertex3f(1.0f, 1.0f, -1.0f);
|
||||
glVertex3f(1.0f, 1.0f, 1.0f);
|
||||
glVertex3f(1.0f, -1.0f, 1.0f);
|
||||
|
||||
// Left face
|
||||
glColor3f(0.0f, 1.0f, 1.0f);
|
||||
glVertex3f(-1.0f, -1.0f, -1.0f);
|
||||
glVertex3f(-1.0f, -1.0f, 1.0f);
|
||||
glVertex3f(-1.0f, 1.0f, 1.0f);
|
||||
glVertex3f(-1.0f, 1.0f, -1.0f);
|
||||
|
||||
glEnd();
|
||||
}
|
||||
|
||||
int main() {
|
||||
// Initialize GLFW
|
||||
if (!glfwInit()) {
|
||||
fprintf(stderr, "Failed to initialize GLFW\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Create a windowed mode window and its OpenGL context
|
||||
GLFWwindow* window = glfwCreateWindow(WIDTH, HEIGHT, "Rotating Cube", NULL, NULL);
|
||||
if (!window) {
|
||||
glfwTerminate();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Make the window's context current
|
||||
glfwMakeContextCurrent(window);
|
||||
|
||||
// Loop until the user closes the window
|
||||
while (!glfwWindowShouldClose(window)) {
|
||||
// Clear the framebuffer
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
// Set up the view
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
gluPerspective(45.0f, (float)WIDTH / (float)HEIGHT, 0.1f, 100.0f);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
gluLookAt(3, 3, 3, 0, 0, 0, 0, 1, 0); // Eye position, look at position, up direction
|
||||
|
||||
// Rotate the cube
|
||||
static double angle = 0;
|
||||
glRotated(angle, 0, 1, 1); // Rotate around x, y, and z axes
|
||||
angle += 0.5;
|
||||
|
||||
// Draw the cube
|
||||
drawCube();
|
||||
|
||||
// Swap front and back buffers
|
||||
glfwSwapBuffers(window);
|
||||
|
||||
// Poll for and process events
|
||||
glfwPollEvents();
|
||||
}
|
||||
|
||||
glfwTerminate();
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue