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

Tobiking

1x Rätselkönig

  • Private Nachricht senden

21

06.07.2012, 19:05

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

Die Reihenfolge ist erst OpenGL Kontext erzeugen, dann glewInit() aufrufen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

22

06.07.2012, 19:09

Stimmt, da ist also doch das glewInit() da, aber so rum isses natürlich witzlos...

23

06.07.2012, 19:14

Ich dachte mir schon, dass das falsch ist.
Auch so herum gibts den gleichen Fehler.

C-/C++-Quelltext

1
2
3
4
5
6
void OpenGL_Init::oglSetup()
{
    //OpenGL, so wie im anderen Code enthalten

    glewInit();
}


MfG
Check

24

06.07.2012, 20:09

Versuch mal vor glewInit() das hier: glewExperimental = GL_TRUE

25

06.07.2012, 20:30

Hat sich erledigt. Syntax ist schon aufgeräumt.
Aber danke! Werde evtl. darauf später mal zurückgreifen müssen.

MfG
Check

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

26

06.07.2012, 20:39

D.h. mit gl3w() funktioniert's jetzt?

27

06.07.2012, 21:45

Leider nein. Aber jetzt dürfte es definitiv am Code liegen, nicht? :crazy:

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
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <gl3.h>
#include <gl3w.h>
#include <gl\glut.h>

void Render();
void InitRender();

int main(int argv, char** argc)
{
    glutInit(&argv, argc);
    glutInitWindowPosition(400, 300);
    glutInitWindowSize(640, 480);
    glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE|GLUT_DEPTH);

    gl3wInit();

    glutCreateWindow("OpenGL and GLUT Window");
    glutDisplayFunc(Render);

    InitRender();

    glEnable(GL_DEPTH_TEST);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    glutMainLoop();
}

    GLuint g_VertexBuffer;
void InitRender()
{
    static const GLfloat Triangle[] = {1.f, 1.f, 1.f,
                                       1.f, 0.f, 0.f,
                                       0.f, 1.f, 0.f};

    gl3wGenBuffers(1, &g_VertexBuffer);
    gl3wBindBuffer(GL_ARRAY_BUFFER, g_VertexBuffer);
    gl3wBufferData(GL_ARRAY_BUFFER, sizeof(Triangle), &Triangle, GL_STATIC_DRAW);
}

void Render()
{
    gl3wEnableVertexAttribArray(0);
    gl3wBindBuffer(GL_ARRAY_BUFFER, g_VertexBuffer);
    gl3wVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);

    gl3wDrawArrays(GL_TRIANGLES, 0, 3);
 
    gl3wDisableVertexAttribArray(0);

    glutPostRedisplay();
}

Hach man. :(

MfG
Check

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

28

06.07.2012, 21:58

Und was passiert jetzt genau?

Btw: Du kannst ganz normal mit den gl* Funktionen arbeiten, die gl3w* sind nur die internen Namen ;)

29

06.07.2012, 21:58

Ich denke du zeichnest in einem Bereich, den du nicht sehen kannst (korrigiert mich, wenn ich falsch liege). Versuch die Koordinaten:

-1.0f, -1.0f, 0.0f,
1.0f, -1.0f, 0.0f,
0.0f, 1.0f, 0.0f,

30

06.07.2012, 22:06

Es ist immer noch Access Violation. Gleiche Stelle, gleiches Problem.

(Link)


MfG
Check

Werbeanzeige

Ähnliche Themen