X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=init.cpp;h=a70ae058bbf39ddd0eb0b0ae2ee31b3cafef0be9;hp=a89028c645eb1504a203b0562948a4693ebfa614;hb=5614a34b00bbcfdb3d0f5a7dc1fc4205e7088cdf;hpb=29072985d0a00a53e5b578a1444cee61a0c9e1f2 diff --git a/init.cpp b/init.cpp index a89028c..a70ae05 100644 --- a/init.cpp +++ b/init.cpp @@ -1,4 +1,5 @@ #include +#include #include "init.h" #include "util.h" @@ -7,6 +8,11 @@ bool movit_initialized = false; float movit_texel_subpixel_precision; bool movit_srgb_textures_supported; +// The rules for objects with nontrivial constructors in static scope +// are somewhat convoluted, and easy to mess up. We simply have a +// pointer instead (and never care to clean it up). +std::string *movit_data_directory = NULL; + namespace { void measure_texel_subpixel_precision() @@ -148,12 +154,14 @@ void check_extensions() } // namespace -void init_movit() +void init_movit(const std::string& data_directory) { if (movit_initialized) { return; } + movit_data_directory = new std::string(data_directory); + glewInit(); // geez