Exemple #1
0
    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
Exemple #2
0
    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