pidgin/plugins/crazychat/face.c

Sun, 05 Apr 2020 20:55:28 +0100

author
David Woodhouse <dwmw2@infradead.org>
date
Sun, 05 Apr 2020 20:55:28 +0100
branch
release-2.x.y
changeset 40394
3c8f61de927c
parent 31294
73607ab89c6f
permissions
-rw-r--r--

screenshare: Add XDP portal ScreenCast support

With Wayland we can't just share X11 windows/screens; we need to ask for
a stream from the compositor. Add support for that, falling back to the
direct mode if it isn't present (since *Pidgin* can be using X11 even
when the system is Wayland).

https://flatpak.github.io/xdg-desktop-portal/portal-docs.html

#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){}

mercurial