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

Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

1

22.08.2014, 22:52

OpenGL 4 | Nichts wird gerendert?

Hi, ich arbeite Zurzeit an meinem Framework. Jedoch sehe ich auf dem Bildschirm das Schlimmste, das mir einfallen konnte: Nichts.

Mein Fenster bleibt einfach weis.
Anfangs dachte ich, das liegt daran das ich vergessen hatte "SwapBuffer" aufzurufen -> gefixt -> Fenster immer noch blank.

Danach dachte ich, ich würde keinen Rendercontext bekommen -> Gecheckt, Context ist gültig.

Meine Frage woran könnte das liegen?

Gruß Techie

src @ https://github.com/Techieman/Mechanika

P.S.: Erwartetes Ergebnis war bis jetzt ein blauer Hintergrund.
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

2

22.08.2014, 23:55

EDIT: Anscheinend gibt es ein Problem mit meiner Game Loop, sie wird wohl nie aufgerufen.
EDIT2: Wie es aussieht scheint blockiert der Folgende Code irgendwie....

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
while (PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);

            std::cout << " [*] Got message " << std::endl;

            if (msg.message = WM_PAINT)
                std::cout << " [*] WM_PAINT" << std::endl;

            if (msg.message == WM_QUIT)
                //
                // WM_QUIT is sent when PostQuitMessage(0) is sent
                //
                //  The window has been suspended
                //
                return 0;
        }

        //
        // The window is stil active
        //
        std::cout << "Exited 'while (PeekMessage(...))'" << std::endl;
        return 1;


-> WM_PAINT blockiert, weiß jemand wie man dieses Event mit PeekMessage Filtern kann? An der Stelle verstehe ich die Dokumentation nicht.
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Techie« (23.08.2014, 00:04)


Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

3

23.08.2014, 01:01

Zeile 8:
if (msg.message = WM_PAINT)
Es müsste wohl == heißen. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Techie

Alter Hase

  • »Techie« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

4

23.08.2014, 01:05

Jau, tatsächlich.

Ich habe es jetzt so gelöst:

C-/C++-Quelltext

1
2
if( msg.message == WM_PAINT)
     return 1;
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

5

23.08.2014, 10:40

Tipp: Schalte immer so viele Warnungen wie möglich ein und nimm sie ernst. :)

RmbRT

Treue Seele

Beiträge: 169

Wohnort: Darmstadt

Beruf: Student

  • Private Nachricht senden

6

23.08.2014, 12:07

Das ist doch komplett gültiger code, abgesehen davon, dass es weniger sinn bei konstanten als bei funktionen als rechtes argument macht.

MfG,
RmbRT
"Dumm ist, wer dummes tut."

FSA

Community-Fossil

  • Private Nachricht senden

7

23.08.2014, 12:41

Ich glaube es gab mal eine Diskussion, ob man die Konstante nicht lieber auf die linke Seite schreiben solle.
@Techie: Wenn du dir lieber so einen Stil angewöhnen willst, dann schreib einfach alles so.

C-/C++-Quelltext

1
if(WM_PAINT == msg.message)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

8

23.08.2014, 13:27

Beim MSVC gibt es nur eine Warnung wenn man die Warnstufe erhöht.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

23.08.2014, 16:21

Das ist doch komplett gültiger code, abgesehen davon, dass es weniger sinn bei konstanten als bei funktionen als rechtes argument macht.

Natürlich ist es gültig, aber idR wird ne Warnung geworfen, weil es vermutlich zu 99% ein Fehler ist.
Bei mir ist so ein Statement zu 100% Absicht.
if (auto somePtr = foo.getBar())
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

23.08.2014, 18:21

Ja, weil du dort eine Variable definierst.
Hier wäre == sogar ungültig, nicht wahr?

Werbeanzeige