def _update_c_renderer_prefs(self): self.use_c_renderer = (quux_module_import_succeeded and env.prefs.get( self.use_c_renderer_prefs_key, self.use_c_renderer_default)) if self.use_c_renderer: import quux quux.shapeRendererSetMaterialParameters(self.specular_whiteness, self.specular_brightness, self.specular_shininess) pass return
def _update_c_renderer_prefs(self): self.use_c_renderer = ( quux_module_import_succeeded and env.prefs.get(self.use_c_renderer_prefs_key, self.use_c_renderer_default) ) if self.use_c_renderer: import quux quux.shapeRendererSetMaterialParameters(self.specular_whiteness, self.specular_brightness, self.specular_shininess ) pass return
def update(self): #bruce 051126 added this method """ Update attributes from current drawing-related prefs stored in prefs db cache. This should be called at the start of each complete redraw, or whenever the user changes these global prefs values (whichever is more convenient). (Note: When this is called during redraw, its prefs db accesses (like any others) record those prefs as potentially affecting what should be drawn, so that subsequent changes to those prefs values cause an automatic gl_update.) Using these attributes in drawing code (rather than directly accessing prefs db cache) is desirable for efficiency, since direct access to prefs db cache is a bit slow. (Our drawing code still does that in other places -- those might also benefit from this system, though this will soon be moot when low-level drawing code gets rewritten in C.) """ self.enable_specular_highlights = not not env.prefs[ material_specular_highlights_prefs_key] # boolean if self.enable_specular_highlights: self.override_light_specular = None # used in glpane # self.specular_shininess: float; shininess exponent for all # specular highlights self.specular_shininess = float( env.prefs[material_specular_shininess_prefs_key]) # self.specular_whiteness: float; whiteness for all material # specular colors self.specular_whiteness = float( env.prefs[material_specular_finish_prefs_key]) # self.specular_brightness: float; for all material specular colors self.specular_brightness = float( env.prefs[material_specular_brightness_prefs_key]) else: self.override_light_specular = (0.0, 0.0, 0.0, 0.0) # used in glpane # Set these to reasonable values, though these attributes are # presumably never used in this case. Don't access the prefs db in # this case, since that would cause UI prefs changes to do # unnecessary gl_updates. (If we ever add a scenegraph node which # can enable specular highlights but use outside values for these # parameters, then to make it work correctly we'll need to revise # this code.) self.specular_shininess = 20.0 self.specular_whiteness = 1.0 self.specular_brightness = 1.0 drawing_globals.allow_color_sorting = env.prefs.get( drawing_globals.allow_color_sorting_prefs_key, drawing_globals.allow_color_sorting_default) drawing_globals.use_color_sorted_dls = env.prefs.get( drawing_globals.use_color_sorted_dls_prefs_key, drawing_globals.use_color_sorted_dls_default) drawing_globals.use_color_sorted_vbos = env.prefs.get( drawing_globals.use_color_sorted_vbos_prefs_key, drawing_globals.use_color_sorted_vbos_default) drawing_globals.use_drawing_variant = env.prefs.get( drawing_globals.use_drawing_variant_prefs_key, drawing_globals.use_drawing_variant_default) drawing_globals.use_c_renderer = ( drawing_globals.quux_module_import_succeeded and env.prefs.get(drawing_globals.use_c_renderer_prefs_key, drawing_globals.use_c_renderer_default)) if drawing_globals.use_c_renderer: quux.shapeRendererSetMaterialParameters(self.specular_whiteness, self.specular_brightness, self.specular_shininess); return