Пример #1
0
void cyber_select_alpha_src(int src)
{
	cyber_grphw(0xfa, 0);

	cyber_out8(cyber_mmio, SEQINDEX, 0x49);
	cyber_out8(cyber_mmio, SEQDATA, (cyber_in8(cyber_mmio, SEQDATA) & ~0x60) | (src << 5));
	/*if alpha source comes form Overlay2, we need to disable Overlay2 color key function*/
	if(src == ALPHA_OVERLAY2) {
		/*Disable Overlay 2 in Source B path*/
		cyber_out8(cyber_mmio, GRAINDEX, 0xfa);
		cyber_out8(cyber_mmio, GRADATA, 0x08);
		cyber_out8(cyber_mmio, SEQINDEX, 0x4f);
		cyber_out8(cyber_mmio, SEQDATA, cyber_in8(cyber_mmio, SEQDATA) | 0x08);
		/*Disable V2 generally      */
		cyber_out8(cyber_mmio, GRADATA, 0x20);
		cyber_out8(cyber_mmio, SEQINDEX, 0x47);
		cyber_out8(cyber_mmio, SEQDATA, cyber_in8(cyber_mmio, SEQDATA) | 0x02);
		cyber_out8(cyber_mmio, GRADATA, 0x00);
	}
}
Пример #2
0
void cyber_cleanup_alpha(void)
{
	int i;

	cyber_grphw(0xfa, 0);
	for (i=0; i<16; i++) {
		if (i == 0x0A) {/*Don't clean up SyncLock video path if there is one*/
			cyber_out8(cyber_mmio, SEQINDEX, 0x40 + i);
			cyber_out8(cyber_mmio, SEQDATA, cyber_in8(cyber_mmio, SEQDATA) & 0x08);
		}
		else {
			cyber_out8(cyber_mmio, SEQINDEX, 0x40 + i);
			cyber_out8(cyber_mmio, SEQDATA, 0x00);
		}
	}

	cyber_grphw(0xfa, 8);
	for (i=0; i<16; i++) {
		if(i==0x0F) {/*Just in case there is a SyncLock video*/
			cyber_out8(cyber_mmio, SEQINDEX, 0x40 + i);
			cyber_out8(cyber_mmio, SEQDATA, 0x00);
			cyber_out8(cyber_mmio, SEQDATA, cyber_in8(cyber_mmio, SEQDATA) | 0xC0);
		}
		else {
			cyber_out8(cyber_mmio, SEQINDEX, 0x40 + i);
			cyber_out8(cyber_mmio, SEQDATA, 0x00);
		}
	}

	cyber_grphw(0xfa, 0x10);
	for (i=0; i<16; i++) {
		cyber_out8(cyber_mmio, SEQINDEX, 0x40 + i);
		cyber_out8(cyber_mmio, SEQDATA, 0x00);
	}

	cyber_grphw(0xfa, 0x18);
	for (i=0; i<16; i++) {
		cyber_out8(cyber_mmio, SEQINDEX, 0x40 + i);
		cyber_out8(cyber_mmio, SEQDATA, 0x00);
	}

	cyber_grphw(0xfa, 0x20);
	for (i=0; i<16; i++) {
		cyber_out8(cyber_mmio, SEQINDEX, 0x40 + i);
		cyber_out8(cyber_mmio, SEQDATA, 0x00);
	}

	cyber_out8(cyber_mmio, SEQINDEX, 0xA6);
	/*for video capture*/
	cyber_out8(cyber_mmio, SEQDATA, cyber_in8(cyber_mmio, SEQDATA) & 0xF0);

#if 0
	/*for 8-bit Index mode*/
	if(bEnabled8Bit) /*if we are in 8-bit alpha-blending mode, remember to disable it*/
		EnablePaletteMode(0);
#endif
	
	cyber_out8(cyber_mmio, GRAINDEX, 0xfa);
	cyber_out8(cyber_mmio, GRADATA, 0x80);
	cyber_out8(cyber_mmio, GRAINDEX, 0xe0);
	cyber_out8(cyber_mmio, GRADATA, cyber_in8(cyber_mmio, 0x03cf) | 0x04);
	cyber_out8(cyber_mmio, GRAINDEX, 0xfa);
	cyber_out8(cyber_mmio, GRADATA, 0x00);
}