Mercurial > pidgin.yaz
view pidgin/plugins/crazychat/face.c @ 21726:56f78bc6c53e
More catching up on things, from 8548e491a5b470d5665cb1cf87a7b0caaa3c87a5:
"Fix all our calls to fcntl(listenfd, F_SETFL, O_NONBLOCK);
fcntl() with F_SETFL overwrites the old flags with the new ones, so
you should call fcntl() with F_GETFL, then OR that value with
O_NONBLOCK before setting the flags. We've been doing this
wrong for a long time and it hasn't seemed to hurt anything,
but I thought it would be good to fix it."
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Sun, 02 Dec 2007 17:33:03 +0000 |
parents | 5fe8042783c1 |
children | a8cc50c2279f |
line wrap: on
line source
#include "face.h" #include "sharky.h" #include "doggy.h" #include <assert.h> FACE init_face(KIND kind) { FACE face; face = (FACE)malloc(sizeof(*face)); switch(kind){ case DOG: init_dog(face); break; case SHARK: init_shark(face); break; default: printf("default face\n"); init_dog(face); break; } return face; } void draw_face(FACE face, GLfloat zrot, GLfloat yrot, BOOL left_eye, BOOL right_eye, GLfloat mouth_open, DIRECTION dir, OUTPUT_MODE mode){ face->draw_func(face, zrot, yrot, left_eye, right_eye, mouth_open, dir, mode); } void change_materials(FACE f, int* mats, int num_change){ int i; assert(!(num_change<0 || num_change>NUM_PARTS)); for(i=0;i<num_change;i++){ f->mat_indeces[i]=mats[i]; } } void free_face(FACE f){}