begin process at 2012 05 30 13:59:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Timer + OpenGL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Timer + OpenGL

mercredi 21 janvier 2004 à 14:40:06 | Timer + OpenGL

glipper

Membre Club

Bonjour,
je possede un environnement MDI, qui contient une fenetre mere et deux filles (l'une des filles est en OpenGL)
J'ai mis un Timer dans la fenetre mère :

WM_CREATE:
SetTimer(hwnd, 1, 3000, NULL);
WM_TIMER
MessageBox(NULL, "iop", "iop", NULL);
WM_CLOSE:
KillTimer(hwnd, 1);

Lorsque je lance le programme, seule la fenetre mere se lance. Je reçois alors bien les MessageBox qui me montrent que le Timer marche. Je lance alors la fenetre fille qui n'a pas d'openGL, le Timer marche encore. Je lance ensuite celle qui contient l'OpenGL, le timer marche plus !!!

L'openGL bloquerait-il les messages WM_TIMER de la fenetre mere ??? Comment puis-je faire un timer alors ??

Glipper

ps : j'ai aussi essayé de faire un SetTimer(NULL, NULL, 3000, &procedure) dans le WinMain, mais il y a le même probleme.
mercredi 21 janvier 2004 à 19:46:30 | Re : Timer + OpenGL

sebseb42

pour ton timer avec fonction callback, tu ne dois pas mettre le & devant, car le nom d'une fonction represente deja son adresse
dimanche 15 février 2004 à 10:39:49 | Re : Timer + OpenGL

Maegis

Et ben , j'ai le meme probleme, j'utilise openGL et un timer et je ne recois aqucun message de timer, si je vire le code openGL je recois les messages de timer
Est ce que tu a reussi a ressoudre ton probleme ? Ca me serait bien utile
dimanche 15 février 2004 à 11:10:42 | Re : Timer + OpenGL

glipper

Membre Club

Je n'ai pas reglé le probleme, mais j'ai cette petite astuce, ce qui en revient à peu pres au même qu'un timer en fait :

dans la boucle à la fin du WinMain, j'ai rajouté une fonction que j'ai appelé Refresh() :


...
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
ReFresh();
...


et dans cette fonction, je recree une sorte de timer à l'aide de l'heure : (la fonction timeGetTime renvoi l'heure en ms....)


void ReFresh()
{
static unsigned int TimeStart = timeGetTime(),TimeStop;
TimeStop = timeGetTime();

if (TimeStop - TimeStart > 1000)
{
....
instructions toute les 1000ms
....

TimeStart = TimeStop;
}


Voila voila, en esperant que ça pourra t'aider :)
Glipper
dimanche 15 février 2004 à 12:30:36 | Re : Timer + OpenGL

Maegis

Ouais je crois que je vais faire la meme chose.
Merci
dimanche 15 février 2004 à 15:06:07 | Re : Timer + OpenGL

sebseb42

sinon avec la methode d'avant, essaye de placer ton SetTimer dans l'evenement WM_INITDIALOG et ton KillTimer dans WM_QUIT

je suis pas sure du tout, j'utilise toujours les Timer comme tu le fait dans la seconde methode, mais c'est toujours bon d'essayer autre chose pour voir si ca fonctionne

si tu essaye et que ca fonction, merci pour le feedback ;)
mardi 24 février 2004 à 13:18:08 | Re : Timer + OpenGL

krust

Moi je fais pointé mon timer sur une fonction de type Timer
je vous montre mon exemple que j'utilise pour mon doom like



/* Fonctions appelées par des timers

Auteur : Krust

Date : 18 02 04

*/
UINT uResult;

void CALLBACK Moves(HWND,UINT,UINT,DWORD);
void CALLBACK GetFPS(HWND,UINT,UINT,DWORD);

void CreatTimers(void){
uResult = SetTimer(hWnd,(int)1,10,(TIMERPROC) Moves);
uResult = SetTimer(hWnd,(int)2,1000,(TIMERPROC) GetFPS);
}

VOID CALLBACK Moves(
HWND hwnd, // handle to window for timer messages
UINT message, // WM_TIMER message
UINT idTimer, // timer identifier
DWORD dwTime) // current system time
{

// Actions keyboard

if(keys[VK_UP]) SetPosition(1);
if(keys[VK_DOWN]) SetPosition(0);
if(keys[VK_LEFT]) SetPosition(3);
if(keys[VK_RIGHT]) SetPosition(2);

// Actions Mouse

GetCursorPos(&mousePos);
SetViewMouse(mousePos,MouseRef);
SetCursorPos(MouseRef.x,MouseRef.y);

}

VOID CALLBACK GetFPS(
HWND hwnd, // handle to window for timer messages
UINT message, // WM_TIMER message
UINT idTimer, // timer identifier
DWORD dwTime) // current system time
{
FPS2=FPS;
FPS=0;
}




J4ai trouvé le skellette des fonction sur msdn et j'ai facilement réussi à les adapter.
je trouve ça quand même plus pratique.
======================================

KRUST
mercredi 25 février 2004 à 18:14:04 | Re : Timer + OpenGL

Maegis

Oui mais dans mon cas je ne peut pas faire [...]
mercredi 25 février 2004 à 19:07:35 | Re : Timer + OpenGL


Cette discussion est classée dans : timer, fenetre, lance, opengl, wm


Répondre à ce message

Sujets en rapport avec ce message

Communication entre fenetre [ par manu ] bonjour,je cherche a communiquer entre deux de mes programmes.je lance deux EXE ecrit en C et je voudrais que le projet 1 puisse passer des parametres inserer une fenêtre opengl dans une autre fenetre [ par 20100 ] je cherche à inserer un programme que j'ai fait avec opengl dans une fenêtre windows classique(avec des boutons ...)pour l'instant tout marche mais da Probleme d'execution avec VC++ [ par AntiSlash ] petit probleme incomprehensible (?):j'utilise VC++ 5.0 et je dessine une fenetre. Quand je mets rien dans la fenetre, et que je creer mon .exe, je le Fenetre OpenGL et DOS [ par Pyou ] Bonjour !Voila, je programme un petit jeu en opengl et j'aimerais pouvoir afficher la valeur de certaines variables pour mes test dans une fenetre dos AU SECOURS !!! [ par petronius ] je viens de trouver un probleme tres interessant :j'ai fait un jeu avec des IA (3) en directx, et donc un timer de 100ms qui lance les differentes IA Fermer une fentre Opengl [ par iilyma ] bonjour, je cherche comment fermer une fenetre opengl tout en conservant la fenetre dos active. J'ai essayé GlutWindowDestroy mais cela provoque une e Fenetre OpenGL [ par stockley81 ] J'expose le probleme:J'ai une fenetre cree avec OpenGL d'ouverte. Quand je clique a un endroit precis, une 2eme fenetre est cree. Je voudrais pouvoir, OPENGL redimemsionnement [ par haklia ] Bonjour, voila g un probleme en fait :g une scene en 3D faites avec glut, et lorsque je redimensionne ma fenetre avec la souris, il y a certaine taill SendMessage() & WM_KEYUP [ par Manson ] Salut a tous,voila, j'ai un process qui tourne en multithread pour chopper les touches utiliser et j'aimerai qu'il les envoi a la fenetre principale ( gestion de la souris dans une fenêtre OpenGL [ par philmus ] salut, je commence à écrire des petits pgs OpenGL; maintenant, je doit gérer l'entrée (clavier et souris) pour interagir avec l'utilisateur. Le pb


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,109 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales