Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Slö uppdatering med Managed DD och C#

Postades av 2005-05-08 12:39:16 - Marcus Agbrant, i forum managed directX, Tråden har 2 Kommentarer och lästs av 2206 personer

Sitter och pillar med DirectDraw och C# för första gången. Efter att ha tittat på dom trevliga filmerna på MSDN TV så ville jag försöka blitta ut lite tiles. Skapade en extra surface som jag laddade in en bitmap med en tilesheet på. Sen använde jag två for-loopar, med Draw i ,på backbuffern för att rita ut tiles. Efter det flippade jag (nja... inte jag själv då utan i koden).

Allt körs från en loop som snurrar på så fort det går.

Detta resulterade i en uppdateringsfrekvens på kanske en bild var fjärde sekund.

Nedan följer delar av koden:

Initieringskoden:

protected void InitializeObjects()
                {        
                        running = true;
                        pos = new Point(100,100);

                        ddDev = new DirectDraw.Device();
                        ddDev.SetCooperativeLevel(this,DirectDraw.CooperativeLevelFlags.FullscreenExclusive);

                        SurfaceDescription Desc = new SurfaceDescription();
                        Desc.SurfaceCaps.PrimarySurface = true;
                        Desc.SurfaceCaps.Complex = true;
                        Desc.SurfaceCaps.Flip = true;
                        Desc.BackBufferCount = 1;
                        
                        primary = new Surface(Desc, ddDev);

                        SurfaceCaps caps = new SurfaceCaps();
                        caps.BackBuffer = true;

                        offscreen = primary.GetAttachedSurface(caps);

                        diDev = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Keyboard);
                        DirectInput.CooperativeLevelFlags flags;
                        flags = DirectInput.CooperativeLevelFlags.NonExclusive;
                        flags |= DirectInput.CooperativeLevelFlags.Foreground;
                        flags |= DirectInput.CooperativeLevelFlags.NoWindowsKey;
                        diDev.SetCooperativeLevel(this,flags);

                        Bitmap bmp = new Bitmap(Application.StartupPath + "\\map.bmp");

                        SurfaceDescription sDe = new SurfaceDescription();
                      
                        sDe.SurfaceCaps.OffScreenPlain = true;
                        sDe.Width = 64;
                        sDe.Height = 64;
                        sTS = new Surface(bmp,sDe,ddDev);
                }


Renderingsmetoden:

   protected void Render()
                {
                        offscreen.ColorFill(0xffffff);
                        for(int iOuterLoop = 0; iOuterLoop < 800; iOuterLoop = iOuterLoop + 32)
                        {
                                rD.X = iOuterLoop;
                                for(int iInnerLoop = 0; iInnerLoop < 600; iInnerLoop = iInnerLoop + 32)
                                {
                                        rD.Y = iInnerLoop;
                                        offscreen.Draw(rD, sTS, rS, df, de);
                                }
                        }
                       primary.Flip(offscreen, FlipFlags.Wait);
                }


Svara

Sv: Slö uppdatering med Managed DD och C#

Postades av 2005-05-08 13:38:15 - Johan Lindfors

Har provat din kod, men inte alls fått det slöa uppträdandet, vad skickar du in för DrawFlags och DrawEffects då, för de syns inte i den bifogade koden!


Svara

Sv: Slö uppdatering med Managed DD och C#

Postades av 2005-05-09 20:41:22 - Marcus Agbrant

Visade sig att koden var helt rätt och datorn som var dum.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 762
27 959
271 761
316
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies