The Persistence of Vision Raytracer (POV-Ray).

This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.


FS#323 - Tooltip for render speed status bar has wrong unit

Attached to Project: POV-Ray
Opened by Jonathan (redmasq) - Thursday, 29 May 2014, 12:44 GMT
Last edited by William F Pokorny (wfpokorny) - Tuesday, 29 November 2016, 12:17 GMT
Task Type Possible Bug
Category Frontend → User interface
Status Tracked on GitHub
Assigned To No-one
Operating System Windows 7
Severity Very Low
Priority Normal
Reported Version 3.70 release
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


Tooltip popup for render speed always displays as “Pixels per Second” rather than matching status bar. I’ve noticed it in 3 renders so far. Most of my renders are fast enough not to see any other unit besides PPS, but I should be able to reproduce again if necessary.

This task depends upon

Comment by Jonathan (redmasq) - Thursday, 29 May 2014, 17:08 GMT

Found it in povray/windows/pvtext.cpp line 1976 on 3.7-stable branch.

              case StatusPPS :
                   if ((s = strchr(str, ' ')) == NULL)
                   *s = '\0';
                   sprintf(sbToolText, "%s Pixels per Second", str);
                   break ;

String was hard-coded. Either I or someone with time on their hands will need to review to see if the unit is available in scope or retrievable by method or property.

Comment by Jonathan (redmasq) - Thursday, 29 May 2014, 18:07 GMT

Status bar itself is updated from povray/windows/pvengine.cpp line 677 on the 3.7 branch

char *PPS_String (unsigned pixels, unsigned renderseconds)
   static char str [128] ;

   if (rendersleep)
     return ("PAUSED") ;
   if (renderseconds == 0)
     return ("??? PPS") ;
   if (pixels / renderseconds < 5)
     if (pixels * 60 / renderseconds < 5)
       sprintf (str, "%u PPH", pixels * 3600 / renderseconds) ;
       sprintf (str, "%u PPM", pixels * 60 / renderseconds) ;
     sprintf (str, "%u PPS", pixels / renderseconds) ;
  return (str) ;

The method could be moved to pvedit.cpp, but the original renderseconds and pixels at first glance doesn't seem available. If I can trace the flow of the number, perhaps the original string could be sent instead. Otherwise the string could be converted using something like strtoul, math applied, and then string rendered appropriately. Barring rounding errors, it would match then.

Comment by William F Pokorny (wfpokorny) - Tuesday, 29 November 2016, 12:17 GMT
  • Field changed: Status (Unconfirmed → Tracked on GitHub)

Now tracked on github as issue #162.