diff --git a/CMakeLists.txt b/CMakeLists.txt index 5beb5edc5..0128941c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -806,7 +806,6 @@ if (BUILD_GUI) list(APPEND USED_SOURCES ${GUI_SOURCES}) list(APPEND DEPENDENCIES_INCLUDE_DIRS extern/imgui_patched - extern/imgui_conf extern/imgui_patched/backends extern/IconFontCppHeaders extern/igfd @@ -878,7 +877,7 @@ else() endif() target_include_directories(furnace SYSTEM PRIVATE ${DEPENDENCIES_INCLUDE_DIRS}) -target_compile_definitions(furnace PRIVATE ${DEPENDENCIES_DEFINES} IMGUI_USER_CONFIG="imconfig_fur.h") +target_compile_definitions(furnace PRIVATE ${DEPENDENCIES_DEFINES}) target_compile_options(furnace PRIVATE ${DEPENDENCIES_COMPILE_OPTIONS}) target_link_libraries(furnace PRIVATE ${DEPENDENCIES_LIBRARIES}) if (PKG_CONFIG_FOUND AND (SYSTEM_FMT OR SYSTEM_LIBSNDFILE OR SYSTEM_ZLIB OR SYSTEM_SDL2 OR SYSTEM_RTMIDI OR WITH_JACK)) diff --git a/extern/imgui_patched/backends/imgui_impl_opengl3.cpp b/extern/imgui_patched/backends/imgui_impl_opengl3.cpp index c9bd8e171..d5ef359d6 100644 --- a/extern/imgui_patched/backends/imgui_impl_opengl3.cpp +++ b/extern/imgui_patched/backends/imgui_impl_opengl3.cpp @@ -199,16 +199,17 @@ #define IMGUI_IMPL_OPENGL_MAY_HAVE_EXTENSIONS #endif +#include "../../../src/ta-log.h" + // [Debugging] //#define IMGUI_IMPL_OPENGL_DEBUG #ifdef IMGUI_IMPL_OPENGL_DEBUG -#include -#define GL_CALL(_CALL) do { _CALL; GLenum gl_err = glGetError(); if (gl_err != 0) fprintf(stderr, "GL error 0x%x returned from '%s'.\n", gl_err, #_CALL); } while (0) // Call with error check +#define GL_CALL(_CALL) do { _CALL; GLenum gl_err = glGetError(); if (gl_err != 0) logE("GL error 0x%x returned from '%s'.\n", gl_err, #_CALL); } while (0) // Call with error check #else #define GL_CALL(_CALL) _CALL // Call without error check #endif -#define GL_CALL_FALSE(_CALL) _CALL; { GLenum gl_err = glGetError(); if (gl_err != 0) return false; } +#define GL_CALL_FALSE(_CALL) _CALL; { GLenum gl_err = glGetError(); if (gl_err != 0) { logW("GL error 0x%x returned from '%s'.\n", gl_err, #_CALL); return false; } } // OpenGL Data struct ImGui_ImplOpenGL3_Data @@ -326,7 +327,7 @@ bool ImGui_ImplOpenGL3_Init(const char* glsl_version) #endif #ifdef IMGUI_IMPL_OPENGL_DEBUG - printf("GL_MAJOR_VERSION = %d\nGL_MINOR_VERSION = %d\nGL_VENDOR = '%s'\nGL_RENDERER = '%s'\n", major, minor, (const char*)glGetString(GL_VENDOR), (const char*)glGetString(GL_RENDERER)); // [DEBUG] + logD("\nGL_VENDOR = '%s'\nGL_RENDERER = '%s'\n", (const char*)glGetString(GL_VENDOR), (const char*)glGetString(GL_RENDERER)); // [DEBUG] #endif #ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_VTX_OFFSET @@ -677,13 +678,19 @@ bool ImGui_ImplOpenGL3_CreateFontsTexture() // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) GLint last_texture; GL_CALL(glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture)); + // clear errors + glGetError(); + GL_CALL_FALSE(glGenTextures(1, &bd->FontTexture)); GL_CALL_FALSE(glBindTexture(GL_TEXTURE_2D, bd->FontTexture)); - GL_CALL_FALSE(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); - GL_CALL_FALSE(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); + GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); #ifdef GL_UNPACK_ROW_LENGTH // Not on WebGL/ES - GL_CALL_FALSE(glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)); + GL_CALL(glPixelStorei(GL_UNPACK_ROW_LENGTH, 0)); #endif + + glGetError(); + GL_CALL_FALSE(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels)); // Store our identifier diff --git a/extern/imgui_conf/imconfig_fur.h b/extern/imgui_patched/imconfig_fur.h similarity index 100% rename from extern/imgui_conf/imconfig_fur.h rename to extern/imgui_patched/imconfig_fur.h diff --git a/extern/imgui_patched/imgui.h b/extern/imgui_patched/imgui.h index f78011369..8674f9970 100644 --- a/extern/imgui_patched/imgui.h +++ b/extern/imgui_patched/imgui.h @@ -52,9 +52,7 @@ Index of this file: // Configuration file with compile-time options // (edit imconfig.h or '#define IMGUI_USER_CONFIG "myfilename.h" from your build system') -#ifdef IMGUI_USER_CONFIG -#include IMGUI_USER_CONFIG -#endif +#include "imconfig_fur.h" #include "imconfig.h" #ifndef IMGUI_DISABLE diff --git a/papers/multiplayer.md b/papers/multiplayer.md index 5f87bdba4..c2978ee84 100644 --- a/papers/multiplayer.md +++ b/papers/multiplayer.md @@ -220,7 +220,7 @@ size | description 1 | status | - 0: denied | - 1: allowed - +``` ## 0x13: message ``` size | description diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index dd760e0fc..6eefb6913 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3839,6 +3839,7 @@ bool FurnaceGUI::loop() { ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; + bigFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); @@ -5978,6 +5979,7 @@ bool FurnaceGUI::loop() { ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; + bigFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); @@ -6432,6 +6434,7 @@ bool FurnaceGUI::init() { ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; + bigFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 5e777d945..cbc71aed6 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -3202,6 +3202,7 @@ void FurnaceGUI::commitSettings() { ImGui::GetIO().Fonts->Clear(); mainFont=ImGui::GetIO().Fonts->AddFontDefault(); patFont=mainFont; + bigFont=mainFont; if (rend) rend->destroyFontsTexture(); if (!ImGui::GetIO().Fonts->Build()) { logE("error again while building font atlas!"); diff --git a/src/main.cpp b/src/main.cpp index 0aa4c9b4f..b5484ea36 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -370,6 +370,13 @@ static void handleTermGUI(int) { // TODO: CoInitializeEx on Windows? // TODO: add crash log int main(int argc, char** argv) { + // uncomment these if you want Furnace to play in the background on Android. + // not recommended. it lags. +#if defined(HAVE_SDL2) && defined(ANDROID) + //SDL_SetHint(SDL_HINT_ANDROID_BLOCK_ON_PAUSE,"0"); + //SDL_SetHint(SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO,"0"); +#endif + // Windows console thing - thanks dj.tuBIG/MaliceX #ifdef _WIN32