Jak wyciągnąć kawałek nazwy z glGetString.

0

Witam, do funkcji load mojej modyfikacji Half-Life dodałem coś co sprawdza rozszerzenia karty graficznej.

ATI ma problemy z NV_combiners i chciałem aby nie sprawdzał tego dla ATI.

 
const GLubyte *str = glGetString(GL_RENDERER);
if (str)
{

(...)

else if (!gl.NV_combiners_supported)

		{
			ConLog ("# Global check average: GOOD\n");
			ConLog ("# SUMMARY: Engine checked OpenGL calls. One of fragment\n");
			ConLog ("# shader's extensions is not supported. [Do you\n");
			ConLog ("# have latest drivers ?] If you are encountering\n");
			ConLog ("# graphical problems check your graphics card or\n");
			ConLog ("# contact with support.\n");
			ConLog ("# HINT: Update drivers or redownload the opengl32.dll\n");
		}

(...)

}

Teraz jak zrobić aby nie sprawdzał on tego jeżeli w stringu GL_RENDERER znajdzie się wyrażenie "ATI" ?

Pozdrawiam :)

0

Nie jestem pewien czy zrozumiałem, nigdy w sumie nie pisałem rozszerzeń do HL ;)

Chodzi ci o to żeby sprawdzić czy w napisie stworzonym w linijce

const GLubyte *str = glGetString(GL_RENDERER);

Znajduje się w dowolnym miejscu tekst "ATI"?

Ja bym użył tego:
http://www.cplusplus.com/reference/clibrary/cstring/strstr/

if (strstr(str, "ATI") == NULL) /* nie ma słowa ATI - sprawdzamy*/ ;
/* else - jest słowo ATI */

Mam nadzieję że dobrze odczytałem twoje intencje.

0

Dokładnie o to mi chodziło.

Zmieniłem trochę bo nie działało. Tak czy siak dzięki za odpowiedź i jednocześnie podpowiedź ^^

if( !strstr (( const char * )str, "ATI" )) )

A tak w ogóle, lepiej sprawdzić czy w nazwie karty grafiki znajduje się tekst ATI czy w nazwie producenta (GL_VENDOR) ? Bo zauważyłem, że niektóre sterowniki mają jakiś heksydecymalny syf zamiast nazwy :P

Pozdrawiam :)

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