diff options
author | Corbin Simpson <MostAwesomeDude@gmail.com> | 2010-04-26 22:57:08 -0700 |
---|---|---|
committer | Corbin Simpson <MostAwesomeDude@gmail.com> | 2010-04-26 22:57:08 -0700 |
commit | 8af372353e92878175eaf8c18f3793a7c6344d68 (patch) | |
tree | e889c104830f8f6725410bd17fcb396933751604 | |
parent | cdfafc1c0c43b84ee8ff15c9078945cfef304934 (diff) |
Fixup screen params.
-rw-r--r-- | screen.py | 57 |
1 files changed, 31 insertions, 26 deletions
@@ -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) |