diff --git a/src/main/java/com/recursive_pineapple/matter_manipulator/common/building/GTAnalysisResult.java b/src/main/java/com/recursive_pineapple/matter_manipulator/common/building/GTAnalysisResult.java index a9c46ce..06acf7f 100644 --- a/src/main/java/com/recursive_pineapple/matter_manipulator/common/building/GTAnalysisResult.java +++ b/src/main/java/com/recursive_pineapple/matter_manipulator/common/building/GTAnalysisResult.java @@ -682,6 +682,7 @@ public GTAnalysisResult clone() { dup.mTTParams = mTTParams == null ? null : mTTParams.clone(); dup.mAmperes = mAmperes; dup.mFluidPipeRestriction = mFluidPipeRestriction; + dup.mMaxParallels = mMaxParallels; return dup; } diff --git a/src/main/java/com/recursive_pineapple/matter_manipulator/common/items/manipulator/RenderHints.java b/src/main/java/com/recursive_pineapple/matter_manipulator/common/items/manipulator/RenderHints.java index 1194827..6a5dc93 100644 --- a/src/main/java/com/recursive_pineapple/matter_manipulator/common/items/manipulator/RenderHints.java +++ b/src/main/java/com/recursive_pineapple/matter_manipulator/common/items/manipulator/RenderHints.java @@ -61,15 +61,7 @@ public class RenderHints { private static StreamingVertexBuffer pendingVBO; /// An opengl context that's active on the background thread and is used for writing to the pending VBO. - private static final SharedDrawable BACKGROUND_CONTEXT; - - static { - try { - BACKGROUND_CONTEXT = new SharedDrawable(Display.getDrawable()); - } catch (LWJGLException e) { - throw new RuntimeException("Could not initialized background SharedDrawable", e); - } - } + private static SharedDrawable backgroundContext; private static final ExecutorService WORKER_THREAD = Executors.newFixedThreadPool(1); private static Future renderTask; @@ -120,8 +112,8 @@ private static VBOResult buildVBO(StreamingVertexBuffer vbo, ArrayList hin Vector3d eyes = new Vector3d(xd, yd, zd); try { - if (!BACKGROUND_CONTEXT.isCurrent()) { - BACKGROUND_CONTEXT.makeCurrent(); + if (!backgroundContext.isCurrent()) { + backgroundContext.makeCurrent(); } } catch (LWJGLException e) { throw new RuntimeException("Could not activate background GL context", e); @@ -182,6 +174,14 @@ private static VBOResult buildVBO(StreamingVertexBuffer vbo, ArrayList hin public static void onRenderWorldLast(RenderWorldLastEvent e) { if (HINTS.isEmpty()) return; + if (backgroundContext == null) { + try { + backgroundContext = new SharedDrawable(Display.getDrawable()); + } catch (LWJGLException ex) { + throw new RuntimeException("Could not initialized background SharedDrawable", ex); + } + } + Profiler p = Minecraft.getMinecraft().mcProfiler; p.startSection("Render MM Hints");