tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
203
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    _Grubi _Grubi ist offline Mitglied Gold
    Registriert seit
    Sep 2009
    Beiträge
    216
    Hallo,

    ich habe ein merkwürdiges Problem, welches ich leider nicht akzeptabel gelöst bekomme.
    Ich zeichne mittels Directx9 und ID3DXFont:rawText eine Text auf den Bildschirm. Dieser wird dann für 1-2 Sekunden angezeigt und verschwindet wieder. Nach weiteren 2-3 Sekunden wird er wieder angezeigt und das Spiel geht von vorne los.

    Ich schaffe es den Text dauerhaft anzuzeigen, wenn ich meinen Render()-Aufruf von der Message-Loop in WM_PAINT packe und dort ein ValidateRect() ausführe. Allerdings geht dann die CPU Last auf 100%.

    Hat jemand eine Idee, woran das liegen kann?

    Mein Render() sieht so aus:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
        if( NULL == m_pDirect3D_Device )
            return;
     
        // Clear the backbuffer to a blue color
        m_pDirect3D_Device->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), -1.0f, 0 );
        
        // Begin the scene
        m_pDirect3D_Device->BeginScene();
     
        // DO THE RENDERING
        
        D3DCOLOR fontColor = D3DCOLOR_ARGB(255,255,0,0);   
        RECT rct;
        SetRect(&rct,0,0,m_windowWidth,m_windowHeight);
     
        m_textFont->DrawText(NULL, L"Hello World", -1, &rct, DT_LEFT | DT_NOCLIP, fontColor );
        
        // /DO THE RENDERING
        
        // End the scene
        m_pDirect3D_Device->EndScene();
        
        // Present the backbuffer contents to the display
        m_pDirect3D_Device->Present( NULL, NULL, NULL, NULL );

    Danke und Gruß,
    _Grubi
     

  2. #2
    cwriter cwriter ist offline Mitglied Gold
    Registriert seit
    Mar 2010
    Beiträge
    242
    Die CPU-Last liegt am dauernden Neuzeichnen. Mit einem _sleep() könnte man das Problem lösen. Wenn du den gesamten Code (mit der main() ) postest, könnte ich dir vielleicht mehr sagen.

    Gruss
    cwriter
     
    Intel inside - Idiot outside :-)

    Ich schreibe in C und bin Anfänger.
    ______________________________

    Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
    Danke

  3. #3
    _Grubi _Grubi ist offline Mitglied Gold
    Registriert seit
    Sep 2009
    Beiträge
    216
    Vom ursprünglichen Code ist mittlerweile leider recht wenig noch übrig und stark angewachsen in der Menge.

    Es war jedoch lediglich die WinMain() mit der Erstellung des Fensters und der MessageLoop und im WndProc() wurde WM_PAINT abgefangen. Ob ich den DirectX-Draw-Aufruf nun innerhalb der MessageLoop gemacht habe, nachdem alle Messages abgearbeitet waren, oder innerhalb von WM_PAINT, war dabei egal. ValidateRect() hatte jedoch nur in WM_PAINT funktioniert (mit der CPU-Erhöhung).

    Ich verstehe an der ganzen Sache leider noch nicht, warum die Schrift am Blinken ist. Der Aufruf erfolgt definitiv einige Male in der Sekunde (per Ausgabe überprüft) und dennoch wird sie nicht durchgehend angezeigt :/
     

  4. #4
    _Grubi _Grubi ist offline Mitglied Gold
    Registriert seit
    Sep 2009
    Beiträge
    216
    Ich hab das gerade nochmal eingebaut (im erweiterten Programm) und das Problem tauch plötzlich nicht mehr auf... Und wieder nichts bei gelernt :/

    Dennoch danke, cwriter!
     

Ähnliche Themen

  1. Text wird nicht angezeigt?!
    Von GFX-Händchen im Forum CSS
    Antworten: 3
    Letzter Beitrag: 01.11.08, 11:45
  2. Text von der Animation wird nicht angezeigt!
    Von meste im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 10.11.06, 12:52
  3. text wird nicht angezeigt
    Von Joe025 im Forum Flash Plattform
    Antworten: 21
    Letzter Beitrag: 22.07.05, 01:34
  4. Text-Spline wird nicht angezeigt!
    Von Aeon511 im Forum Cinema 4D
    Antworten: 7
    Letzter Beitrag: 25.01.05, 17:02
  5. Text wird nicht angezeigt
    Von Aloa im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 13.01.05, 20:07