Extensionausgabe: Unterschied zwischen den Versionen
Aus DGL Wiki
AL (Diskussion | Beiträge) |
(→Siehe auch: glCapsViewer verlinkt) |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
{{Hinweis|Damit der Code hier funktioniert, muss natürlich OGL initialisiert sein}} | {{Hinweis|Damit der Code hier funktioniert, muss natürlich OGL initialisiert sein}} | ||
− | <pascal> | + | <source lang="pascal"> |
Procedure DumpExtensions(Filename : String); | Procedure DumpExtensions(Filename : String); | ||
var | var | ||
Zeile 78: | Zeile 78: | ||
CloseFile(TexFile); | CloseFile(TexFile); | ||
end; | end; | ||
− | </ | + | </source> |
+ | |||
+ | = Siehe auch = | ||
+ | [[OpenGL-Extensions]]<br> | ||
+ | [http://delphigl.com/forum/viewtopic.php?f=13&t=10010 glCapsViewer], ein Tool von Sascha Willems, welches ebenfalls alle Extensions ausgibt. | ||
[[Kategorie:Anleitung]] [[Kategorie:Technik_oder_Algorithmus]] | [[Kategorie:Anleitung]] [[Kategorie:Technik_oder_Algorithmus]] |
Aktuelle Version vom 29. November 2013, 17:37 Uhr
Manchmal ist es nützlich, die Fähigkeiten einer Grafikkarte herauszufinden, also welche Extensions unterstützt werden, was die maximale Texturgröße ist, usw. Darum ist es immer wieder hilfreich, ein Programm auf der Platte zu haben, dass diese Eigenschaften z.B. in Form einer Textdatei ausspukt.
Damit der Code hier funktioniert, muss natürlich OGL initialisiert sein |
Procedure DumpExtensions(Filename : String);
var
p : PChar;
s, Extensions : String;
TexFile : Textfile;
i : Integer;
a : Array[0..1] of Integer;
b : Boolean;
begin
p := glGetString(GL_EXTENSIONS);
Extensions := p;
AssignFile(TexFile, Filename);
Rewrite(TexFile);
Writeln(TexFile, 'Renderer '+glGetString(GL_RENDERER));
Writeln(TexFile, 'Vendor '+glGetString(GL_VENDOR));
Writeln(TexFile, 'Version '+glGetString(GL_VERSION));
Writeln(TexFile);
glGetIntegerv(GL_MAX_LIGHTS, @i);
Writeln(TexFile, '#Lights ',i);
glGetIntegerv(GL_MAX_CLIP_PLANES, @i);
Writeln(TexFile, '#Clipplanes ',i);
glGetIntegerv(GL_MAX_MODELVIEW_STACK_DEPTH, @i);
Writeln(TexFile, '#Modelview stack depth ',i);
glGetIntegerv(GL_MAX_PROJECTION_STACK_DEPTH, @i);
Writeln(TexFile, '#Projection stack depth ',i);
glGetIntegerv(GL_MAX_TEXTURE_STACK_DEPTH, @i);
Writeln(TexFile, '#Texture stack depth ',i);
glGetIntegerv(GL_MAX_TEXTURE_SIZE, @i);
Writeln(TexFile, 'Max texture size ',i);
glGetIntegerv(GL_MAX_LIST_NESTING, @i);
Writeln(TexFile, 'Max list nesting ',i);
glGetIntegerv(GL_MAX_VIEWPORT_DIMS, @a);
Writeln(TexFile, 'Max viewport dims ', a[0], 'x', a[1]);
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, @i);
Writeln(TexFile, '#Textureunits ',i);
glGetIntegerv(GL_AUX_BUFFERS, @i);
Writeln(TexFile, '#Aux buffers ',i);
glGetBooleanv(GL_DOUBLEBUFFER, @b);
if b then
Writeln(TexFile, 'Doublebuffer [x] ') else
Writeln(TexFile, 'Doublebuffer [ ] ');
glGetBooleanv(GL_Stereo, @b);
if b then
Writeln(TexFile, 'Stereo [x] ') else
Writeln(TexFile, 'Stereo [ ] ');
if Pos('GL_NV_register_combiners', Extensions) <> 0
then
begin
glGetIntegerv(GL_MAX_GENERAL_COMBINERS_NV, @i);
Writeln(TexFile, '#Registercombiners ',i);
end;
Writeln(TexFile, '');
Writeln(TexFile, 'OpenGL extensions');
Writeln(TexFile, '-----------------');
s := Extensions;
While Length(s) > 0 do
begin
i := Pos(' ', s);
If i = 0
then
begin
Writeln(TexFile, s);
s := '';
end
else
begin
Writeln(TexFile, Copy(s, 1, i));
Delete(s, 1, i);
end;
end;
Writeln(TexFile, '-----------------');
CloseFile(TexFile);
end;
Siehe auch
OpenGL-Extensions
glCapsViewer, ein Tool von Sascha Willems, welches ebenfalls alle Extensions ausgibt.