nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)

Modern UI 3.11.0.4 (Fabric)

Changelog

Modern UI 3.11.0.4

NeoForge Extension 1.21.1

  • Change default typeface/font loading behavior
  • Add option to replace vanilla blur effect with Modern UI for optimization
  • Allow setting blur radius to 0 to disable blur
  • Add MinecraftSurfaceView to handle raw rendering calls
  • Ensure that all (native/GPU) resources are closed when the game exits
  • Slightly improve the Center UI
  • Fix a random crash when opening/closing UI frequently
  • Rework tooltip rendering
    • Add white noise to shadow
    • Add dithering to gradient colors
    • Use L1 norm instead of L2 norm for coverage antialiasing
    • Change shadow approximation method
    • Change default border radius and shadow alpha
    • Add new conditions for adding the extra space below tooltip title line
    • If the first three lines of the tooltip have different styles, we consider the first line as the title
    • Reduce the saturation of default tooltip colors
  • Allow using arrow keys to manually scroll the tooltip
  • Add small epsilon to text Z value for tooltip rendering to work around FP errors on some GPUs
  • Optimize blur effect
    • Use texelFetch instead of texture
    • Remove the additional blit pass and render target because we work around a Minecraft bug
    • Try to cache the shader program and temporary render target for blurring, and handle errors
    • Apply blur effect to the screen background instead of the world, just like Minecraft 1.21
  • Migrate to new rendering pipeline

Forge Extension 1.21.1

  • Equivalent to NeoForge version

Fabric Extension 1.21.1

  • Functionally equivalent to NeoForge version

Modern Text Engine 1.21.1

  • Add compatibility for bitmap fonts with custom text shader
  • Enable linear metrics and disable font hinting by default
  • Add config to change the minimum pixel density for SDF text
  • Fix some possible bugs on text rendering
  • Optimize text rendering
    • Add texture cleanup to FontResourceManager
    • Simplify text layout rendering code
    • Use Math.round for aligning pixels
    • Fix glyph info for FontSet compatibility
  • Rework and optimize bitmap font rendering
    • Try to stitch bitmap font into atlas
    • Try to discard bitmap fonts if they have negative metrics, transparent pixels, or huge metrics
    • Saturate glyph metrics for bitmap font
    • Fix hashCode and equals for correct de-duplication
  • Adjust lod bias for normal text shader
  • Adjust bitmap font to match vanilla behavior
    • Adjust glyph advance calculation
  • Adjust Unicode font loading behavior
    • Any reference to vanilla Unicode font and UNIHEX font will redirect to current ModernUI default typeface list instead of system fonts, except for Minecraft default font set
  • Fix text layout bug when finding style transitions
  • Allow caching the missing glyph to atlas
  • Adopt full text rendering technology from core framework
  • Fix line breaker that may output no lines and keep consistency with vanilla behavior
    • This fix a bug with IBE Editor
  • Fix text strike cache invalidation for FontSet compatibility
    • This fix a bug with Create
  • Add text layout dump in advanced options
  • Add a command for debugging line breaker
  • Add methods for debugging text engine
  • Work around AMD driver bug before GCN 1
  • Change the initial size of A8 font atlas to 2048x2048
  • Fix crash when compacting font atlas

Core Framework

  • Enable linear text by default, increase layout cache limit
  • Delete render thread executor
  • Delete old text rendering code
  • Add GradientDrawable that draw shapes with gradient colors
  • Update/fix ShapeDrawable with latest rendering pipeline
  • Add set/get ColorFilter to Drawable and ImageView Add ImageView.setImageTintBlendMode
  • Rework ImageDrawable.setSrcRect() method
  • Update ImageDrawable with antialias, dither, filter, and tile modes
  • Add setter/getter to change blend mode for edge effect
  • Change default blend mode for EdgeEffect from SRC_OVER to SRC_ATOP
  • Fix Matrix.mapRect()
  • Fix EdgeEffect centerX
  • Improve text rendering
  • Add AngularGradient API and implementation
  • Add RadialGradient API and implementation
  • Add LinearGradient API and implementation
  • Add GradientShader API and implementation
  • Add new draw methods to Canvas class
  • Add BlendModeColorFilter and make it work finally, default blend mode for ImageDrawable is SRC_IN
  • Add ColorFilter class that can be installed on Paint
  • Refactor Image class and fix Image.close() issue
  • Refactor Paint class
  • Add ImageShader class
  • Add Shader class that can be installed on Paint
  • Add TextView.setTextSize() that specifies a unit, default is sp
  • Full migration to the new rendering pipeline, Arc3D Granite Renderer; delete old GLSurfaceCanvas
  • Avoid re-layout on window minimized, since framebuffer is destroyed and size is 0
  • Deprecate Canvas.saveLayer() for future layer compositor and render tree

Core Framework - Kotlin Extension

  • No changes

Markdown Extension

  • No changes

Arc3D Graphics Engine

  • Remove old usage of Image.getSurfaceFlags
  • Add Image.getUniqueID() and static methods to create raster images
  • Add utility NoDrawCanvas NWayCanvas and PaintFilterCanvas
  • Fix Matrix.mapRect() is not correct
  • Fix compiler error
  • Optimize text ops if subRunToDevice is translation-only and pipeline does not require local coords trivially
  • Optimize matrix computation for text ops
  • Replace Matrix4 in rendering code with Matrix
  • Make Matrix4() construct an identity matrix, and Matrix4.identity() return a read-only identity matrix
  • Fix TextBlobBuilder offsets not reset after build
  • Add RoundRect flatten methods
  • Improve NoPixelsDevice clip tracking, remove ConservativeClip
  • Add DrawAtlas.purge() to free unused pages
  • Add implementation for gradients in other interpolation color spaces and for all hue interpolation methods
  • Allow DrawAtlas to perform an immediate compact
  • Rename some classes and methods
  • Change the default uniform buffer block size to 32KB
  • Fix color array copy in Vertices::makeCopy
  • Fix persistent mapping check in GLBuffer
  • Temporarily enable RGB texture in OpenGL
  • Try to share vertex array objects in OpenGL backend
  • Expose resource cleanup API, also cleanup framebuffer cache and strike cache
  • Review ResourceCache, fix some legacy issues
  • Add support for alpha-only images, add missing Shaders shader implementation
  • Purge framebuffers immediately after one attachment was destroyed
  • Complete the compatibility with OpenGL 3.3 and OpenGL ES 3.0
  • Improve texture and renderbuffer creation
  • Deprecate old Device methods
  • Fix OpenGL 3.3 and GLSL 330 compatibility
  • Finalize BoundsManager, add samples
  • Add plus_clamped, minus, and minus_clamped blend info
  • Remove 01 coverage in non-aa case
  • Add blend equation in GL backend
  • Mark old code as deprecated
  • Implement basic functionality for final blender, enable dual source blending
  • Fully implement BakedTextBlob and TextBlobCache for text rendering
  • Fix blend shader doesn't compile
  • Add TextBlob as an immutable container for glyph rendering
  • Rework FramebufferDesc, add FramebufferCache to manage framebuffers
  • Basically implement texture copy task, implement Surface.onNewImageSnapshot()
  • Add factory method to create Surface
  • Implement Device management
  • Invalidate atlases if RC.snap() failed
  • Fix several threading issues for OpenGL backend
  • Handle ColorFilter properly
  • Add BlendModeShader
  • Fix color space transformation on paint's solid color
  • Add primitive color blending and color space transform
  • Add blending with shader and paint's alpha
  • Fix color space transformation on BlendModeColorFilter
  • Add implementation of BlendModeShader and BlendModeColorFilter
  • Remove Geometry interface
  • Add Vertices class and Vertices step to drawVertices
  • Add shader implementation for 42 blend modes
  • Fix arg name for uniforms that start with no mangle prefix
  • Add StaticBufferManager and Buffer-to-Buffer copy task
  • Fix ImageUploadTask bug
  • Implement remaining important Canvas methods
  • Add and implement new Canvas methods in Device
  • Fix depth is perspective-correct; the depth should be preserved, then multiply it by w.
  • Fix bugs on arc shader with square end
  • Finish methods to create and draw GlyphRuns
  • Add method to set Matrix elements
  • Fix Matrix4.hashCode() for negative zero
  • Add Geometry.getBounds() to compute bounds
  • Improve ClipStack to compute several bounds
  • Fix stroke inflation radius computation for inner and outer stroke
  • Optimize draw when it does not depend on dst
  • Fix several issues on Device
  • Implement the creation of AtlasSubRuns
  • Add method to compute res scales if matrix has perspective
  • Fix AnalyticSimpleBoxStep instance data type
  • Add method to draw pie and chord, optimize shaders
  • Add rendering with three cap types of stroke arcs initially
  • Implement Atlas text op at low level, improve solid color fast path, trying to handle primitive color
  • Fix ScalerContext_JDK does not return a reliable glyph bounds
  • Fix DrawAtlas assertion and GlyphAtlasManager row stride
  • Fix Strike and ScalerContext bugs, remove stroke cap in StrikeDesc
  • Improve finite check and non-invertible matrix
  • Add RendererProvider to manage GeometryRenderers
  • Finish implementation of atlas management for draw ops and glyph atlas
  • Calculate the Path byte size when generating Glyph in Strike
  • Implement Strike, StrikeCache, and ScalerContext basically
  • Add Paint.setPathEffect(), add missing javadoc in Font
  • Add Path.transform(), add PathIterator.getFillRule()
  • Add GPU dithering implementation (no texture lookup)
  • Fix GLCaps.FormatInfo for RGB565
  • Update Paint and related classes
  • Make Blender and ColorFilter strictly ref-counted
  • Add Shader.isConstant()
  • Fix Canvas.drawCircle()
  • Add Paint.setColor4f()
  • Fix Paint.setStrokeWidth() and Paint.setStrokeMiter() for NaN values
  • Remove Paint's SmoothWidth, MaskFilter and ImageFilter
  • Add PathEffect skeleton class
  • Fix several hashCode implementation for negative zeros
  • Update Paint.nothingToDraw() for more blend modes
  • Add more methods to RoundRect
  • Update Surface, Canvas, and related classes
  • Add Stroke, PathIterable, update PathStroker
  • Optimize shaders
  • Use short-circuit for transfer function
  • Use texelFetch for cubic shader, remove invImageSize uniform
  • Add perspective correction for local matrix shader
  • Extract color space transform from image shaders
  • Ensure subset sampling does not use mipmaps
  • Implement bicubic and strict subset sampling
  • Change AnalyticSimpleBoxStep to use L1 norm
  • Fix bug on GLImageDesc.equals()
  • Fix bug on uniform block layout
  • Change Paint constants and SamplingOptions, adding classes for text rendering
  • Done depth stencil work, fix several bugs
  • Add flipY and unorm clamp for PixelUtils
  • Implement LinearGradient, RadialGradient, AngularGradient
  • Fix bugs on ImageShader.makeSubset()
  • Fix bugs on premul & unpremul in some classes
  • Improve ColorSpace transform, add PixelUtils.convertPixels()
  • Add new ColorSpace transform shader
  • Fix GLSampler TEXTURE_WRAP_R is not set, add validation for SamplerDesc
  • Fix Matrix4.invert, add Matrix.toMatrix4, fix UniformDataGatherer for mat3
  • Make Paint, PaintParams, and Draw classes closeable
  • Fix TextureTracker; rename gradient shaders
  • Optimize box shader
  • Accumulated updates on fragment effects and shading pipeline
  • Implement simple pixel upload using image-to-image copy
  • Add new Shader and ColorFilter classes
  • Rename PixelMap to Pixmap, PixelRef to Pixels
  • Switch slow JNI to PixelUtils.copyImage() for array to off-heap copy
  • Remove the offset parameter of Buffer.unmap()
  • Finish AnalyticSimpleBoxStep
  • Allow implicit conversion between numerics
  • Add DepthStencilSettings and BoundsManager, limit the number of geometry steps
  • Optimize vertex writer and uniform writer, optimize uniform data deduplication
  • Basically complete the Granite Renderer
  • Add geometry projection, solid color simplification
  • Finish RenderPassTask execution Fix scissor origin, initial scissor setup
  • Complete DrawPass's texture sampler binding
  • Add TextureDataGatherer, texture sampler binding and tracker
  • Add UniformDataGatherer and UniformDataCache
  • Fix Matrix4.store()
  • Add framebuffer creation and some tests
  • Some work on new PipelineBuilder
  • Update Buffer, GLBuffer, persistent mapping and so on
  • Accumulative updates for new renderer
  • Add method for updating clip draws
  • Update ClipStack
  • Improve vertex specification and buffer binding
  • Rename the project from 'Arc 3D' to 'Arc3D'
  • Commit all accumulative updates
  • Change BlendMode.apply() to static methods
  • Accumulative updates for the new pipeline
  • Attempt to refactor pipeline
  • Add more classes for new pipeline
  • Add frexp & ldexp impl
  • Some attempts on pipeline
  • Refactor GPU Image, RenderTarget, SurfaceProxy classes; remove Texture
  • Add Image and Framebuffer creation, add reusable framebuffers
  • Refactor GpuResource class hierarchy
  • Support GL_CONTEXT_LOST
  • Tons of work on Engine and OpenGL backend, not listed
  • Add pre-defined extensions to compile options
  • A lot of work on abstraction between GL3 and GLES3
  • Initially add GLInterface for both OpenGL & OpenGL ES support
  • Add std140/std430 layout qualifiers, add include directive parsing
  • Abandon usage of GLSL ARB extensions that core in later versions
  • Fix GLCaps crash for some capabilities
  • Fix some bugs in preprocessing
  • Other improvements
  • Add new preprocessing methods, allow sub-range source
  • Add StringLiteral grammar, fix Whitespace grammar
  • Add FatalError to terminate compiler
  • Add identifier name length check (1024 at most)
  • Add benchmark between Arc3D and shaderc (glslang)
  • Update Lexer
  • Add directive grammar
  • Add 'using' grammar for type aliases
  • Add newline token, fix block comment grammar

Files

ModernUI-Fabric-1.21.1-3.11.0.4-universal.jar(24.19 MiB) Primary Download

External resources


Project members

BloCamLimb

Owner


Technical information

License
LGPL-3.0-or-later
Client side
required
Server side
unsupported
Project ID