diff --git a/indra/llrender/llfont.cpp b/indra/llrender/llfont.cpp index 80f938ec6..69daf389c 100644 --- a/indra/llrender/llfont.cpp +++ b/indra/llrender/llfont.cpp @@ -246,9 +246,9 @@ BOOL LLFont::loadFace(const std::string& filename, const F32 point_size, const F FT_Set_Charmap(mFTFace, mFTFace->charmaps[0]); } - if (!mIsFallback) + if (!mIsFallback || !sOpenGLcrashOnRestart) // because this often crashes under Linux... { - // Add the default glyph + // Add the empty glyph`5 addGlyph(0, 0); } @@ -362,7 +362,7 @@ BOOL LLFont::addGlyphFromFont(const LLFont *fontp, const llwchar wch, const U32 if (mFTFace == NULL) return FALSE; - llassert(!mIsFallback); + //llassert(!mIsFallback); fontp->renderGlyph(glyph_index); S32 width = fontp->mFTFace->glyph->bitmap.width; S32 height = fontp->mFTFace->glyph->bitmap.rows; @@ -581,7 +581,7 @@ void LLFont::setSubImageLuminanceAlpha(const U32 x, { LLImageRaw *image_raw = mFontBitmapCachep->getImageRaw(bitmap_num); - llassert(!mIsFallback); + //llassert(!mIsFallback); llassert(image_raw && (image_raw->getComponents() == 2)); diff --git a/indra/llrender/llfontgl.cpp b/indra/llrender/llfontgl.cpp index f597d7c70..ea2da1150 100644 --- a/indra/llrender/llfontgl.cpp +++ b/indra/llrender/llfontgl.cpp @@ -275,7 +275,7 @@ void LLFontGL::destroyAllGL() else { sFontRegistry->destroyGL(); - } + } } } diff --git a/indra/lscript/lscript_execute/lscript_readlso.cpp b/indra/lscript/lscript_execute/lscript_readlso.cpp index 2948ebca6..a5dbd6221 100644 --- a/indra/lscript/lscript_execute/lscript_readlso.cpp +++ b/indra/lscript/lscript_execute/lscript_readlso.cpp @@ -120,7 +120,7 @@ void LLScriptLSOParse::printRegisters(LLFILE *fp) else if (gMajorVersion == LSL2_MAJOR_VERSION_TWO) { U64 data = get_register_u64(mRawData, (LSCRIPTRegisters)i); - fprintf(fp, "%s: 0x%X%X\n", gLSCRIPTRegisterNames[i], (U32)(data>>32), (U32)(data && 0xFFFFFFFF)); + fprintf(fp, "%s: 0x%X%X\n", gLSCRIPTRegisterNames[i], (U32)(data>>32), (U32)(data & 0xFFFFFFFF)); } } fprintf(fp, "=============================\n\n"); diff --git a/indra/newview/linux_tools/wrapper.sh b/indra/newview/linux_tools/wrapper.sh index 77dd4d023..34cb59877 100755 --- a/indra/newview/linux_tools/wrapper.sh +++ b/indra/newview/linux_tools/wrapper.sh @@ -68,6 +68,13 @@ if [ "$GTK_IM_MODULE" = "scim" ]; then export GTK_IM_MODULE=xim fi +# Work around for a crash bug when restarting OpenGL after a change in the +# graphic settings (anti-aliasing, VBO, FSAA, full screen mode, UI scale). +# When you enable this work around, you can change the settings without +# crashing, but you will have to restart the viewer after changing them +# because the display still gets corrupted. +export LL_OPENGL_RESTART_CRASH_BUG=x + ## - Automatically work around the ATI mouse cursor crash bug: ## (this workaround is disabled as most fglrx users do not see the bug) #if lsmod | grep fglrx &>/dev/null ; then diff --git a/indra/newview/llpanelland.cpp b/indra/newview/llpanelland.cpp index d1eee80b3..05de7fdc4 100644 --- a/indra/newview/llpanelland.cpp +++ b/indra/newview/llpanelland.cpp @@ -179,7 +179,7 @@ void LLPanelLandInfo::refresh() childSetEnabled("button abandon land",owner_release || manager_releaseable || gAgent.isGodlike()); // only mainland sims are subdividable by owner - if (regionp->getRegionFlags() && REGION_FLAGS_ALLOW_PARCEL_CHANGES) + if (regionp->getRegionFlags() & REGION_FLAGS_ALLOW_PARCEL_CHANGES) { childSetEnabled("button subdivide land",owner_divide || manager_divideable || gAgent.isGodlike()); } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 0f5d0ed64..96c88bbbb 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4445,7 +4445,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei //rescale fonts initFonts(scale_factor); LLHUDText::reshape(); - } + } } S32 output_buffer_offset_y = 0; @@ -4608,7 +4608,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei gPipeline.resetDrawOrders(); } - if (high_res) + if (high_res && (show_ui || !hide_hud)) { send_agent_resume(); }