SuccessChanges

Summary

  1. Added function to detect whether karyonix' Shaders Mod is installed (details)
  2. If the Shaders Mod is installed, call EntityRenderer#renderWorld to allow it to make some preparations (details)
  3. Use Minecraft's Framebuffer in the OpenGlFrameCapturer, and do NOT delete it after rendering (details)
  4. The Window resizing is now handled by the FrameCapturers instead of the WorldRenderer, as resizing the Framebuffer, which is necessary when rendering with Shaders installed, clears all of its data. By outsourcing the size reset, the framebuffer can be read before it's lost. (details)
  5. Use while loop to iterate over buffer contents in GuiVideoRenderer's Video preview to prevent the buffer from underflowing (details)
  6. Shows error screen when trying to render ODS videos with Shaders Mod (details)
  7. Use ASM to replace Frustum's ClippingHelper with NoCullingClippingHelper (details)
  8. Cleaned up EntityRendererCT (details)
  9. Created ShaderFrameTimeCounter to control Shader Mod's Shader.frameTimeCounter variable to synchronize leaves/grass waving with Replay Speed (details)
  10. Disable PBO Pipelines when rendering with Shaders Mod installed because of an incompatibility (details)
  11. Only replace frustum's CullingHelper in EntityRenderer if rendering a video (details)
  12. Print stacktrace if frameTimeCounter was not found in Shaders class (for future version easier debugging) (details)
  13. Created  ClassTransformer for Shader Mod's ClippingHelperShadow to make isBoxInFrustum always return true if rendering a video (force render chunks) (details)
  14. Temporarily disabled forced chunk calculation when running ShadersMod, as displayListEntitiesDirty never became false when rendering (details)
  15. Simplify GuiReplaySpeedSlider's code by removing obsolete drawButton Method which was the same as the parent's method (details)
  16. Possibly found a solution to force load all chunks with Shaders installed. To be verified (details)
  17. Removed EntityRendererCT for launch compatibility with Optifine and instead applied the former ClippingHelperShadowCT to Minecraft's default ClippingHelper as well, thus removing the need for our NoCullingClippingHelper. (details)
  18. Moved initial reflection calls in MixinEntityRenderer to a separate method, as it would crash with a ClassNotFoundException despite the try/catch block around the method. Weird. (details)
  19. Because we're now always using the Minecraft framebuffer, we also need to call Minecraft#resize when rendering without the Shaders Mod installed (details)
  20. Determine whether all chunks are loaded by RenderChunk.renderChunksUpdated being 0 (details)
  21. The xRes and yRes input fields in GuiRenderSettings now update each other for an 1:1 aspect ratio when using ODS rendering (details)
  22. GuiNumberInput's value Getters now always return a value between the minimum and maximum (if defined) (details)
  23. Replaced old JailingQueue system with a new way to stop chunk compilations while rendering (details)
  24. Replace poor lock system with ReadWriteLock system (details)
  25. Created ChunkRenderDispatcherCT to make queueChunkUpdates field volatile (details)
  26. Removing some CT debug output (details)
  27. Modify the ChunkRenderWorker to feed itself with an empty, finished ChunkCompileTaskGenerator while recording if no future TaskGenerator is in the queueChunkUpdates, to prevent deadlock state when the processTask method's internal lock indirectly kept the ChunkLoadingRenderGlobal.lock locked (details)
  28. The Shaders Mod seemed to like keeping us in an eternal do/while loop (details)
  29. Use a custom LockingChunkCompileTaskGenerator to lock the ChunkRenderWorkers while rendering videos. These Generators are inserted into the renderDispatcher's queueChunkUpdates, therefore assuring that the ChunkRenderWorkers release the ChunkLoadingRenderGlobal's ReadLocks after finishing Minecraft's final chunk compilation/upload process. (details)
  30. Removed now obsolete MixinChunkRenderDispatcher (details)
  31. Made ChunkLoadingRenderGlobal's ReadWriteLock non-static (details)
  32. Draw the Rendering GUI on our own Framebuffer instead of the Minecraft framebuffer. This way we don't have to recreate (because of resizing) Minecraft's framebuffer every frame (once to render the video with custom resolution, once to render the GUI with window resolution) (details)
  33. Compare our framebuffer's size to the Display's size BEFORE rendering to properly update the gui size (details)
  34. We don't need that weird chunk loading difference check anymore (details)
  35. Gracefully offer the queueChunkUpdates the LockingChunkCompileTasks, but be persistent until they accept our gift. (details)
  36. Take the "up to one second" in Johni's comment a bit more literally (details)
  37. Johni says I may not ignore this exception. (details)
  38. The ChunkRenderDispatcher#queueChunkUpdates does not need to be non-final and therefore does not have to be volatile -> removed ChunkRenderDispatcherCT (details)
  39. Move Shaders Mod detection from postInit() to a static block (details)
  40. Re-enabled rendering with PBOs enabled (details)
  41. Have a maximum of 10 timeouts when offering LockingChunkCompileTasks to queueChunkUpdates (details)
  42. Render the guiFramebuffer with correct width/height arguments (details)
  43. 1.0.7 (details)
Commit 8b0702293020ad08d7858f1c5bc62ae79f18da7a by CrushedPixel
Added function to detect whether karyonix' Shaders Mod is installed
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/ReplayMod.java
Commit 9bf186458c394543359716b292289d38ae722569 by CrushedPixel
If the Shaders Mod is installed, call EntityRenderer#renderWorld to allow it to make some preparations
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/EntityRendererHandler.java
Commit 1fe1fd02c4479deb536b10ae90e9611883a95c83 by CrushedPixel
Use Minecraft's Framebuffer in the OpenGlFrameCapturer, and do NOT delete it after rendering
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/OpenGlFrameCapturer.java
Commit 48905b109e67ed883c427b6d0bf4af519146341b by CrushedPixel
The Window resizing is now handled by the FrameCapturers instead of the WorldRenderer, as resizing the Framebuffer, which is necessary when rendering with Shaders installed, clears all of its data. By outsourcing the size reset, the framebuffer can be read before it's lost.
The file was modifiedsrc/main/resources/META-INF/replaymod_at.cfg
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/EntityRendererHandler.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/WorldRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/OpenGlFrameCapturer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/ODSFrameCapturer.java
Commit 3fb92c82aaee604744b517b212b1c2cd5cc18b1c by CrushedPixel
Use while loop to iterate over buffer contents in GuiVideoRenderer's Video preview to prevent the buffer from underflowing
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiVideoRenderer.java
Commit 7567370a97044994db3b24bb57cf06520c0b03bd by CrushedPixel
Shows error screen when trying to render ODS videos with Shaders Mod
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiRenderSettings.java
The file was modifiedsrc/main/resources/assets/replaymod/lang/en_US.lang
Commit 68416378a9382a3b4af9a6754f7e08889ec536d2 by CrushedPixel
Use ASM to replace Frustum's ClippingHelper with NoCullingClippingHelper
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinEntityRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/LoadingPlugin.java
The file was addedsrc/main/java/eu/crushedpixel/replaymod/coremod/EntityRendererCT.java
Commit 45cd643e39cd51cc533110a45dbc6e84b9c01a14 by CrushedPixel
Cleaned up EntityRendererCT
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/EntityRendererCT.java
Commit ae766afec4d2ce49bede5c5ea3493e78398e5965 by CrushedPixel
Created ShaderFrameTimeCounter to control Shader Mod's Shader.frameTimeCounter variable to synchronize leaves/grass waving with Replay Speed
The file was addedsrc/main/java/eu/crushedpixel/replaymod/timer/ShaderFrameTimeCounter.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinEntityRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/replay/ReplayProcess.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit 77fc6341419ff1cd0c66d1f65a841031f44659d4 by CrushedPixel
Disable PBO Pipelines when rendering with Shaders Mod installed because of an incompatibility
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/rendering/Pipelines.java
Commit 41dbe67c156840680cd50b3c608f90d38e6df4d6 by CrushedPixel
Only replace frustum's CullingHelper in EntityRenderer if rendering a video
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/EntityRendererCT.java
Commit 4aefaf62708d4f48bf95b8e0f0f3d6fd786b7ac1 by CrushedPixel
Print stacktrace if frameTimeCounter was not found in Shaders class (for future version easier debugging)
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinEntityRenderer.java
Commit bf3146352807e2d0b37112f396812ba379bea5b2 by CrushedPixel
Created  ClassTransformer for Shader Mod's ClippingHelperShadow to make isBoxInFrustum always return true if rendering a video (force render chunks)
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/LoadingPlugin.java
The file was addedsrc/main/java/eu/crushedpixel/replaymod/coremod/ClippingHelperShadowCT.java
Commit 0d0dedf5b6ac656197c13a9176de8f72d2da390d by CrushedPixel
Temporarily disabled forced chunk calculation when running ShadersMod, as displayListEntitiesDirty never became false when rendering
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit f4d6ca9fd04ead7bfe87aac7575cde09407b9f8c by CrushedPixel
Simplify GuiReplaySpeedSlider's code by removing obsolete drawButton Method which was the same as the parent's method
Fixed OpenGL errors when dragging the Speed Slider with Shaders Mod installed
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiReplaySpeedSlider.java
Commit d3b61c6fa816d9d05d7311db09789bdd7609915c by CrushedPixel
Possibly found a solution to force load all chunks with Shaders installed. To be verified
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit 59fb5a3e3cd6a9489ff58a5fe4c2ce041a274de9 by CrushedPixel
Removed EntityRendererCT for launch compatibility with Optifine and instead applied the former ClippingHelperShadowCT to Minecraft's default ClippingHelper as well, thus removing the need for our NoCullingClippingHelper.
The file was removedsrc/main/java/eu/crushedpixel/replaymod/coremod/ClippingHelperShadowCT.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/LoadingPlugin.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/EntityRendererHandler.java
The file was removedsrc/main/java/eu/crushedpixel/replaymod/coremod/EntityRendererCT.java
The file was addedsrc/main/java/eu/crushedpixel/replaymod/coremod/ClippingHelperCT.java
Commit 490bbab454ec4ea5dd525034ad2a2e83db052d68 by CrushedPixel
Moved initial reflection calls in MixinEntityRenderer to a separate method, as it would crash with a ClassNotFoundException despite the try/catch block around the method. Weird.
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinEntityRenderer.java
Commit 21996df69dd09aeb9550ce0478d2d0a5ba39392d by CrushedPixel
Because we're now always using the Minecraft framebuffer, we also need to call Minecraft#resize when rendering without the Shaders Mod installed
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/OpenGlFrameCapturer.java
Commit 8768f6e6414eb3b9cdaec51a329ed63828604f79 by CrushedPixel
Determine whether all chunks are loaded by RenderChunk.renderChunksUpdated being 0
Disable modifications to renderDispatcher's queueChunkUpdates if Shaders Mod is installed, as it caused MC to crash or deadlock
Removed some warnings caused by suboptimal catch clauses
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit 468ca8c9138ef4433cfd61ec01528ed02c07892d by CrushedPixel
The xRes and yRes input fields in GuiRenderSettings now update each other for an 1:1 aspect ratio when using ODS rendering
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiRenderSettings.java
Commit 8be4faf90d2922e362f3390f3d6c9437024ca2f3 by CrushedPixel
GuiNumberInput's value Getters now always return a value between the minimum and maximum (if defined)
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/elements/GuiNumberInput.java
Commit 63a9c868ddef460fadc5342f32c46e50e15f3a02 by CrushedPixel
Replaced old JailingQueue system with a new way to stop chunk compilations while rendering
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
The file was modifiedsrc/main/resources/mixins.replaymod.json
The file was addedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
Commit af61f60681dee38c06f7f45e88efc605b3bb53e7 by CrushedPixel
Replace poor lock system with ReadWriteLock system
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit d7dcefe836d9b251dc5f2cd1a566c3aabc2e3497 by CrushedPixel
Created ChunkRenderDispatcherCT to make queueChunkUpdates field volatile
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/LoadingPlugin.java
The file was addedsrc/main/java/eu/crushedpixel/replaymod/coremod/ChunkRenderDispatcherCT.java
Commit 4bb5923d2a84b4cad7af96a199a5fa263a3c9d26 by CrushedPixel
Removing some CT debug output
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/ClippingHelperCT.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/ChunkRenderDispatcherCT.java
Commit 0bfd5f424449ea30a44ba33243e532d798e6e4c4 by CrushedPixel
Modify the ChunkRenderWorker to feed itself with an empty, finished ChunkCompileTaskGenerator while recording if no future TaskGenerator is in the queueChunkUpdates, to prevent deadlock state when the processTask method's internal lock indirectly kept the ChunkLoadingRenderGlobal.lock locked
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
Commit 8421136295d06112ec86c21b7d7690c8e597eecb by CrushedPixel
The Shaders Mod seemed to like keeping us in an eternal do/while loop
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit 648f75b60811d710a20a71650b45ff76fcf5c082 by CrushedPixel
Use a custom LockingChunkCompileTaskGenerator to lock the ChunkRenderWorkers while rendering videos. These Generators are inserted into the renderDispatcher's queueChunkUpdates, therefore assuring that the ChunkRenderWorkers release the ChunkLoadingRenderGlobal's ReadLocks after finishing Minecraft's final chunk compilation/upload process.
The file was modifiedsrc/main/resources/mixins.replaymod.json
The file was addedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderDispatcher.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
Commit 73a29f816a1362ef126fd3c187a506d3e7a17275 by CrushedPixel
Removed now obsolete MixinChunkRenderDispatcher
The file was modifiedsrc/main/resources/mixins.replaymod.json
The file was removedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderDispatcher.java
Commit 61c1eeee20c139c88e17680bf150cf7e41a454da by CrushedPixel
Made ChunkLoadingRenderGlobal's ReadWriteLock non-static
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/mixin/MixinChunkRenderWorker.java
Commit 7e5c83005ae4801b2f15f2b0132581f501aabcb7 by CrushedPixel
Draw the Rendering GUI on our own Framebuffer instead of the Minecraft framebuffer. This way we don't have to recreate (because of resizing) Minecraft's framebuffer every frame (once to render the video with custom resolution, once to render the GUI with window resolution)
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/utils/MouseUtils.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/ODSFrameCapturer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiVideoRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/capturer/OpenGlFrameCapturer.java
Commit 7542d9caf994152d025281098620700cf1f8ae5b by CrushedPixel
Compare our framebuffer's size to the Display's size BEFORE rendering to properly update the gui size
Restore mc.displayWidth and Height after calling gui.handleInput in VideoRenderer so we don't have to recalculate the mouse positions in GuiVideoRenderer's onClick method
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/gui/GuiVideoRenderer.java
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit e6a7c796d622408132eaac6a03f2d599d613b141 by CrushedPixel
We don't need that weird chunk loading difference check anymore
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit 9fbf8a8b4b61620f6c507bab56a5e03afeafc3a7 by CrushedPixel
Gracefully offer the queueChunkUpdates the LockingChunkCompileTasks, but be persistent until they accept our gift.
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit a7ac6328835cda0085b0e9816bd9fe9fe9da67ee by CrushedPixel
Take the "up to one second" in Johni's comment a bit more literally
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit 70f4e9c570bd3244bea4c06501cdf551e8fca8fb by CrushedPixel
Johni says I may not ignore this exception.
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit aa307706655960f6a0bee3a3c70b131c7de2508c by CrushedPixel
The ChunkRenderDispatcher#queueChunkUpdates does not need to be non-final and therefore does not have to be volatile -> removed ChunkRenderDispatcherCT
The file was modifiedsrc/main/resources/META-INF/replaymod_at.cfg
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/coremod/LoadingPlugin.java
The file was removedsrc/main/java/eu/crushedpixel/replaymod/coremod/ChunkRenderDispatcherCT.java
Commit d97b15d103d4e7e01089b163a4522cec2bae7d6d by CrushedPixel
Move Shaders Mod detection from postInit() to a static block
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/ReplayMod.java
Commit be68318813e2b83479703f72e82fc2714c0422d5 by CrushedPixel
Re-enabled rendering with PBOs enabled
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/rendering/Pipelines.java
Commit 8131639dba8780fef3823b7311fb9266da96efd2 by CrushedPixel
Have a maximum of 10 timeouts when offering LockingChunkCompileTasks to queueChunkUpdates
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/renderer/ChunkLoadingRenderGlobal.java
Commit 465541ff7456896da1163cf36da26606144cec78 by CrushedPixel
Render the guiFramebuffer with correct width/height arguments
The file was modifiedsrc/main/java/eu/crushedpixel/replaymod/video/VideoRenderer.java
Commit 67037e844ea136e1db80e28dd0354e40445d46d9 by CrushedPixel
1.0.7
The file was modifiedbuild.gradle