Forza aggiornamento costante della finestra WINE

1

Sto cercando di eseguire Imperialism 2 su Crossover (WINE), in modalità desktop virtuale. Il gioco funziona quasi eccetto che lo schermo non si aggiorna.

Ciò che intendo è che la finestra del vino è inizialmente nera. Se poi trascino un'altra finestra su di essa e la trascino nuovamente, la finestra ora mostra un'immagine del gioco a questo punto. Se poi faccio clic sulle cose all'interno del gioco, nulla accade visivamente, finché non trascino un'altra finestra in cima al WINE.

Quindi quello che sembra accadere è che la finestra del WINE non si rende conto che è necessario continuare ad aggiornare ciò che sta mostrando. Solo quando i suoi contenuti sono oscurati e poi rivelati di nuovo, si nota che deve ridisegnare. Questo è abbastanza frustrante: il gioco sta andando bene, i grafici sono disegnati correttamente, ma non vengono visualizzati.

C'è un modo per continuare a inviare un "messaggio di ridisegno" a una finestra per forzare l'esecuzione di questi ridisegni? Imp 2 è un gioco a turni, quindi se i ridisegni si verificano solo poche volte al secondo, andrebbe bene.

    
posta Zarkonnen 05.11.2012 - 19:24
fonte

1 risposta

0

Ho trovato un modo assolutamente orribile ma funzionale per risolvere il mio problema. Innanzitutto, scarica e installa Afloat , che ti consente di impostare finestre come sovrapposizioni traslucide globali non selezionabili.

Quindi, crea un file HTML il cui sfondo passa dal bianco puro al bianco quasi puro 20 volte al secondo. Qualcosa del genere:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Strobe Light</title>
    <script language="javascript" type="text/javascript">
      <!--
      var c = 0;

      function strobe() {
        document.bgColor = c ? '#fefefe' : '#ffffff';
        c = (c + 1) % 2;
      }

      function startStrobe() {
        setInterval(strobe, 50);
      }
      -->
    </script>
  </head>
  <body onload="startStrobe();">
  </body>
</html>

Infine, apri questo file in Safari, ridimensiona la finestra per riempire il più possibile lo schermo e usa Afloat per impostare la finestra come una sovrapposizione non cliccabile globale quasi trasparente. Il risultato? L'intero schermo (compresa la finestra WINE) è obbligato ad aggiornare ogni 50 ms.

È completamente orribile? Sì. Ma funziona.

    
risposta data 09.11.2012 - 12:50
fonte

Leggi altre domande sui tag