REALTYPE=1
CONTROLPANEL=enabled
QUADTREE=disabled
-DEF = -DREALTYPE=$(REALTYPE)
+DEF = -DREALTYPE=$(REALTYPE)
+
+
## Only link with things we care about
printf("%d\t%lu\t%lu\t%s\t%f\t%s\t%f\t%s\t%f\t%lu\n",
now.object_count, (uint64_t)now.clock,
(uint64_t)(now.clock - m_perf_last.clock),
- Str(now.view_bounds.x).c_str(), Log10(now.view_bounds.x),
- Str(now.view_bounds.y).c_str(), Log10(now.view_bounds.y),
+ Str(now.view_bounds.x).c_str(), Log10(Abs(now.view_bounds.x)),
+ Str(now.view_bounds.y).c_str(), Log10(Abs(now.view_bounds.y)),
Str(now.view_bounds.w).c_str(), Log10(now.view_bounds.w),
Size(now.view_bounds.w));
m_perf_last = now;
inline std::string Str(const Gmprat & g) {return g.Str();}
inline double Log10(const Gmprat & g) {return g.Log10();}
inline size_t Size(const Gmprat & g) {return g.Size();}
-
+inline Gmprat Abs(const Gmprat & g) {return g.Abs();}
#endif //_GMPRAT_H
// order is important... segfaults occur when screen (which inits GL) is not constructed first -_-
DebugScript script;
- scr.DebugFontInit("fonts/DejaVuSansMono.ttf");
+ scr.DebugFontInit("fonts/DejaVuSansMono.ttf", 32);
scr.SetMouseHandler(RatCatcher);
if (script_filename)
printf("%lu\t%f\t%f\t%f\t%f\t%f\t%f\n", (long unsigned int)frames, total_real_time, total_cpu_time, total_gpu_time, real_frame, cpu_frame, gpu_frame);
data_points++;
}
+
+ scr.DebugFontPrintF("View Width = %s m\n", Str(view.GetBounds().w * VReal(22e-3)).c_str());
+ scr.DebugFontPrintF("Similar size: %s\n", HumanScale(view.GetBounds().w * VReal(22e-3)));
+
+ #if 0
scr.DebugFontPrintF("Rendered frame %lu\n", (uint64_t)frames);
scr.DebugFontPrintF("Lazy Rendering = %d\n", view.UsingLazyRendering());
if (cpu_frame > 0 && total_cpu_time > 0)
{
scr.DebugFontPrint("Doing rendering using CPU.\n");
}
+ #endif // 0
+
scr.Present();
}
}
inline Real Sqrt(const Real & r) {return Real(sqrt(r.ToDouble()));}
inline Real RealFromStr(const char * str) {return Real(strtod(str, NULL));}
inline Real Abs(const Real & a) {return (a > Real(0)) ? a : Real(0)-a;}
- inline std::string Str(const Real & a) {return a.Str();}
+
#else
#error "Type of Real unspecified."
inline double Log10(double a) {return log(a)/log(10.0);}
inline size_t Size(double a) {return sizeof(a);}
inline size_t Size(float a) {return sizeof(a);}
-
inline int64_t Int64(double a)
{
inline Real RealFromStr(const std::string & str) {return RealFromStr(str.c_str());}
+ // things stolen from wikipedia and googling
+ inline const char * HumanScale(double f)
+ {
+ if (f < 1e-36)
+ return "RATHER SMALL";
+ if (f < 1e-35)
+ return "Plank Length";
+ if (f < 1e-25)
+ return "Turtles all the way";
+ if (f < 1e-24)
+ return "More turtles";
+ if (f < 1e-23)
+ return "Turtles";
+ if (f < 1e-22)
+ return "This small";
+ if (f < 1e-21)
+ return "To find things";
+ if (f < 1e-20)
+ return "It is pretty difficult";
+ if (f < 1e-19)
+ return "Not much";
+ if (f < 1e-17)
+ return "Weak Force";
+ if (f < 1e-16)
+ return "Proton";
+ if (f < 1e-15)
+ return "(Classical) Electron";
+ if (f < 1e-11)
+ return "Inter atomic (still)";
+ if (f < 1e-10)
+ return "Inter atomic";
+ if (f < 1e-9)
+ return "Atom";
+ if (f < 1e-8)
+ return "DNA";
+ if (f < 1e-7)
+ return "Virus";
+ if (f < 1e-6)
+ return "Light";
+ if (f < 1e-5)
+ return "Bacteria";
+ if (f < 1e-4)
+ return "4004 Transistor";
+ if (f < 1e-3)
+ return "Ant";
+ if (f < 1e-2)
+ return "Coin";
+ if (f < 1e-1)
+ return "iPhone";
+ if (f < 1e0)
+ return "Person";
+ if (f < 1e1)
+ return "Building";
+ if (f < 1e2)
+ return "Football Field";
+ if (f < 1e3)
+ return "Mountain";
+ if (f < 1e4)
+ return "Clouds";
+ if (f < 1e5)
+ return "Countries";
+ if (f < 1e6)
+ return "Earth";
+ if (f < 1e8)
+ return "Between Earth and Moon";
+ if (f < 1e9)
+ return "Solar System";
+ if (f < 1e13)
+ return "Distance to nearest Star";
+ if (f < 1e21)
+ return "Milky Way";
+ if (f < 1e26)
+ return "Universe";
+ if (f < 1e27)
+ return "A bigger Universe";
+ if (f < 1e28)
+ return "Really big things";
+ if (f < 1e29)
+ return "Almost as big as...";
+ if (f < 1e30)
+ return "Wolfram's Magestic Ego";
+ return "QUITE BIG";
+
+ }
+
inline void DebugRealInfo()
{
Debug("Compiled with REAL = %d => \"%s\" sizeof(Real) == %d bytes", REALTYPE, g_real_name[REALTYPE], sizeof(Real));
# BECAUSE I CAN
gpu
lazy
-debugfont off
+#debugfont off
+
+
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 1
loadsvg svg-tests/turtle.svg
loop 50 pxzoom 430 170 1
loadsvg svg-tests/turtle.svg
loop 50 pxzoom 430 170 1
# Hmm, we sort of need a for loop...
+loop 1000 pxzoom 430 170 -1
+
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
+loadsvg svg-tests/turtle.svg
+loop 50 pxzoom 430 170 -1
clearperf
label start
printperf
-loop 500 pxzoom 430 170 -1
-loop 500 pxzoom 430 170 1
+loop 3000 pxzoom 430 170 1
+loop 3000 pxzoom 430 170 -1
goto start
wait