view plugins/crazychat/draw.c @ 12711:145f76e74a9f

[gaim-migrate @ 15055] Fix SF Bug #1384698 - "Last word in text auto replace not changed" This uses astro96's idea: 'when the user types something like "Hi how r u" they will see this (where the "^" is the cursor): "Hi how are u^" When they hit enter to send the message, instead of sending the message, the last word would be replaced: [Enter] "Hi how are you^" and then if they hit enter again it would send the message.' I code a preference for this, but have #if 0'ed it before committing. I don't think we need a preference to disable this. If it turns out I'm wrong, the code is right there to use. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Wed, 04 Jan 2006 03:01:32 +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){
}