Extensionausgabe: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Der Ausdruck ''<pascal>(.*?)</pascal>'' wurde ersetzt mit ''<source lang="pascal">$1</source>''.)
(Siehe auch: glCapsViewer verlinkt)
 
Zeile 81: Zeile 81:
  
 
= Siehe auch =
 
= Siehe auch =
[[OpenGL-Extensions]]
+
[[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, 18: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.

Info DGL.png 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.