set data_path to exe location on Windows because the open file dialog change the working directory, change the render loop to update only in case of an event or the animated or redraw is true
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -18,3 +18,4 @@ data/brushes
|
|||||||
data/thumbs
|
data/thumbs
|
||||||
PanoPainter.aps
|
PanoPainter.aps
|
||||||
panopainter-log.txt
|
panopainter-log.txt
|
||||||
|
*.pano
|
||||||
|
|||||||
@@ -57,6 +57,22 @@ void App::initLog()
|
|||||||
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
||||||
NSString* docpath = [paths objectAtIndex:0];
|
NSString* docpath = [paths objectAtIndex:0];
|
||||||
data_path = [docpath cStringUsingEncoding:NSASCIIStringEncoding];
|
data_path = [docpath cStringUsingEncoding:NSASCIIStringEncoding];
|
||||||
|
#elif _WIN32
|
||||||
|
//CHAR my_documents[MAX_PATH];
|
||||||
|
//HRESULT result = SHGetFolderPathA(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, my_documents);
|
||||||
|
|
||||||
|
//HMODULE hModule = GetModuleHandle(NULL);
|
||||||
|
//CHAR path[MAX_PATH];
|
||||||
|
//GetModuleFileNameA(hModule, path, MAX_PATH);
|
||||||
|
//CHAR out_drive[MAX_PATH];
|
||||||
|
//CHAR out_path[MAX_PATH];
|
||||||
|
//_splitpath(path, out_drive, out_path, nullptr, nullptr);
|
||||||
|
//sprintf_s(path, "%s%s", out_drive, out_path);
|
||||||
|
//data_path = path;
|
||||||
|
|
||||||
|
CHAR path[MAX_PATH];
|
||||||
|
GetCurrentDirectoryA(sizeof(path), path);
|
||||||
|
data_path = path;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
LogRemote::I.start();
|
LogRemote::I.start();
|
||||||
|
|||||||
@@ -91,9 +91,9 @@ std::string win32_open_file()
|
|||||||
ofn.lpstrFilter = "Image Files (*.jpg, *.png)\0*.jpg;*.png";
|
ofn.lpstrFilter = "Image Files (*.jpg, *.png)\0*.jpg;*.png";
|
||||||
ofn.lpstrFile = fileName;
|
ofn.lpstrFile = fileName;
|
||||||
ofn.nMaxFile = MAX_PATH;
|
ofn.nMaxFile = MAX_PATH;
|
||||||
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
|
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
|
||||||
ofn.lpstrDefExt = "";
|
ofn.lpstrDefExt = "";
|
||||||
ofn.lpstrInitialDir = "Missions\\";
|
ofn.lpstrInitialDir = "";
|
||||||
if (GetOpenFileNameA(&ofn) != NULL)
|
if (GetOpenFileNameA(&ofn) != NULL)
|
||||||
{
|
{
|
||||||
return fileName;
|
return fileName;
|
||||||
@@ -387,26 +387,20 @@ int main(int argc, char** argv)
|
|||||||
while (running)
|
while (running)
|
||||||
{
|
{
|
||||||
// If there any message in the queue process it
|
// If there any message in the queue process it
|
||||||
if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
|
auto present = App::I.animate || App::I.redraw ?
|
||||||
|
PeekMessage(&msg, 0, 0, 0, PM_REMOVE) : GetMessage(&msg, 0, 0, 0);
|
||||||
|
|
||||||
|
if (present)
|
||||||
{
|
{
|
||||||
running = !(msg.message == WM_QUIT/* || gl.keys[VK_ESCAPE]*/);
|
running = !(msg.message == WM_QUIT/* || gl.keys[VK_ESCAPE]*/);
|
||||||
DispatchMessage(&msg);
|
DispatchMessage(&msg);
|
||||||
TranslateMessage(&msg);
|
TranslateMessage(&msg);
|
||||||
}
|
}
|
||||||
else // Otherwise render next frame
|
//else // Otherwise render next frame
|
||||||
{
|
{
|
||||||
t1 = GetTickCount();
|
t1 = GetTickCount();
|
||||||
float dt = (float)(t1 - t0) / 1000.0f;
|
float dt = (float)(t1 - t0) / 1000.0f;
|
||||||
|
if (dt > 1.0f / 60.0f || App::I.redraw)
|
||||||
// force redraw every one second
|
|
||||||
one_sec += dt;
|
|
||||||
if (one_sec > 1.f)
|
|
||||||
{
|
|
||||||
one_sec = 0;
|
|
||||||
App::I.redraw = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dt > 1.0f / 60.0f)
|
|
||||||
{
|
{
|
||||||
t0 = t1;
|
t0 = t1;
|
||||||
if (App::I.redraw)
|
if (App::I.redraw)
|
||||||
@@ -421,10 +415,6 @@ int main(int argc, char** argv)
|
|||||||
//LOG("swap main");
|
//LOG("swap main");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// Sleep((DWORD)(1.0f / 60.0f * 1000.f));
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,4 +15,5 @@
|
|||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma comment(lib, "BugTrapU-x64.lib")
|
#pragma comment(lib, "BugTrapU-x64.lib")
|
||||||
|
#pragma comment(lib, "shell32.lib")
|
||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|||||||
@@ -65,7 +65,8 @@
|
|||||||
#include <gl\wglew.h>
|
#include <gl\wglew.h>
|
||||||
#include <gl\GL.h>
|
#include <gl\GL.h>
|
||||||
#include <BugTrap.h>
|
#include <BugTrap.h>
|
||||||
|
#include <shlobj.h>
|
||||||
|
|
||||||
#define SHADER_VERSION "#version 150\n"
|
#define SHADER_VERSION "#version 150\n"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user