Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.06.2009, 21:35

Grüner Bildschirm

Hi
Wenn ich Einen Haupmenübildschirm Rendern will kommt irgendwie nur ein grüner Bildschirm. Hier Die Initialisierung des Bildes:

C-/C++-Quelltext

1
2
3
4
5
6
7
PDIRECT3DTEXTURE9 Result;

    Result = tbTextureManager::Instance().GetTexture("Title.jpg", TRUE, D3DX_DEFAULT, D3DX_DEFAULT, 1);
    if(Result == NULL) 
    {
        TB_ERROR("Fehler beim Laden von Title.jpg!", TB_ERROR);
    }

hier die Coordinaten:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Links unten

    aVertex[0].vPosition = tbVector3(0.0f, D3D.GetScreenSize().y, 0.5f);
    aVertex[0].fRHW = 1.0f;
    aVertex[0].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[0].vTex0 = tbVector2(0.0f, 1.0f);

    // Links oben

    aVertex[1].vPosition = tbVector3(0.0f, 0.0f, 0.5f);
    aVertex[1].fRHW = 1.0f;
    aVertex[1].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[1].vTex0 = tbVector2(0.0f, 0.0f);

    // Rechts unten

    aVertex[2].vPosition = tbVector3(D3D.GetScreenSize().x, D3D.GetScreenSize().y, 0.5f);
    aVertex[2].fRHW = 1.0f;
    aVertex[2].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[2].vTex0 = tbVector2(1.0f, 1.0f);

    // Rechts oben

    aVertex[3].vPosition = tbVector3(D3D.GetScreenSize().x, 0.0f, 0.5f);
    aVertex[3].fRHW = 1.0f;
    aVertex[3].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[3].vTex0 = tbVector2(1.0f, 0.0f);

eigentlich sollte das rauskommen:
http://img146.imageshack.us/i/titlef.jpg/
dabei kommt das raus:
http://img520.imageshack.us/i/falschesmen.png/

könnt ihr mir sagen was daran Falsch ist?
Metal ist keine Musik sondern eine Religion.

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

2

27.06.2009, 15:27

Tritt denn ein Fehler beim Laden der Datei auf (trifft die if-Bedingung zu) :?:
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

3

27.06.2009, 15:30

hier der Inhalt der Log:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
INFO: Die Direct3D-Komponente wird initialisiert... (tbdirect3d.cpp, Zeile 162, Funktion tbDirect3D::Init)
INFO: Erstellen des Fensters... (tbdirect3d.cpp, Zeile 169, Funktion tbDirect3D::Init)
INFO: Initialisierung von Direct3D... (tbdirect3d.cpp, Zeile 209, Funktion tbDirect3D::Init)
INFO: Die Initialisierung der Direct3D-Komponente ist abgeschlossen! (tbdirect3d.cpp, Zeile 274, Funktion tbDirect3D::Init)
INFO: Texturmanager wurde initialisiert! (tbtexturemanager.cpp, Zeile 43, Funktion tbTextureManager::Init)
INFO: Nachrichtenschleife wird betreten... (tribase.cpp, Zeile 179, Funktion tbDoMessageLoop)
INFO: Nachrichtenschleife beendet! (tribase.cpp, Zeile 247, Funktion tbDoMessageLoop)
INFO: Die Direct3D-Komponente wurde heruntergefahren. (tbdirect3d.cpp, Zeile 313, Funktion tbDirect3D::Exit)
INFO: Der Texturmanager wurde heruntergefahren. (tbtexturemanager.cpp, Zeile 59, Funktion tbTextureManager::Exit)
INFO: TriBase-Engine wird heruntergefahren... (tribase.cpp, Zeile 113, Funktion tbExit)
INFO: Alle Speicherbereiche freigegeben! (tbmemory.cpp, Zeile 116, Funktion tbMemExit)
INFO: Herunterfahren abgeschlossen! (tribase.cpp, Zeile 149, Funktion tbExit)


Im Volbildmodus kommt ein ganz gräßliches flimmern
Metal ist keine Musik sondern eine Religion.

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

4

27.06.2009, 15:43

Also im Log steht ja kein Fehler beim Laden...
Kannst du die Datei mit einem Bildbearbeitungsprogramm(Paint, etc.) öffnen, wenn nicht, dann ist die Datei vielleicht beschädigt worden beim Speichern( so was kann auch mal vorkommen)
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

27.06.2009, 16:00

Mit welchen Parametern initialisierst du dein Device?

6

27.06.2009, 16:08

ich ruf immer nur den Konfigurationsdialog auf
Metal ist keine Musik sondern eine Religion.

7

27.06.2009, 17:22

Könntest du noch ein wenig mehr Code zeigen? Evtl. machst du was beim Rendern falsch?

8

27.06.2009, 17:46

Render Metho im Hauptprogramm:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
tbResult RenderProc(float fTime)
{
    tbDirect3D& D3D = tbDirect3D::Instance();
    D3D->Clear(0, NULL, D3DCLEAR_TARGET, 0, 1.0f, 0);
    D3D->BeginScene();
    g_pIntro->Render();
    D3D->EndScene();
    D3D->Present(NULL,NULL,NULL,NULL);

    return TB_OK;
}

Render Methode im Intro Programm:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
tbResult CIntro::Render()
{
    SBackgroundVertex aVertex[4];

    // Puffer leeren und Szene beginnen

    tbDirect3D& D3D = tbDirect3D::Instance();
    D3D->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, tbColor(0.0f, 1.0f, 0.0f), 1.0f, 0);
    D3D->BeginScene();

    // ------------------------------------------------------------------


    // Die vier Vertizes des Hintergrundbilds erstellen (Rechteck)

    // Links unten

    aVertex[0].vPosition = tbVector3(0.0f, D3D.GetScreenSize().y, 0.5f);
    aVertex[0].fRHW = 1.0f;
    aVertex[0].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[0].vTex0 = tbVector2(0.0f, 1.0f);

    // Links oben

    aVertex[1].vPosition = tbVector3(0.0f, 0.0f, 0.5f);
    aVertex[1].fRHW = 1.0f;
    aVertex[1].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[1].vTex0 = tbVector2(0.0f, 0.0f);

    // Rechts unten

    aVertex[2].vPosition = tbVector3(D3D.GetScreenSize().x, D3D.GetScreenSize().y, 0.5f);
    aVertex[2].fRHW = 1.0f;
    aVertex[2].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[2].vTex0 = tbVector2(1.0f, 1.0f);

    // Rechts oben

    aVertex[3].vPosition = tbVector3(D3D.GetScreenSize().x, 0.0f, 0.5f);
    aVertex[3].fRHW = 1.0f;
    aVertex[3].Color = tbColor(0.4f, 0.4f, 0.4f, 0.5f);
    aVertex[3].vTex0 = tbVector2(1.0f, 0.0f);

    return TB_OK;
}

Load methode im Intro Programm:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
tbResult CIntro::Load()
{
    PDIRECT3DTEXTURE9 m_pTitle;

    // Titelbild laden

    m_pTitle = tbTextureManager::Instance().GetTexture("Data\\Title.jpg", TRUE, D3DX_DEFAULT, D3DX_DEFAULT, 1);
    if(m_pTitle == NULL) TB_ERROR("Fehler beim Laden von Data\\Title.jpg!", TB_ERROR);

    return TB_OK;
}
Metal ist keine Musik sondern eine Religion.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

27.06.2009, 17:49

Ähm, naja das wundert mich jetzt nicht so wirklich. Du löscht den BackBuffer mit grün und renderst nichts hinein... ;)

Du wirst da schon noch eine Variante von DrawPrimitive() und alles was dazugehört brauchen.

10

27.06.2009, 18:12

du hattest Recht dot. Es funzt!
Danke an alle :!:
Metal ist keine Musik sondern eine Religion.

Werbeanzeige