plan 9 kernel history: overview | file list | diff list

1994/0412/port/devmouse.c (diff list | history)

1994/0325/sys/src/9/port/devmouse.c:115,1231994/0412/sys/src/9/port/devmouse.c:115,137 (short | long | prev | next)
1993/1006    
	{0, 0, 16, 16} 
}; 
 
1994/0412    
ulong cursorworkbits[16*4]; 
GBitmap cursorwork = 
{ 
	cursorworkbits, 
	0, 
	1, 
	0, 
	{0, 0, 16, 16}, 
	{0, 0, 16, 16} 
}; 
 
1993/1006    
void	Cursortocursor(Cursor*); 
int	mousechanged(void*); 
 
1994/0412    
extern	void	screenload(Rectangle, uchar*, int, int, int); 
extern	void	screenunload(Rectangle, uchar*, int, int, int); 
 
1993/1006    
enum{ 
	Qdir, 
1993/1009    
	Qcursor, 
1994/0325/sys/src/9/port/devmouse.c:156,1661994/0412/sys/src/9/port/devmouse.c:170,183
1993/1006    
{ 
	if(!conf.monitor) 
		return; 
	if(gscreen.ldepth > 3) 
1994/0412    
	if(gscreen.ldepth > 3){ 
1993/1006    
		cursorback.ldepth = 0; 
	else{ 
1994/0412    
		cursorwork.ldepth = 0; 
	}else{ 
1993/1006    
		cursorback.ldepth = gscreen.ldepth; 
		cursorback.width = ((16 << gscreen.ldepth) + 31) >> 5; 
1994/0412    
		cursorwork.ldepth = gscreen.ldepth; 
		cursorwork.width = ((16 << gscreen.ldepth) + 31) >> 5; 
1993/1006    
	} 
	cursoron(1); 
} 
1994/0325/sys/src/9/port/devmouse.c:434,4451994/0412/sys/src/9/port/devmouse.c:451,465
1993/1006    
			cursor.r.min = mouse.xy; 
			cursor.r.max = add(mouse.xy, Pt(16, 16)); 
			cursor.r = raddp(cursor.r, cursor.offset); 
			gbitblt(&cursorback, Pt(0, 0), &gscreen, cursor.r, S); 
			gbitblt(&gscreen, cursor.r.min, 
1994/0412    
			screenunload(cursor.r, (uchar*)cursorworkbits, 
				(16>>3) << gscreen.ldepth, cursorwork.width*BY2WD, 0); 
			memmove(cursorbackbits, cursorworkbits, 16*cursorback.width*BY2WD); 
			gbitblt(&cursorwork, cursorwork.r.min, 
1993/1006    
				&clr, Rect(0, 0, 16, 16), flipping? flipD[D&~S] : D&~S); 
			gbitblt(&gscreen, cursor.r.min, 
1994/0412    
			gbitblt(&cursorwork, cursorwork.r.min, 
1993/1006    
				&set, Rect(0, 0, 16, 16), flipping? flipD[S|D] : S|D); 
			mbbrect(cursor.r); 
1994/0412    
			screenload(cursor.r, (uchar*)cursorworkbits, 
				(16>>3) << gscreen.ldepth, cursorwork.width*BY2WD, 0); 
1993/1006    
		} 
	} 
	if(dolock) 
1994/0325/sys/src/9/port/devmouse.c:454,4641994/0412/sys/src/9/port/devmouse.c:474,482
1993/1006    
	if(dolock) 
		lock(&cursor); 
	if(--cursor.visible == 0) { 
		if(!hwcurs) { 
			gbitblt(&gscreen, cursor.r.min, &cursorback, Rect(0, 0, 16, 16), S); 
			mbbrect(cursor.r); 
			mousescreenupdate(); 
		} 
1994/0412    
		if(!hwcurs) 
			screenload(cursor.r, (uchar*)cursorbackbits, 
				(16>>3) << gscreen.ldepth, cursorback.width*BY2WD, 0); 
1993/1006    
	} 
	if(dolock) 
		unlock(&cursor); 
1994/0325/sys/src/9/port/devmouse.c:480,4861994/0412/sys/src/9/port/devmouse.c:498,503
1993/1006    
		mouse.redraw = 0; 
		cursoroff(0); 
		cursoron(0); 
		mousescreenupdate(); 
		unlock(&cursor); 
	} 
} 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)