Today I will show you how we find stuff about graphics hardware.
We will use two modules: pyopengl and pygame.
Modules can import other modules.
Each module is only imported once per interpreter session.
>>> import pygame
>>> import OpenGL
The imports are taken in the local symbol table, so we need to do this:
>>> from pygame import *
>>> from OpenGL import *
>>> from OpenGL.GL import *
>>> from OpenGL.GLUT import *
The next thing you must do is call the function glutInit.
>>> glutInit()
['foo']
Use pygame
init function to initialize the window:
>>> pygame.init()
(6, 0)
>>> pygame.display.set_mode((10,10),OPENGL|DOUBLEBUF)
Note:If we not create the window the next commands will not work.
About the beautiful glGetString function, we know.
This return a string describing the current GL connection.
You can use dir() and help() functions to see more.
But we see bellow, some example:
>>> dir(glGetString)
['__call__', '__class__', '__ctypes_from_outparam__', '__delattr__',
'__dict__','__doc__', '__format__', '__getattribute__', '__hash__',
'__init__', '__module__',
'__name__', '__new__', '__nonzero__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__',
'__subclasshook__',
'__weakref__', '_b_base_', '_b_needsfree_', '_flags_', '_objects',
'_restype_', 'argtypes', 'errcheck', 'restype']
>>> dir(glGetString())
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__',
'__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
Now, the parameters of this function are :
glGetString(GL_VERSION)
glGetString(GL_VENDOR)
glGetString(GL_RENDERER)
glGetStringi(GL_EXTENSIONS, i)
Bellow, we see how we use these parameters:
>>> glGetString(GL_VERSION)
'2.1.2 NVIDIA 173.14.22'
>>> glGetString(GL_VENDOR)
'NVIDIA Corporation'
>>> glGetString(GL_RENDERER)
'GeForce FX 5200/AGP/SSE/3DNOW!'
Because the GL_EXTENSIONS is a space-separated list of supported extensions to GL, we can use these commands:
>>> print glGetString(GL_EXTENSIONS)
Or you can format this result, see below
>>> print glGetString(GL_EXTENSIONS).split()
['GL_ARB_depth_texture', 'GL_ARB_fragment_program', ...
This is all.