• [^] # Re: DCE, Quartz et Fresco

    Posté par . En réponse à la dépêche DCE, Quartz et Fresco. Évalué à 1.

    Parce que ça ne change rien au problème:
    - soit ton appel au callback est mis dans une file jusqu'à ce que ton app veuille bien s'en occuper [ce qui revient à un message].
    - soit tu risques de foutre en l'air tes données... (tu es en train de calculer quoi afficher, hop en plein milieu on te coupe et on te demande d'afficher...). [note: cela revient à un thread éventuellement non interruptible!].

    La solution utilisée en général (sous Win32, je suppose que c'est pareil sous X, si qq peut confirmer?) est de faire "à la main" un double buffering: lors du paint on ne fait que blitter sa surface, lors du calcul on crée cette surface... ça pose un problème à gérer: l'intervalle de temps entre la mise à jour de la surface (on vire l'ancienne, on la remplace par la nouvelle, à ce moment précis, un paint peut foirer). Il faut donc, le protéger grâce au mécanismes de synchro qui vont bien... Autre solution: puisque ce mécanisme est nécessaire, que son algo est très général... pourquoi ne pas l'intégrer dans l'"OS" (X, Win32, ...)? et par la même occasion profiter des 128Mo de mémoire que l'on trouve sur certaines cartes graphiques...? Et même pourquoi pas du dernier effet de la mort qui tue présent sur la GeForce Radeon FX 9800?