X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fmain.h;h=b0c7a47d798c70edc31d04681e243094d34de70c;hp=b9da3d754833ce1834035ff21210d67a85f0af5c;hb=2d12d37f1657d6aef9bb80d735b6c7022aecba6e;hpb=1d179b93f6a1b2a4fe3823c26fba862c24bc5d6e diff --git a/src/main.h b/src/main.h index b9da3d7..b0c7a47 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(); @@ -140,6 +156,12 @@ inline void MainLoop(Document & doc, Screen & scr, View & view, int max_frames = scr.DebugFontPrint("Doing coordinate transform on the CPU.\n"); } #endif + + #ifdef TRANSFORM_BEZIERS_TO_PATH + scr.DebugFontPrint("Beziers have been transformed to Path\n"); + #endif + + if (view.UsingGPURendering()) { scr.DebugFontPrint("Doing rendering using GPU.\n");