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);
}
예제 #2
0
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;
		}
		
	}

}
예제 #3
0
/* ------------------------------------------------------------- */
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 */