void D3D9RenderTargetTexture::RenderStringToBmp(const D3D9Font &Font, const String &Text, const Rectangle2i &Region, RGBColor FontColor, RGBColor BackgroundColor, Bitmap &Bmp) { D3D9ProtectRenderTarget Protection(_Device, true, true); SetAsRenderTarget(); _Device->Clear(0, NULL, D3DCLEAR_ZBUFFER | D3DCLEAR_TARGET, D3DCOLOR_ARGB(BackgroundColor.a, BackgroundColor.r, BackgroundColor.g, BackgroundColor.b), 1.0f, 0 ); Font.DrawString(Text, Vec2f(Region.Min), float(Region.Width()), FontColor); GetData(Bmp); }
int main (void) { InitUart(); //Init uart initInput(); //Init interrupt to start button, stop button and speed sensor initMotorPWM(); //Init Fast PWM on Timer 0 (Pin PE1) initSpeedTimer(); //Init Timer 1 (16bit normal mode) initCurrentADC(); //Init ADC on PC5 //Init speed array for (int i = 0; i<(SPEED_ARRAY_SIZE); i++) { speedArray[i]=65535; } while (1) { //Switch to stop state if something is rotten Protection(&Sm_State, &speed); switch (Sm_State) { case STATE_STOP: Stop(&motor); break; case STATE_RAMP_INIT: RampInit(&Sm_State, &motor); break; case STATE_RAMP_SEARCH: RampSearch(&Sm_State, &motor, &speed, &lastSpeed); break; case STATE_ACC: Acc(&Sm_State,&motor, speedArray); break; case STATE_COAST: Coast(&Sm_State, &motor, &speed); break; default: Sm_State = STATE_STOP; break; } } }
/* ------------------------------------------------------------- */ int _export PASCAL FAR FtpInit (HWND hParentWnd) { LPProcData pProcData, pLast; HWND hFtpWnd; int Rc; if (ToolsLocateProcData () != NULL) return FTPERR_SESSIONUSED; Rc=Tcp4uInit (); if (Rc!=TCP4U_SUCCESS) return FTPERR_WINSOCKNOTUSABLE; if (pFirstProcData==NULL || IsBadWritePtr(pFirstProcData, sizeof *pFirstProcData)) { pProcData = pFirstProcData = Calloc (1, sizeof *pProcData); if (pProcData==NULL) return FTPERR_INSMEMORY; pProcData->Next = pProcData->Prev = NULL; } else { for ( pLast=pFirstProcData ; pLast->Next!=NULL ; pLast= pLast->Next ); pLast->Next = pProcData = Calloc (1, sizeof *pProcData); if (pProcData==NULL) return FTPERR_INSMEMORY; pProcData->Prev = pLast; pProcData->Next = NULL; } /* Get task information */ pProcData->hInstance = GetTaskInstance (hParentWnd); /* port32.c */ /* fIdentifyThread callback sur l'appelant, nThread sa valeur */ pProcData->fIdentifyThread = GetCurrentThreadId; pProcData->nThreadIdent = GetCurrentThreadId(); /* est-ce que la fenetre interne a deja ete creee */ if (pProcData==pFirstProcData) {WNDCLASS wndClass; /* lstrcpy (szFTPDLL_CLASSNAME, FTP4W_CLASS_NAME); */ /* EnregistreClasse : Enregistre la classe de notre fenêtre */ memset (& wndClass, 0, sizeof wndClass); wndClass.lpszClassName = FTP4W_CLASS_NAME; wndClass.hInstance = pProcData->hInstance; wndClass.lpfnWndProc = (WNDPROC) DLLWndProc; Rc = RegisterClass (&wndClass); if (! Rc) { FtpRelease(); return FTPERR_CANTCREATEWINDOW; } } #ifdef UNE_FENETRE if (pProcData==pFirstProcData) { #endif /* création de la fenêtre */ hFtpWnd=CreateWindow (FTP4W_CLASS_NAME,/* window class name */ "", 0, /* window title, style */ 0, 0, 0, 0, /* x, y, cx, xy */ hParentWnd, /* a parent for this window */ NULL, /* use the class menu */ pProcData->hInstance, /* who created this wndw */ NULL ); /* no parms to pass on */ if (hFtpWnd==NULL) { FtpRelease (); return FTPERR_CANTCREATEWINDOW; } pProcData->hFtpWnd = hFtpWnd; #ifdef UNE_FENETRE } /* pas d'instance deja cree -> creation de la fenetre interne */ /* si la fenetre interne existe, on la reutilise simplement */ else pProcData->hFtpWnd = pFirstProcData->hFtpWnd; #endif /* On remplit les infos relatives à la tâche */ pProcData->hParentWnd = hParentWnd; /* renseignements FTP : Pas de session existante */ pProcData->ftp.ctrl_socket = INVALID_SOCKET; pProcData->ftp.data_socket = INVALID_SOCKET; /* juste pour noyer l'appel */ pProcData->ftp.bVerbose = Protection (); /* Protection rend FALSE */ pProcData->ftp.nTimeOut = FTP_DEFTIMEOUT; pProcData->ftp.hLogFile = HFILE_ERROR; pProcData->ftp.bPassif = FALSE; pProcData->ftp.nPort = FTP_DEFCTRLPORT; /* renseignement fichier */ pProcData->File.bAborted = FALSE; pProcData->File.bNotify = FALSE; pProcData->File.bAsyncMode = TRUE; pProcData->File.hf = HFILE_ERROR; pProcData->File.nAsyncAlone= FTP_DEFASYNCALONE; pProcData->File.nAsyncMulti= FTP_DEFASYNCMULTI; pProcData->File.nDelay = FTP_DEFDELAY; return FTPERR_OK; }; /* FtpInit */