Ejemplo n.º 1
0
void splite(int b,int p){
	if(b==-1 || count[b]==p)return;
	int t=newnode();
	reverseblock(b);
	if(same[b])	fillblock(t, count[b]-p, samevalue[b], 	next[b]);
	else		fillblock(t, count[b]-p, data[b]+p, 	next[b]);
	count[b]=p;
	next[b]=t;
	maintainblock(b);
}
Ejemplo n.º 2
0
void makesame(int p,int n,int v){
	int b,t;
	find(p,b);
	splite(b,p);
	for(t=next[b]; t!=-1 && n>count[t];n-=count[t], t=next[t])
		fillblock(t, count[t], v, next[t]);
	if(n && t!=-1){
		splite(t,n);
		fillblock(t, n, v, next[t]);
	}
	maintainlist(b);
}
Ejemplo n.º 3
0
void splite(int b,int p){
	if(b==-1 || bcount[b]==p)return;
	int t=newnode();
	fillblock(t, data[b]+p, bcount[b]-p, next[b]);
	next[b]=t;
	bcount[b]=p;
}
Ejemplo n.º 4
0
void insert(int p,int n,int str[]){
	int b,t,i;
	find(p,b);
	splite(b,p);
	for(i=0; i + BLOCKSIZE <= n; i+=BLOCKSIZE){
		t=newnode();
		fillblock(t, BLOCKSIZE, str+i, next[b]);
		next[b]=t;
		b=t;
	}
	if(n-i){
		t=newnode();
		fillblock(t, n-i, str+i, next[b]);
		next[b]=t;
	}
	maintainlist(b);
}
Ejemplo n.º 5
0
static int draw_frame(uint8_t * src[])
{

    int numlines = vo_dga_lines;

    char *s, *d;

    s = *src;
    d = CURRENT_VIDEO_BUFFER.data + vo_dga_vp_offset;

    mem2agpcpy_pic(d, s,
                   vo_dga_bytes_per_line,
                   numlines,
                   vo_dga_bytes_per_line + vo_dga_vp_skip,
                   vo_dga_bytes_per_line);

    // DBG-COde

#if 0
    d = CURRENT_VIDEO_BUFFER.data + vo_dga_vp_offset;
    fillblock(d, 0, 10, 0x800000ff);
    fillblock(d, 10, 10, 0x8000ff00);
    fillblock(d, 20, 10, 0x80ff0000);
    fillblock(d, 30, 10, 0xff0000ff);
    fillblock(d, 40, 10, 0x800000ff);
    fillblock(d, 50, 10, 0x0f0000ff);
#endif
    return 0;
}