summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2010-04-26 22:57:08 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2010-04-26 22:57:08 -0700
commit8af372353e92878175eaf8c18f3793a7c6344d68 (patch)
treee889c104830f8f6725410bd17fcb396933751604
parentcdfafc1c0c43b84ee8ff15c9078945cfef304934 (diff)
Fixup screen params.
-rw-r--r--screen.py57
1 files changed, 31 insertions, 26 deletions
diff --git a/screen.py b/screen.py
index dfd4f6d..37a65f2 100644
--- a/screen.py
+++ b/screen.py
@@ -47,38 +47,33 @@ pipe_screen._fields_ = [
params = {
"MAX_TEXTURE_IMAGE_UNITS": 1,
+ "MAX_RENDER_TARGETS": 8,
+ "MAX_TEXTURE_2D_LEVELS": 11,
+ "MAX_TEXTURE_3D_LEVELS": 12,
+ "MAX_TEXTURE_CUBE_LEVELS": 13,
+ "MAX_TEXTURE_ANISOTROPY": 18,
+ "MAX_TEXTURE_LOD_BIAS": 19,
+ "MAX_VERTEX_TEXTURE_UNITS": 26,
+ "MAX_PREDICATE_REGISTERS": 30,
+ "PIPE_CAP_MAX_COMBINED_SAMPLERS": 31,
+ "PIPE_CAP_MAX_CONST_BUFFERS": 32,
+ "PIPE_CAP_MAX_CONST_BUFFER_SIZE": 33,
+}
+
+parambs = {
"NPOT_TEXTURES": 2,
"TWO_SIDED_STENCIL": 3,
"GLSL": 4,
"DUAL_SOURCE_BLEND": 5,
"ANISOTROPIC_FILTER": 6,
"POINT_SPRITE": 7,
- "MAX_RENDER_TARGETS": 8,
"OCCLUSION_QUERY": 9,
"TEXTURE_SHADOW_MAP": 10,
- "MAX_TEXTURE_2D_LEVELS": 11,
- "MAX_TEXTURE_3D_LEVELS": 12,
- "MAX_TEXTURE_CUBE_LEVELS": 13,
- "MAX_LINE_WIDTH": 14,
- "MAX_LINE_WIDTH_AA": 15,
- "MAX_POINT_WIDTH": 16,
- "MAX_POINT_WIDTH_AA": 17,
- "MAX_TEXTURE_ANISOTROPY": 18,
- "MAX_TEXTURE_LOD_BIAS": 19,
- "GUARD_BAND_LEFT": 20,
- "GUARD_BAND_TOP": 21,
- "GUARD_BAND_RIGHT": 22,
- "GUARD_BAND_BOTTOM": 23,
"TEXTURE_MIRROR_CLAMP": 24,
"TEXTURE_MIRROR_REPEAT": 25,
- "MAX_VERTEX_TEXTURE_UNITS": 26,
"TGSI_CONT_SUPPORTED": 27,
"BLEND_EQUATION_SEPARATE": 28,
"SM3": 29,
- "MAX_PREDICATE_REGISTERS": 30,
- "PIPE_CAP_MAX_COMBINED_SAMPLERS": 31,
- "PIPE_CAP_MAX_CONST_BUFFERS": 32,
- "PIPE_CAP_MAX_CONST_BUFFER_SIZE": 33,
"PIPE_CAP_INDEP_BLEND_ENABLE": 34,
"PIPE_CAP_INDEP_BLEND_FUNC": 35,
"PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT": 36,
@@ -88,23 +83,33 @@ params = {
}
paramfs = {
+ "MAX_LINE_WIDTH": 14,
+ "MAX_LINE_WIDTH_AA": 15,
+ "MAX_POINT_WIDTH": 16,
+ "MAX_POINT_WIDTH_AA": 17,
+ "GUARD_BAND_LEFT": 20,
+ "GUARD_BAND_TOP": 21,
+ "GUARD_BAND_RIGHT": 22,
+ "GUARD_BAND_BOTTOM": 23,
}
class Screen(object):
def __init__(self, s):
self.pipe_screen = s
+ self.init_params()
def __del__(self):
self.destroy()
- def __getitem__(self, key):
- if key in params:
- return self.pipe_screen[0].get_param(self.pipe_screen, params[key])
- elif key in paramfs:
- return self.pipe_screen[0].get_paramf(self.pipe_screen, paramfs[key])
- else:
- raise KeyError
+ def init_params(self):
+ self.params = {}
+ for k, v in params:
+ self.params[k] = self.pipe_screen[0].get_param(self.pipe_screen, v)
+ for k, v in parambs:
+ self.params[k] = bool(self.pipe_screen[0].get_param(self.pipe_screen, v))
+ for k, v in paramfs:
+ self.params[k] = self.pipe_screen[0].get_paramf(self.pipe_screen, v)
def destroy(self):
self.pipe_screen[0].destroy(self.pipe_screen)