Extensionausgabe: Unterschied zwischen den Versionen
Aus DGL Wiki
AL (Diskussion | Beiträge) |
|||
Zeile 79: | Zeile 79: | ||
end; | end; | ||
</pascal> | </pascal> | ||
+ | |||
+ | = Siehe auch = | ||
+ | [[OpenGL-Extensions]] | ||
[[Kategorie:Anleitung]] [[Kategorie:Technik_oder_Algorithmus]] | [[Kategorie:Anleitung]] [[Kategorie:Technik_oder_Algorithmus]] |
Version vom 16. August 2007, 11:46 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;