summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2014-12-23 23:07:33 +0100
committerFlorian Jung <flo@windfisch.org>2014-12-23 23:07:52 +0100
commite56c98a450ea5f125b337219787e58d692b9f675 (patch)
tree9b3bb528f518b6dacbd3678ef7be90b246c7c632
parentce289fe207c844d8cf8dcfc96881ad064b19eef0 (diff)
einfach alles anzünden!
-rw-r--r--client.c129
1 files changed, 128 insertions, 1 deletions
diff --git a/client.c b/client.c
index a97d810..260934e 100644
--- a/client.c
+++ b/client.c
@@ -5,15 +5,142 @@
#include <string.h>
#include <sys/un.h>
+#include <GL/glut.h> // Header File For The GLUT Library
+#include <GL/gl.h> // Header File For The OpenGL32 Library
+#include <GL/glu.h> // Header File For The GLu32 Library
+
#define SOCKETPATH "/home/flo/uds_socket"
void die(const char* msg){perror(msg); exit(1);}
void suicide(const char* msg){ fprintf(stderr, "%s\n", msg); exit(1); }
+int DrawGLScene(GLvoid);
+
+
unsigned char buffer[67108864]; // must be unsigned. because reasons -_-
-int main()
+/* ascii code for the escape key */
+#define ESCAPE 27
+
+/* The number of our GLUT window */
+int window;
+
+/* A general OpenGL initialization function. Sets all of the initial parameters. */
+void InitGL(int Width, int Height) // We call this right after our OpenGL window is created.
+{
+ glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // This Will Clear The Background Color To Black
+ glClearDepth(1.0); // Enables Clearing Of The Depth Buffer
+ glDepthFunc(GL_LESS); // The Type Of Depth Test To Do
+ glEnable(GL_DEPTH_TEST); // Enables Depth Testing
+ glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity(); // Reset The Projection Matrix
+
+ gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f); // Calculate The Aspect Ratio Of The Window
+
+ glMatrixMode(GL_MODELVIEW);
+}
+
+/* The function called when our window is resized (which shouldn't happen, because we're fullscreen) */
+void ReSizeGLScene(int Width, int Height)
{
+ if (Height==0) // Prevent A Divide By Zero If The Window Is Too Small
+ Height=1;
+
+ glViewport(0, 0, Width, Height); // Reset The Current Viewport And Perspective Transformation
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f);
+ glMatrixMode(GL_MODELVIEW);
+}
+
+/* The function called whenever a key is pressed. */
+void keyPressed(unsigned char key, int x, int y)
+{
+ /* avoid thrashing this procedure */
+ usleep(100);
+
+ /* If escape is pressed, kill everything. */
+ if (key == ESCAPE)
+ {
+ /* shut down our window */
+ glutDestroyWindow(window);
+
+ /* exit the program...normal termination. */
+ exit(0);
+ }
+}
+
+int init_all_teh_shitz(int argc, char **argv)
+{
+ /* Initialize GLUT state - glut will take any command line arguments that pertain to it or
+ X Windows - look at its documentation at http://reality.sgi.com/mjk/spec3/spec3.html */
+ glutInit(&argc, argv);
+
+ /* Select type of Display mode:
+ Double buffer
+ RGBA color
+ Alpha components supported
+ Depth buffer */
+ glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH);
+
+ /* get a 640 x 480 window */
+ glutInitWindowSize(640, 480);
+
+ /* the window starts at the upper left corner of the screen */
+ glutInitWindowPosition(0, 0);
+
+ /* Open a window */
+ window = glutCreateWindow("Jeff Molofee's GL Code Tutorial ... NeHe '99");
+
+ /* Register the function to do all our OpenGL drawing. */
+ glutDisplayFunc(&DrawGLScene);
+
+ /* Go fullscreen. This is as soon as possible. */
+ glutFullScreen();
+
+ /* Even if there are no events, redraw our gl scene. */
+ glutIdleFunc(&DrawGLScene);
+
+ /* Register the function called when our window is resized. */
+ glutReshapeFunc(&ReSizeGLScene);
+
+ /* Register the function called when the keyboard is pressed. */
+ glutKeyboardFunc(&keyPressed);
+
+ /* Initialize our window. */
+ InitGL(640, 480);
+
+ /* Start Event Processing Engine */
+ glutMainLoop();
+
+ return 1;
+}
+
+
+int DrawGLScene(GLvoid) // Here's Where We Do All The Drawing
+{
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
+ glLoadIdentity();
+ glTranslatef(-1.5f,0.0f,-6.0f);
+
+ glBegin(GL_QUADS);
+ glVertex3f(-1.0f,-1.0f, 0.0f);
+ glVertex3f(-1.0f, 1.0f, 0.0f);
+ glVertex3f( 1.0f, 1.0f, 0.0f);
+ glVertex3f( 1.0f,-1.0f, 0.0f);
+ glEnd();
+
+ glutSwapBuffers();
+}
+
+int main(int argc, const char** argv)
+{
+ init_all_teh_shitz(argc, argv);
+
struct sockaddr_un my_sockaddr;
my_sockaddr.sun_family=AF_UNIX;