nazwa karty graficznej przez glGetString(GL_RENDERER);

0

może ktoś to sprawdzić czy to działa bo u mnie jest pusto fragment pochodzi z strony
https://cpp0x.pl/kursy/Kurs-OpenGL-C++/Rozszerzenia/222

#include <windows.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <iostream.h>


int main(int argc, char* argv[])
{
	 char *nazwa=(  char * ) glGetString(GL_RENDERER);
	cout << nazwa;
	delete nazwa;
	return 0;
}
3

Musisz mieć aktywny kontekst OpenGL. Czyli otworzyć okno i zainicjalizować OpenGL. Bez tego nie dostaniesz nazwy renderera, bo go nie ma.
Inkludujesz glut.h, ta biblioteka pozwala na otworzenie okna. Możesz to też zrobić w czystym WinAPI.

Stringa zwracanego przez glGetString nie zwalniamy.

edit: prawidłowo powinno być const char *nazwa.

0

Jeśli nie jesteś pewny swojej maszyny to zbuduj sobie ten prosty program https://github.com/CalvinHartwell/windows-glxgears i uruchom binarkę z konsoli z parametrem -info.

1

glGetString returns a pointer to a static string describing some aspect of the current GL connection. name can be one of the following

Wywal ten delete bo on tylko psuje.

"static string" oznacza coś ala:

const char* getFoo() {
  static char buffer[256];
  // fill buffer
  return buffer;
}

A po drugie nie sprawdzasz kodu błędu a może takowy być zwracany: https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGetString.xhtml

Być może trzeba wcześniej zainicjalizować OpenGL zanim użyjesz tej funkcji?

A na koniec co faktycznie ta funkcja zwraca: https://github.com/pspdev/pspgl/blob/master/glGetString.c#L10 - Powinno działać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1