Browse Source

Disable signal handler on Mac. Debug pixel ratios.

tags/v1.0.0
Andrew Belt 6 years ago
parent
commit
278ade311e
3 changed files with 10 additions and 5 deletions
  1. +6
    -2
      src/main.cpp
  2. +2
    -2
      src/system.cpp
  3. +2
    -1
      src/window.cpp

+ 6
- 2
src/main.cpp View File

@@ -29,9 +29,10 @@ using namespace rack;
static void fatalSignalHandler(int sig) {
// Only catch one signal
static bool caught = false;
if (caught)
exit(1);
bool localCaught = caught;
caught = true;
if (localCaught)
exit(1);

FATAL("Fatal signal %d. Stack trace:\n%s", sig, system::getStackTrace().c_str());

@@ -81,11 +82,14 @@ int main(int argc, char *argv[]) {
asset::init(devMode);
logger::init(devMode);
// We can now install a signal handler and log the output
// Mac has its own decent crash handler
#if defined ARCH_LIN || defined ARCH_WIN
signal(SIGABRT, fatalSignalHandler);
signal(SIGFPE, fatalSignalHandler);
signal(SIGILL, fatalSignalHandler);
signal(SIGSEGV, fatalSignalHandler);
signal(SIGTERM, fatalSignalHandler);
#endif

// Log environment
INFO("%s v%s", app::APP_NAME, app::APP_VERSION);


+ 2
- 2
src/system.cpp View File

@@ -123,7 +123,7 @@ std::string getStackTrace() {
stackLen = backtrace(stack, stackLen);
char **strings = backtrace_symbols(stack, stackLen);

for (int i = 0; i < stackLen; i++) {
for (int i = 1; i < stackLen; i++) {
s += string::f("%d: %s\n", stackLen - i - 1, strings[i]);
}
free(strings);
@@ -136,7 +136,7 @@ std::string getStackTrace() {
symbol->MaxNameLen = 255;
symbol->SizeOfStruct = sizeof(SYMBOL_INFO);

for (int i = 0; i < stackLen; i++) {
for (int i = 1; i < stackLen; i++) {
SymFromAddr(process, (DWORD64) stack[i], 0, symbol);
s += string::f("%d: %s 0x%0x\n", stackLen - i - 1, symbol->Name, symbol->Address);
}


+ 2
- 1
src/window.cpp View File

@@ -200,7 +200,7 @@ Window::Window() {
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
#endif
glfwWindowHint(GLFW_DOUBLEBUFFER, GLFW_TRUE);
glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
// glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);

// Create window
win = glfwCreateWindow(800, 600, "", NULL, NULL);
@@ -362,6 +362,7 @@ void Window::run() {
glfwGetWindowSize(win, &winWidth, &winHeight);
windowRatio = (float)fbWidth / winWidth;

DEBUG("%f %f", pixelRatio, windowRatio);
// Resize scene
APP->event->rootWidget->box.size = math::Vec(fbWidth, fbHeight).div(pixelRatio);



Loading…
Cancel
Save