Esempio n. 1
0
int main(int argc, char *argv[])
{
	SDL_Window *wind;
	SDL_Renderer *rend;
	grad **gradients;
	SDL_Event end;
	int x,y,z;
	char filename[70];
	int success = SUCCESS;
	srand(time(NULL));
	wind = init(&success);
	rend = createRenderer(wind, &success);
	gradients = generateRandomGradients();
	z = 0;
	while(success == SUCCESS)
	{
		srand(time(NULL));
	
		
		for(x = 0; x < SCREEN_WIDTH - 2; x++)
		{
			for(y = 0; y < SCREEN_HEIGHT - 2; y++)
			{
				drawPlasma(x,y,gradients,rend);
				while(SDL_PollEvent(&end) != 0 )
				{
					if(end.type == SDL_QUIT)
					{
						success = FAIL;
						break;
					}	
		
				}
			}
			
			if(end.type == SDL_QUIT)
			{
					success = FAIL;
					break;
			}
		}
		SDL_RenderPresent(rend);
		free(gradients);
		gradients = generateRandomGradients();
		sprintf(filename, "Output %d.bmp", z);
		saveToBitmap(filename, wind, rend);
		z++;
	}
	SDL_DestroyRenderer(rend);
	SDL_DestroyWindow(wind);
	free(gradients);
	SDL_Quit();
	return 0;
}
Esempio n. 2
0
void main(void) {

	//	WDTCTL = WDTPW | WDTHOLD;           // Stop watchdog timer

	initClock();
	initLFXT();

	SCB_CPACR = 0xf << 20; //enable the fpu

	DIO->rPADIR.b.bP2DIR = 0x07; //set onboard rgb led pins to output
	DIO->rPAOUT.b.bP2OUT = 0x00; //set onboard rgb led pins to off

	DIO->rPADIR.b.bP1DIR &= ~0x02; //button
	DIO->rPAREN.b.bP1REN |= 0x02; //button
	DIO->rPAOUT.b.bP1OUT |= 0x02; //button


	DIO->rPAOUT.b.bP2OUT |= 0x01;

	setUpUART();
//	testInitDMA();

//	PMAP->rKEYID = 0x2D52;
//	PMAP->rP2MAP23 = PM_UCA1SIMO;
//	PMAP->rP3MAP23 |= PM_UCA2SIMO;
//	PMAP->rKEYID = 0x00;

	initDisplay();
	setDisplayCurrentLimit(1.6f);



	ADC_init();

	ADC_setNumberOfChannels(4);
	ADC_setChannelSource(0, 15);
	ADC_setChannelSource(1, 14);
	ADC_setChannelSource(2, 13);
	ADC_setChannelSource(3, 8);

	initRandom();

//	uint16_t testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();
//	testRandom = getRandomMessageNumber();


	uint8_t lastButtonState = 0;

	uint16_t increment = 0;

	calcPalette();

	initTimer();
	getTimeDelta();
	float time = 0;

	float scrollRate = 25;
	float scrollStart = 0.0;

	int messageNumber = getRandomMessageNumber();
	int scrollTick = 0;
	int scrollDiv = 1;
	int scrollPosition = GFX_WIDTH;

	int staticHatIndex = 0;

	float textBrightness = 0.3;

	messageColours[staticHatIndex].h = 0.0;
	messageColours[staticHatIndex].s = 1.0;
	messageColours[staticHatIndex++].v = textBrightness;

	messageColours[staticHatIndex].h = 0.2;
	messageColours[staticHatIndex].s = 1.0;
	messageColours[staticHatIndex++].v = textBrightness;

	messageColours[staticHatIndex].h = 0.4;
	messageColours[staticHatIndex].s = 1.0;
	messageColours[staticHatIndex++].v = textBrightness;

	messageColours[staticHatIndex].h = 0.6;
	messageColours[staticHatIndex].s = 1.0;
	messageColours[staticHatIndex++].v = textBrightness;

	messageColours[staticHatIndex].h = 0.8;
	messageColours[staticHatIndex].s = 1.0;
	messageColours[staticHatIndex++].v = textBrightness;

	messageColours[staticHatIndex].h = 0.5;
	messageColours[staticHatIndex].s = 1.0;
	messageColours[staticHatIndex++].v = 0.0;

	getRandomColour();

	int showMessage = 0;

	int currentMessageColour = rand() % MESSAGE_COLOR_COUNT;

	while (1) {

		time += getTimeDelta();
		clearDisplay();
//		drawFlatBackground(0.5, 1.0, 0.1, 2.0);
		drawPlasma(time, 1.0, 0.05);

//		int16_t fontX = 0;

		if (showMessage) {
			setColourHSVf(randomColour.h, randomColour.s, randomColour.v);

			scrollTick++;
			if (scrollTick % scrollDiv == 0) {
				scrollPosition--;
				scrollTick = 0;
			}
			int textXPos = scrollPosition;

			textXPos = drawString(messages[messageNumber], textXPos, 0);

			if (textXPos < 0) {
//			scrollStart = time;
				scrollPosition = GFX_WIDTH;
				scrollTick = 0;
			messageNumber = (messageNumber + 1) % MESSGAE_COUNT;
//				messageNumber = getRandomMessageNumber();

				//skip empty ones
				while (messages[messageNumber][0] == '\0') {
//					messageNumber = getRandomMessageNumber();

					messageNumber = (messageNumber + 1) % MESSGAE_COUNT;
				}

				currentMessageColour = rand() % MESSAGE_COLOR_COUNT;
				getRandomColour();
			}

		}
		normaliseAndSwapBuffer();
//		EUSCI_A1->rTXBUF.a.bTXBUF = 'f';

		if (time > 600) {
			time = 0;
//			scrollStart = 0;
		}
//		increment = (increment + 1) % 2;
//
//		if (increment == 0) {
//			;
//		}
//		colourIndex = (colourIndex + 1) & 0x3f;

//		DIO->rPAOUT.b.bP2OUT ^= 0x01;

		uint8_t button  = readButton();
		if( button && !lastButtonState){
			//transition on
			DIO->rPAOUT.b.bP2OUT ^= 0x01;
			DIO->rPAOUT.b.bP2OUT ^= 0x02;
			showMessage ^= 0x01;

		}else if( !button && lastButtonState){
			//transition off;
		}

		lastButtonState = button;

	}

}