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; }
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; } }