All pastes #296816 Raw Edit

Mine

public c v1 · immutable
#296816 ·published 2006-12-30 16:33 UTC
rendered paste body
/* * groupCreateCairoContext * */void groupCreateCairoContext(GroupSelection *group, CompScreen *s){	GroupTabBar *bar = group->tabBar;	GroupCairoContext *cc = (GroupCairoContext*) malloc(sizeof(GroupCairoContext));	cc->surface	= NULL;	cc->cairo	= NULL;	cc->texBuf  = NULL;	cc->texture = 0;	int w, h;	w = group->tabBar->region->extents.x2 - group->tabBar->region->extents.x1;	h = group->tabBar->region->extents.y2 - group->tabBar->region->extents.y1;		cc->texBuf = calloc (4 * w * h, sizeof (unsigned char));	glGenTextures(1, &cc->texture);	glEnable(GL_TEXTURE_RECTANGLE_ARB);	glBindTexture(GL_TEXTURE_RECTANGLE_ARB, cc->texture);	glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, cc->texBuf);	glDisable(GL_TEXTURE_RECTANGLE_ARB);	// creating the surface for cairo	cc->surface = cairo_image_surface_create_for_data (cc->texBuf, CAIRO_FORMAT_ARGB32, w, h, 4 * w);	if (cairo_surface_status(cc->surface) != CAIRO_STATUS_SUCCESS)	{		free(cc->texBuf);        printf ("create_cairo_context() - Couldn't create surface\n");        return;	}	// creating the cairo handler	cc->cairo = cairo_create(cc->surface);	if (cairo_status(cc->cairo) != CAIRO_STATUS_SUCCESS)	{		free(cc->texBuf);        printf ("create_cairo_context() - Couldn't create context\n");        return;	}	// clean the context	groupClearCairoContext(cc);	bar->cc = cc;}/* * groupPaintTabBar * */void groupPaintTabBar(GroupSelection * group){	if (!group->topTab || (group->tabBar->state == TabBarOff))		return;	CompWindow *topTab = TOP_TAB(group);	CompScreen *s = topTab->screen;	GROUP_SCREEN(s);	glDisableClientState(GL_TEXTURE_COORD_ARRAY);	glEnable(GL_BLEND);	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);	int width, height;	width = group->tabBar->region->extents.x2 - group->tabBar->region->extents.x1;	height = group->tabBar->region->extents.y2 - group->tabBar->region->extents.y1;	// text	glEnable(GL_TEXTURE_RECTANGLE_ARB);	glBindTexture(GL_TEXTURE_RECTANGLE_ARB, group->tabBar->cc->texture);	glBegin(GL_QUADS);	glTexCoord2i(0, 0);	glVertex2i(group->tabBar->region->extents.x1, group->tabBar->region->extents.y1);	glTexCoord2i(width, 0);	glVertex2i(group->tabBar->region->extents.x2, group->tabBar->region->extents.y1);	glTexCoord2i(width, height);	glVertex2i(group->tabBar->region->extents.x2, group->tabBar->region->extents.y2);	glTexCoord2i(0, height);	glVertex2i(group->tabBar->region->extents.x1, group->tabBar->region->extents.y2);	glEnd();	glDisable(GL_TEXTURE_RECTANGLE_ARB);	glColor4usv(defaultColor);	glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);	glDisable(GL_BLEND);	glEnableClientState(GL_TEXTURE_COORD_ARRAY);}