Hallo
ich lasse einfach eine Hintergrundgrafik und ein Menü zeichnen.
Beides mache ich in der Haupschleife.
Das Hintergrundbild so:
back.DrawFast(0,0,hintergrund,DrawFastFlags.DoNotWait|DrawFastFlags.SourceColorKey );
Und das Menü wird erst aus einer XML Datei gelesen und dann auch so angezeigt.
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(menuFile);
System.Xml.XmlNode nd = doc.DocumentElement.FirstChild;
while(nd != null)
{
anzeige
nd = nd.NextSibling;
}
So nun habe ich eine auslastung von 50% ist das schon so viel bei sowenig eigendlich doch nicht?
MFG
Was für eine Hauptschlaufe? Ein Mainloop braucht man (mit .NET) normalerweise nur bei games ... ?
Hallo
Na ja ich habe mir die Beispiel Code unter samples angeschaut und da war es so:
public FullScreenDialog()
{
//
// Required for Windows Form Designer support.
//
InitializeComponent();
// Create a new DrawDevice.
InitDirectDraw();
// Keep looping until told to quit.
while (Created)
{
DisplayFrame(); // Process and draw the next frame.
Application.DoEvents(); // Make sure the app has time to process messages.
}
}
Und in der DisplayFrame mache ich halt diese Anzeige.
MFG
Mit diesem Loop zeichnest du das ganze immer neu ... klar hast da eine hohe CPU auslastung 😉
Du musst (im Fullscreen Modus) das Fenster nur neu Zeichnen wenn sich etwas geändert hat, zumindest solang alles statisch bleibt (nicht zb. ein ständig animierter hintergrund) ...
btw: auch mit statischem content würde ich trotzdem mit buffern arbeiten (muss ja nich gleich double buffering sein), ist nicht nur effizienter sondern auch viel flüssiger (kein "bildaufbau")
Hallo
Kannst du mir ungefähr eine Richtung geben wie ich es realisieren kann?
MFG
Naja, z.b. generell nur zeichnen wenn sich auch was geändert hat. Also zum ersten mal die While Schleife entfernen und einfach 1x rendern (DisplayFrame()) ... und dann halt bei den entsprechenden Ereignissen neu rendern ("interrupt") ... je nach art des interfaces (tastatur, maus..=) ist trotzdem ein main loop sinnvoll, der dann allerdings normalerweise nichts macht ausser es steht was an ("polling") ...