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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

06.07.2012, 03:50

Was für eine AV? Ist glew() oder gl3w() oder was auch immer du benutzt, um die Extensions zu laden, zu dem Zeitpunkt korrekt initialisiert und ein gültiger OpenGL Context vorhanden?

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

12

06.07.2012, 11:35

Ich benutze dazu GLee mit GLUT. Vielleicht hilft dir das schon?

13

06.07.2012, 14:18

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void OpenGL_Init::oglSetup()
{
    glewInit(); // Initialisierung

    memset(&pfd, 0, sizeof(pfd));
    pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
    pfd.nVersion = 1;
    pfd.dwFlags = PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER;
    pfd.iPixelType = PFD_TYPE_RGBA;
    pfd.cColorBits = 32;
    pfd.cDepthBits = 32;
    pfd.cAlphaBits = 8;

    hDC = GetDC(hWnd);
    iFormat = ChoosePixelFormat(hDC, &pfd);
    SetPixelFormat(hDC, iFormat, &pfd);

    hRC = wglCreateContext(hDC);
    wglMakeCurrent(hDC, hRC);
}


Reicht das als Initialisierung dafür? :(

MfG
Check

14

06.07.2012, 16:45

Was für einen Meldung kriegst du mit glGetError()?

15

06.07.2012, 17:41

Ich kann glGetError ja nur vor dem Knackpunkt ausführen, weil es beim Knackpunkt ja die Meldung vom Debugger gibt.
Da sagt er "0". Da das mit keinem hiervon stimmig ist, dürfte alles OK sein.
Ist es unpassend dafür glew zu verwenden?

MfG
Check

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

06.07.2012, 17:44

Naja, unter Windows musst du glGenBuffers() etc. irgendwo herbekommen, weil die normale opengl32.dll bietet diese Funktionen nicht. Lädst du die Funktionen selbst oder verwendest du eine Library?

17

06.07.2012, 17:50

Das dürfte das Relevante sein:

Zitat

#include <gl\glew.h>
#include <gl\GLU.h>

#pragma comment(lib, "OpenGL32.lib")
#pragma comment(lib, "Glu32.lib")
#pragma comment(lib, "Glew32.lib")

Den Include zu GL.h kann ich dem Fall ja weglassen, jedenfalls gibts keine derartige Meldung des Nichtfindens von irgendwas was dies beträfe. :)
Ich hab echt keine Ahnung woran das liegen könnte.

MfG
Check

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Checkmateing« (06.07.2012, 17:59)


DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

18

06.07.2012, 18:03

GL.h wird in glew.h oder GLU.h eingebunden. Versuch mal GLee.

Für das Fenster:

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
int main(int argc, char** argv){
    // GLUT initalisieren
    glutInit(&argc, argv);
    glutInitWindowPosition(wndPosition[0], wndPosition[1]);
    glutInitWindowSize(wndSize[0], wndSize[1]);
    glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE); // rgba, double buffer, KEIN depth buffer (GL_DEPTH)

    // GLUT Fenster
    glutCreateWindow(wndTitle);
    glutReshapeFunc(reshape);
    glutIdleFunc(logic);
    glutDisplayFunc(render);
    
    // GLUT Eingabe
    glutKeyboardFunc(keyPressed);
    glutKeyboardUpFunc(keyReleased);
    glutPassiveMotionFunc(mouseMoved);
    glutMotionFunc(mouseDragged);

    // OpenGL Einstellungen
    //glEnable(GL_DEPTH_TEST);
    //glEnable(GL_CULL_FACE);
    //glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    
    // main loop starten
    glutMainLoop();

    return 0;
}

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

19

06.07.2012, 18:11

Du verwendest also glew!? Hast du glew auch korrekt initialisiert?

Btw: Libraries per #pragma zu linken, halt ich für eine arge Unsitte, sowas sollte man besser über die Linkereinstellungen regeln, dort wo es hingehört...

GLee wird wohl nichtmehr weiterentwickelt und glew ist auch nicht wirklich kompatibel mit neuren OpenGL Versionen. Ich würde zu gl3w raten...

20

06.07.2012, 18:11

Das benutzte ich mal, ich würde allerdings doch lieber bei dem jetzigen bleiben. Da habe ich irgendwie mehr Kontrolle über den Main-Loop und so... :S
Soll ich vielleicht mal alles hochladen ob der Käse nicht doch wo anders sitzt?

MfG
Check

EDIT: Dann nehme ich mal gl3w. Mal sehen obs dann noch auftaucht. Melde mich dann.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Checkmateing« (06.07.2012, 18:22)


Werbeanzeige

Ähnliche Themen