Modern UI 3.8.1.2
Forge Extension 1.19.2-43.1.2
- Add OptiFine-like zoom
- Add master volume multiplier on window blur or minimized
- Add framerate limit on window blur or minimized
- Add hot reload of the default typeface list
- Add font selection list and open file dialog
- Separate old font family config into preferred one and fallbacks
- Fix ASCII digit input in Arabic
- Add tooltip center alignment
- Add tooltip title break
- Improve extra spacing below tooltip title
- Add config to switch between rounded rect or normal rect for tooltip border
- Add config for exact tooltip positioning
- Add maximized borderless mode
- Improve fullscreen borderless on Windows
- Update default config
- Fix crash on setting opacity to 0
- Fix possible crash in parsing color string
- Add Fragments into crash report
- Add more advanced options
Modern Text Engine 1.19.2
- Add fake italic support for bitmap fonts
- Add device font size computation in 2D
- Add SDF text control in 2D
- Add cache lifespan config back
- Optimize cache performance
- Add config for async text layout
- Fix text engine not fully disabled
- Fix memory leakage when reloading resources
- Add smart SDF text control
- Fix polygon offset issues
- Fix possible crash on populateDefaultFonts
- Add line break style config
- Add line break word style config
- Fix shadow offset for bitmap fonts
- Add redirect of UniformFont
Core Framework 3.8.1
- Add LayerDrawable
- Allow typeface change for toasts
- Fix adapter views not getting attached
- Fix changing focus with TAB key
- Make ScrollView auto scroll to focus
- Add implementation of LineBreakConfig
- Stop text from being split into small MeasureText.Runs
Arc 3D Graphics Engine 3.8.1
- Add rect stroke bevel and round shaders
- Limit FontAtlas size
- Make use of GLSL version in ShaderCaps
- Add numDraws and renderPasses stats
Modern UI 3.8.1.1
Forge Extension 1.18.2-40.1.73
- Add OptiFine-like zoom
- Add master volume multiplier on window blur or minimized
- Add framerate limit on window blur or minimized
- Add hot reload of the default typeface list
- Add font selection list and open file dialog
- Separate old font family config into preferred one and fallbacks
- Fix ASCII digit input in Arabic
- Add tooltip center alignment
- Add tooltip title break
- Improve extra spacing below tooltip title
- Add config to switch between rounded rect or normal rect for tooltip border
- Add config for exact tooltip positioning
- Add maximized borderless mode
- Improve fullscreen borderless on Windows
- Update default config
- Fix crash on setting opacity to 0
- Fix possible crash in parsing color string
- Add Fragments into crash report
- Add more advanced options
Modern Text Engine 1.18.2
- Add fake italic support for bitmap fonts
- Add device font size computation in 2D
- Add SDF text control in 2D
- Add cache lifespan config back
- Optimize cache performance
- Add config for async text layout
- Fix text engine not fully disabled
- Fix memory leakage when reloading resources
- Add smart SDF text control
- Fix polygon offset issues
- Fix possible crash on populateDefaultFonts
- Add line break style config
- Add line break word style config
- Fix shadow offset for bitmap fonts
- Add redirect of UniformFont
Core Framework 3.8.1
- Add LayerDrawable
- Allow typeface change for toasts
- Fix adapter views not getting attached
- Fix changing focus with TAB key
- Make ScrollView auto scroll to focus
- Add implementation of LineBreakConfig
- Stop text from being split into small MeasureText.Runs
Arc 3D Graphics Engine 3.8.1
- Add rect stroke bevel and round shaders
- Limit FontAtlas size
- Make use of GLSL version in ShaderCaps
- Add numDraws and renderPasses stats
Modern UI 3.8.0.4
Forge Extension 1.20.1-47.0.14
- Add tooltips for some options
- Add in-game option for background opacity
- Use bootstrap.properties instead of bootstrap file
- Add dynamic tooltip border colors and presets
- Block NUL char for input method
Modern Text Engine 1.20.1
- Add config to control component cache
- Add default font behavior to control whether to use default font
- Add SpaceFont for compatibility
- Add position alignment for direct mask drawing
- Add StandardFontSet for better mod compatibility
- Make color emoji work in font itemization rather than brute force
- Enhance and optimize text layout engine
- Only compute the required information
- Make text layout asynchronous
- Mix layout processor into LayoutCore to increase cache hit
- Adjust paragraph layout lifespan
- Reduce performance and memory impact
- Remove fast digit replacement
- Make obfuscated style work with bitmap fonts
- Adjust EditBox highlight color
Core Framework 3.8.0
- Update font itemization for color emoji
- Fit sub-windows in main window
- Add ColorEmoji support for font itemization
- Optimize GPU glyph memory usage
- Block NUL and DEL character from input
- Add EmojiFont features
- Replace Matrix4 with Matrix for View
- Add TooltipPopup support for View
- Add Font interface for layout engine, move old Font usage to StandardFont
- Add text pre-computation
- Replace all ascents with negative values
- Fix TextLine context range
- Add offset parameters to GlyphsConsumer
- Add TextShaper.shapeText for multi-styled text
- Fix Canvas.drawText(ShapedText) method
- Update TextShaper and Canvas methods
- Add TrailingMarginSpan, add LineBackgroundSpan, add TypefaceSpan
- Enhance rich text spans, add AlignmentSpan, BulletSpan, LeadingMarginSpan, QuoteSpan
- Optimize MeasuredText
- Supports text layout with optional per-glyph advances and pixel bounds
- Separate Arc Paint, Graphics Paint, TextPaint and FontPaint
- Enhance temp TextBuffer recycling
- Fix fast path for BoringLayout.draw()
- Remove Canvas.drawText(CharSequence)
- Replace old LayoutPiece usage with ShapedText.doLayout
- Optimize text rendering
- Fix FontFamily is not thread safe
- Add Matrix for 2D transform (xyw), Matrix3 for 3D transform (xyz)
- Migrate graphics package to Arc 3D
- Add explicit camera distance
- Other small updates...
Arc 3D Graphics Engine 3.8.0
- Add experimental instanced rendering
- Optimize text rendering
- Always use buffer orphaning for OpenGL
- Add backend render target wrapping
- Add submit method for BufferPool
- Add IndexMeshPool
- Move some context states out of GLCommandBuffer
- Add RingBuffer
- Add some Vulkan backend classes
Markdown 3.8.0
- Add Code and CodeBlock
- Initial basic Markdown support
Modern UI 3.8.0.3
Forge Extension 1.19.4-45.1.0
- Add tooltips for some options
- Add in-game option for background opacity
- Use bootstrap.properties instead of bootstrap file
- Add dynamic tooltip border colors and presets
- Block NUL char for input method
Modern Text Engine 1.19.4
- Add config to control component cache
- Add default font behavior to control whether to use default font
- Add SpaceFont for compatibility
- Add position alignment for direct mask drawing
- Add StandardFontSet for better mod compatibility
- Make color emoji work in font itemization rather than brute force
- Enhance and optimize text layout engine
- Only compute the required information
- Make text layout asynchronous
- Mix layout processor into LayoutCore to increase cache hit
- Adjust paragraph layout lifespan
- Reduce performance and memory impact
- Remove fast digit replacement
- Make obfuscated style work with bitmap fonts
- Adjust EditBox highlight color
Core Framework 3.8.0
- Update font itemization for color emoji
- Fit sub-windows in main window
- Add ColorEmoji support for font itemization
- Optimize GPU glyph memory usage
- Block NUL and DEL character from input
- Add EmojiFont features
- Replace Matrix4 with Matrix for View
- Add TooltipPopup support for View
- Add Font interface for layout engine, move old Font usage to StandardFont
- Add text pre-computation
- Replace all ascents with negative values
- Fix TextLine context range
- Add offset parameters to GlyphsConsumer
- Add TextShaper.shapeText for multi-styled text
- Fix Canvas.drawText(ShapedText) method
- Update TextShaper and Canvas methods
- Add TrailingMarginSpan, add LineBackgroundSpan, add TypefaceSpan
- Enhance rich text spans, add AlignmentSpan, BulletSpan, LeadingMarginSpan, QuoteSpan
- Optimize MeasuredText
- Supports text layout with optional per-glyph advances and pixel bounds
- Separate Arc Paint, Graphics Paint, TextPaint and FontPaint
- Enhance temp TextBuffer recycling
- Fix fast path for BoringLayout.draw()
- Remove Canvas.drawText(CharSequence)
- Replace old LayoutPiece usage with ShapedText.doLayout
- Optimize text rendering
- Fix FontFamily is not thread safe
- Add Matrix for 2D transform (xyw), Matrix3 for 3D transform (xyz)
- Migrate graphics package to Arc 3D
- Add explicit camera distance
- Other small updates...
Arc 3D Graphics Engine 3.8.0
- Add experimental instanced rendering
- Optimize text rendering
- Always use buffer orphaning for OpenGL
- Add backend render target wrapping
- Add submit method for BufferPool
- Add IndexMeshPool
- Move some context states out of GLCommandBuffer
- Add RingBuffer
- Add some Vulkan backend classes
Markdown 3.8.0
- Add Code and CodeBlock
- Initial basic Markdown support
Modern UI 3.8.0.2
Forge Extension 1.19.2-43.1.2
- Add tooltips for some options
- Add in-game option for background opacity
- Use bootstrap.properties instead of bootstrap file
- Add dynamic tooltip border colors and presets
- Block NUL char for input method
Modern Text Engine 1.19.2
- Add config to control component cache
- Add default font behavior to control whether to use default font
- Add SpaceFont for compatibility
- Add position alignment for direct mask drawing
- Add StandardFontSet for better mod compatibility
- Make color emoji work in font itemization rather than brute force
- Enhance and optimize text layout engine
- Only compute the required information
- Make text layout asynchronous
- Mix layout processor into LayoutCore to increase cache hit
- Adjust paragraph layout lifespan
- Reduce performance and memory impact
- Remove fast digit replacement
- Make obfuscated style work with bitmap fonts
- Adjust EditBox highlight color
Core Framework 3.8.0
- Update font itemization for color emoji
- Fit sub-windows in main window
- Add ColorEmoji support for font itemization
- Optimize GPU glyph memory usage
- Block NUL and DEL character from input
- Add EmojiFont features
- Replace Matrix4 with Matrix for View
- Add TooltipPopup support for View
- Add Font interface for layout engine, move old Font usage to StandardFont
- Add text pre-computation
- Replace all ascents with negative values
- Fix TextLine context range
- Add offset parameters to GlyphsConsumer
- Add TextShaper.shapeText for multi-styled text
- Fix Canvas.drawText(ShapedText) method
- Update TextShaper and Canvas methods
- Add TrailingMarginSpan, add LineBackgroundSpan, add TypefaceSpan
- Enhance rich text spans, add AlignmentSpan, BulletSpan, LeadingMarginSpan, QuoteSpan
- Optimize MeasuredText
- Supports text layout with optional per-glyph advances and pixel bounds
- Separate Arc Paint, Graphics Paint, TextPaint and FontPaint
- Enhance temp TextBuffer recycling
- Fix fast path for BoringLayout.draw()
- Remove Canvas.drawText(CharSequence)
- Replace old LayoutPiece usage with ShapedText.doLayout
- Optimize text rendering
- Fix FontFamily is not thread safe
- Add Matrix for 2D transform (xyw), Matrix3 for 3D transform (xyz)
- Migrate graphics package to Arc 3D
- Add explicit camera distance
- Other small updates...
Arc 3D Graphics Engine 3.8.0
- Add experimental instanced rendering
- Optimize text rendering
- Always use buffer orphaning for OpenGL
- Add backend render target wrapping
- Add submit method for BufferPool
- Add IndexMeshPool
- Move some context states out of GLCommandBuffer
- Add RingBuffer
- Add some Vulkan backend classes
Markdown 3.8.0
- Add Code and CodeBlock
- Initial basic Markdown support
Modern UI 3.8.0.1
Forge Extension 1.18.2-40.1.73
- Add tooltips for some options
- Add in-game option for background opacity
- Use bootstrap.properties instead of bootstrap file
- Add dynamic tooltip border colors and presets
- Block NUL char for input method
- Fix crash on dedicated server
- Fix possible startup crash
- Add ContainerDrawHelper
- Add config to use vanilla font for convenience
- Remove tooltip fade-in animation
- Add slider control for preferences
- Fix UI screenshot not un-premultiplied
- Don't allow soft launching due to OpenGL 3.3 support
- Fix GUI scale pinned after game restart
- Add CenterFragment2
- Remove noise from gaussian blur shader
- Remove deprecated configs
- Adjust GUI scale algorithm
- Adjust tooltip border width
- Support capability for fragments and screens
- Fix incorrect color blending for tooltip
- Fix GUI scale is always auto after restart
- Fix black screen with blur effect
- Add glow wave effect
- Change the background blur from 4-pass box blur to 2-pass gaussian blur with lod and noise
- Improve config reloading and action center UI
- Fix crash on dedicated server (though you shouldn't install on server)
- Add config to disable slider GUI scale
- Update GUI scale algorithm
- Add I18n compat characters
- Add new API and remove server dependency
- Change registration and network to internal
Modern Text Engine 1.18.2
- Add config to control component cache
- Add default font behavior to control whether to use default font
- Add SpaceFont for compatibility
- Add position alignment for direct mask drawing
- Add StandardFontSet for better mod compatibility
- Make color emoji work in font itemization rather than brute force
- Enhance and optimize text layout engine
- Only compute the required information
- Make text layout asynchronous
- Mix layout processor into LayoutCore to increase cache hit
- Adjust paragraph layout lifespan
- Reduce performance and memory impact
- Remove fast digit replacement
- Make obfuscated style work with bitmap fonts
- Adjust EditBox highlight color
- Fix EditBox selection highlight
- Fix per-glyph rendering for compatibility
- Fix obfuscated text crash in world using SDF
- Make SDF work as long as in 3D or non-translation matrix
- Make SDF work with 32pt font size at least
- Remove alignPixels due to font hinting
- Replace 8x outline with SDF stroke
- Fix compatibility for Create display board
- Change Twemoji 14 to Google Noto Color Emoji 15
- Fix text rendered as emoji without VS-16 (0xFE0F)
- Combine IamCal (Slack) shortcodes with JoyPixels (Discord) and Google
- Add distance field text to 3D world
- Fix total advance of layout is never pixel-aligned
- Fix TTF loading in vanilla resource packs
- Adjust texture sharpening factor
- Fix line breaking for obfuscated chars
- Remove enchantment font hack
- Support vanilla bitmap font in replacement run
- Support vanilla bitmap font as font family
- Support vanilla font declaration
- Adjust text decoration thickness
- Reduce unnecessary native memory usage in vanilla
- Make font resource reloading work async
- Optimize ChatFormatting.getByCode to O(1)
- Optimize layout caching strategy
- Add font set to layout key
- Add sharpen font atlases
- Change blend mode for glowing text
- Add new glowing text effect
- Add deferred rendering to improve performance
Core Framework 3.8.0
- Update font itemization for color emoji
- Fit sub-windows in main window
- Add ColorEmoji support for font itemization
- Optimize GPU glyph memory usage
- Block NUL and DEL character from input
- Add EmojiFont features
- Replace Matrix4 with Matrix for View
- Add TooltipPopup support for View
- Add Font interface for layout engine, move old Font usage to StandardFont
- Add text pre-computation
- Replace all ascents with negative values
- Fix TextLine context range
- Add offset parameters to GlyphsConsumer
- Add TextShaper.shapeText for multi-styled text
- Fix Canvas.drawText(ShapedText) method
- Update TextShaper and Canvas methods
- Add TrailingMarginSpan, add LineBackgroundSpan, add TypefaceSpan
- Enhance rich text spans, add AlignmentSpan, BulletSpan, LeadingMarginSpan, QuoteSpan
- Optimize MeasuredText
- Supports text layout with optional per-glyph advances and pixel bounds
- Separate Arc Paint, Graphics Paint, TextPaint and FontPaint
- Enhance temp TextBuffer recycling
- Fix fast path for BoringLayout.draw()
- Remove Canvas.drawText(CharSequence)
- Replace old LayoutPiece usage with ShapedText.doLayout
- Optimize text rendering
- Fix FontFamily is not thread safe
- Add Matrix for 2D transform (xyw), Matrix3 for 3D transform (xyz)
- Migrate graphics package to Arc 3D
- Add explicit camera distance
- Add context range to LayoutCache
- Add draw ShapedText, add register method to FontFamily
- Add ShapedText and TextShaper for drawing text, make drawText deprecated
- Rework LayoutPiece, optimize cluster work, now it won't do texture work
- Add FontFamily aliases
- Moving low-level text layout to graphics.text package
- Fix MessageQueue parkNanos time unit
- Don't use perspective if View has no 3D transform
- Add WindowGroup for toasts and popups
- Add context to Toast
- Add MpmcArrayQueue
- Optimize view matrix composition
- Rework threading system
- Add ProgressBar and SeekBar
- Add Locale alias for FontFamily
- Add ScaleDrawable
- Change ScrollView default scrollbar
- Fix bitmap getPixelARGB on BIG ENDIAN machine
- Rework ShapeDrawable, remove old Shape classes
- Set long press timeout to 1000ms by default
- Add LinkMovementMethod
- Update BinaryIO
- Update ListView
- Update Pool and Pools
- Update Paint methods
- Add ViewPager module
- Rework drawLine method with SDF
- Add drawPie drawMesh canvas method
- Add GIF image decoder
- Add more Bitmap formats and image decode methods
- Merge Arc 3D graphics engine
- Add framework Nullable/NonNull annotations
- Allow Bitmap's pixels to be shared
- Add ColorSpace implementation
- Update Matrix and MathUtil
- Optimize for styled text, make text style serializable
- Add complex value and display metrics
- Add linked structure and custom data class for DataSet
- Add property name for Property
- Fix distance-to-edge anti-aliasing is gamma correct
- Adjust analytic anti-aliasing to screen-space
- Improve font collection itemization
- Update shaders to a modern version
- Use indexed rendering for glyph meshes
- Add sharpen textures for all shaders
- Always use premultiplied alpha for builtin renderer
- Compact font atlas generation
- Other small updates...
Arc 3D Graphics Engine 3.8.0
- Add experimental instanced rendering
- Optimize text rendering
- Always use buffer orphaning for OpenGL
- Add backend render target wrapping
- Add submit method for BufferPool
- Add IndexMeshPool
- Move some context states out of GLCommandBuffer
- Add RingBuffer
- Add some Vulkan backend classes
- Fix BufferAllocPool
- Fix OpsRenderPass buffer pointers
- Update VaryingHandler and UniformHandler layout qualifier
- Add compatibility for base instance support
- Add GLUniformBuffer and buffer upload
- Add FilterMode, MipmapMode and AnisotropicFiltering for Paint
- Add async pipeline state cache (thread safe)
- Add separate objects from graphics package
- Add CustomDrawable for handling unmanaged draw
- Fix Buffer unlock method
- Fix BufferAlloc pointers
- Add RoundRectGeoProc
- Add Buffer creation method to Engine
- Add DrawOp and MeshDrawOp
- Add OpListTask
- Replace GLPipeline with separate GLProgram and GLVertexArray
- Add GLOpsRenderPass
- Add GLUniformDataManager
- Support base offset for GLVertexArray in OpenGL 3.3
- Fix Surface hierarchy
- Use MSAA resolve instead of MS texture sampler
- Add compatibility methods for creating render target objects
- Add close() for LazyCallback proxies
- Add GL_RG for GrayAlpha surface usage
- Add OpenGL 3.3 compatible shaders
- Add mutable texture allocation methods
- Add swizzle on texture binding
- Use separate min/mag filter for SamplerState
- Optimize surface canvas methods
- Optimize font atlas generation
- Change default font atlas size to 4 chunks (1024x1024)
- Change number of font atlases from multiple to single
- Add efficient rectangle packing algorithms
Markdown 3.8.0
- Add Code and CodeBlock
- Initial basic Markdown support
View Pager 3.8.0
- Add linear pager indicator
- Initial update