X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fmain.h;h=5b9d2637854175e7e3c8144c823cede1392d94f1;hp=b9da3d754833ce1834035ff21210d67a85f0af5c;hb=35bc799125eec0d0c839af56fd136c8e85793a56;hpb=5f600e9c0d22c09bd60ef3c7245dbecc8d35d576 diff --git a/src/main.h b/src/main.h index b9da3d7..5b9d263 100644 --- a/src/main.h +++ b/src/main.h @@ -3,12 +3,16 @@ #include "document.h" #include "view.h" #include "screen.h" +#include "debugscript.h" #include using namespace std; using namespace IPDF; + +extern const char *script_filename; + inline void OverlayBMP(Document & doc, const char * input, const char * output, const Rect & bounds = Rect(0,0,1,1), const Colour & c = Colour(0.f,0.f,0.f,1.f)) { @@ -73,10 +77,16 @@ void RatCatcher(int x, int y, int buttons, int wheel, Screen * scr, View * view) inline void MainLoop(Document & doc, Screen & scr, View & view, int max_frames = -1) { // order is important... segfaults occur when screen (which inits GL) is not constructed first -_- + DebugScript script; scr.DebugFontInit("fonts/DejaVuSansMono.ttf"); scr.SetMouseHandler(RatCatcher); + if (script_filename) + { + script.Load(script_filename); + } + double total_cpu_time = 0; double total_gpu_time = 0; double total_real_time = 0; @@ -99,6 +109,12 @@ inline void MainLoop(Document & doc, Screen & scr, View & view, int max_frames = //view.ForceBufferDirty(); //view.ForceRenderDirty(); + if (script_filename) + { + if (script.Execute(&view, &scr)) + return; + } + view.Render(scr.ViewportWidth(), scr.ViewportHeight()); double cpu_frame = scr.GetLastFrameTimeCPU();