Mercurial > pidgin
view plugins/crazychat/draw.c @ 13303:dc396c7dbcf9
[gaim-migrate @ 15669]
There was an attempt to make each Jabber resource have its own conversation
window, which wasn't working, and instead sending outgoing messages to the
wrong resource. Different conversations with each resource breaks the whole
"Send to" one-window-per-person metaphor, so I just changed the behavior to
send messages to whichever resources last messaged you. Perhaps later, when
we're not in a freeze, we can consider an API that allows prpls to populate
the Send To menu themselves, letting you easily switch what resource you're
chatting with in the same window
committer: Tailor Script <tailor@pidgin.im>
| author | Sean Egan <seanegan@gmail.com> |
|---|---|
| date | Thu, 16 Feb 2006 23:02:56 +0000 |
| parents | ed017b9c532d |
| children |
line wrap: on
line source
#include "righteye10.h" typedef struct _point{ GLshort x; GLshort y; } Point; typedef struct Packet{ Point mouthLeft; Point mouthRight; Point mouthTop; Point mouthBottom; Point eyeLeft; Point eyeRight; } Packet; #define NUM_EYE_FRAMES 10 GLint rightEyes[NUM_EYE_FRAMES]; void CalculateMouthPoints(GLshort[][][] ctrlpoints, struct Packet* p) { GLshort points[4][3]; points[0][0]=p->mouthLeft.x; points[0][1]=p->mouthLeft.y; points[0][2]=front; points[1][0]=p->mouthBottom.x; points[1][1]=p->mouthTop.y; points[1][2]=front; points[2][0]=p->mouthRight.x; points[2][1]=p->mouthRight.y; points[2][2]=front; points[3][0]=p->mouthTop.x; points[3][1]=p->mouthTop.y; points[3][2]=front; ctrlpoints[0][0][0]=points[0][0]; ctrlpoints[0][0][1]=points[0][1]; ctrlpoints[0][0][2]=points[0][2]; ctrlpoints[0][1][0]=points[1][0]; ctrlpoints[0][1][1]=points[1][1]; ctrlpoints[0][1][2]=points[1][2]; ctrlpoints[0][2][0]=points[2][0]; ctrlpoints[0][2][1]=points[2][1]; ctrlpoints[0][2][2]=points[2][2]; ctrlpoints[1][0][0]=points[0][0]; ctrlpoints[1][0][1]=points[0][1]; ctrlpoints[1][0][2]=points[0][2]; ctrlpoints[1][1][0]=0; ctrlpoints[1][1][1]=0; ctrlpoints[1][1][2]=back; ctrlpoints[1][2][0]=points[2][0]; ctrlpoints[1][2][1]=points[2][1]; ctrlpoints[1][2][2]=points[2][2]; ctrlpoints[2][0][0]=points[0][0]; ctrlpoints[2][0][1]=points[0][1]; ctrlpoints[2][0][2]=points[0][2]; ctrlpoints[2][1][0]=points[3][0]; ctrlpoints[2][1][1]=points[3][1]; ctrlpoints[2][1][2]=points[3][2]; ctrlpoints[2][2][0]=points[2][0]; ctrlpoints[2][2][1]=points[2][1]; ctrlpoints[2][2][2]=points[2][2]; } void drawMouth(struct Packet* p) { GLshort[4][3][3] ctrlpoints; CalculateMouthPoints(ctrlpoints, p); glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &ctrlpoints[0][0][0]); glEnable(GL_MAP2_VERTEX_3); glMapGrid2f(10, 0, 10, 10, 0, 10); glEnable(GL_AUTO_NORMAL); glEvalMesh2(GL_FILL, 0, 10, 0, 10); } void initEyes(){ void drawEyes(struct Packet* p){ GLshort eye[3][3][3]; CalculateEyePoints(eye, p, LEFT); glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &eyep[0][0][0]); glMapGrid2f(10, 0, 10, 10, 0, 10); glEvalMesh2(GL_FILL, 0, 10, 0, 10); CalculateEyePoints(eye, p, RIGHT); glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &eyep[0][0][0]); glMapGrid2f(10, 0, 10, 10, 0, 10); glEvalMesh2(GL_FILL, 0, 10, 0, 10); } void drawHead(struct Packet* p){ }
