Per mod/docs/optimize-layer-design.md Stage 3 (partial). This commit ships the simplest GL mixins and the strategy interface that splits GL/Vulkan backends. SkinAtlas/AnimFreeze/HudCache/FrameFence deferred to a later pass because they're more complex (vertex-format / glCopyImageSubData / RenderPipeline+RenderPass). RenderBackendOps interface (features/.../optimize/gl/RenderBackendOps.java): - Backend-agnostic surface for lazy clear, TBO cache, RenderTypes cache. - current() resolves the active backend — returns GlRenderBackendOps on GL, null on Vulkan (so all WrapOperations fall through to the vanilla call). - Stage 4 will add a VulkanRenderBackendOps no-op implementation. GlRenderBackendOps (features/.../optimize/gl/GlRenderBackendOps.java): - Concrete GL implementation. Three caches ported from ZakoOpt: * Lazy clear (from zako.opt.mixin.gl.GlCommandEncoderClearMixin). * TBO cache (from zako.opt.gl.TexBufferCache + the TexBufferMixin). * RenderTypes cache (from zako.opt.mixin.gl.RenderTypesMixin). - All three gated on OptimizeToggles.microOpts() (the Stage 1 'micro_opts' toggle wired in Optimize.java). - Includes test helpers (resetForTesting, boundTboTextureForTesting, cachedRenderTypeCountForTesting). Three new mixins (mixins/optimize/): - RenderTypesMixin: WrapOperation on RenderTypes.entityTranslucent's BiFunction.apply — cache by Identifier when flag=true (the common case). Drops the per-call Objects.hash(Pair) hit. - GlCommandEncoderClearMixin: WrapOperation on GlCommandEncoder's clearColorAndDepthTextures → GlStateManager._glBindFramebuffer — skip the bind-framebuffer-0 because the next render pass binds its own target anyway and GlStateManager's cache already skips redundant binds. - GlCommandEncoderTexBufferMixin: WrapOperation on GlCommandEncoder's trySetup → glBindTexture (track bound) and glTexBuffer (skip re-attach when the same (format, buffer) pair is already attached). Re-attaching makes the driver revalidate the texture (clouds: ~2% of a frame). lovisual.mixins.json: - Register all three mixins + OptimizeDebugHudMixin in the 'client' array, alphabetically under optimize.* (before accessors.*). OptimizeDebugHudMixin (mixins/optimize/OptimizeDebugHudMixin.java): - F3 overlay for the Optimize layer — Stage 2 of the design doc. - Adds three blocks of lines to F3 (after the existing LoVisual Engine block): * 'LoVisual Optimize' — toggles summary + budget mode + scale + frame time. * 'frame:' — EMA-averaged per-section timings (entities/particles/HUD/effects/text). * 'props:' — when any -Dlovisual.opt.* is set, list which ones. - Mirrors the existing hud.DebugHudMixin pattern (ModifyArg on extractLines). Tests (JUnit 5): 11 new tests in GlRenderBackendOpsTest — pure-logic pieces of RenderBackendOps + Identifier equality/hash. Total suite: 849 tests, 0 failures. checkFolderLimit: OK (0 folders >4). |
||
|---|---|---|
| .. | ||
| config | ||
| docs | ||
| gradle/wrapper | ||
| src | ||
| tools | ||
| .gitignore | ||
| build.gradle | ||
| DEV_GUIDE.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| lombok.config | ||
| NOTICE | ||
| README.md | ||
| settings.gradle | ||
| TODO.md | ||
LoVisual
Minecraft utility client for PvP and automation. Developed and maintained by loki5512344.
English
Overview
LoVisual is an open-source legit utility client for Minecraft. It provides configurable visual, HUD, and UI features with a custom ClickGUI, theme system, and addon API.
LoVisual is developed and maintained by loki5512344. The goal is to keep adding new features and maintain compatibility with the latest Minecraft versions.
Quick Start
- Install Fabric Loader 0.19.3+ for MC 26.2+
- Download the LoVisual jar
- Place it in your
mods/folder along with Fabric API and Sodium - Open the ClickGUI with
RShift(configurable)
Features
| Feature | Description |
|---|---|
| Combat | ProjectilePuncher, Reach, RubberHand, SpearAssist, TPSSync, PvpCooldowns, NoFriendDamage, TargetESP, Predictions, DamageTint |
| Visuals | ESP, NameTags, Chams, Crosshair, FullBright, MotionBlur, NoRender, Freecam, Hitboxes, Light, ChinaHat, Trinkets, SpatialGui, and more |
| Player | AutoTool, ClickPearl, FakeLag, NoDelay, LockSlot, AutoRespawn, DeathCoords, NoInteract |
| Misc | BetterMinecraft, FakePlayer, HitSounds, NameProtect, MessageFilter, NoSound, DefineTarget |
| HUD | Draggable & static elements: TargetHUD, ModuleList, Watermark, Reach, Armor, Potions, Keystrokes, Coords, Notifications, Scoreboard |
| ClickGUI | Full-featured GUI with module browser, settings editor, theme editor, config profiles |
| Config profiles | .lvcfg profiles for modules, HUD, and themes — shareable between users |
| Addon API | Versioned addon API for extending the client |
| Custom renderer | Custom UI rendering with MSDF fonts, SVG icons, and shader support |
| Iris/Sodium/Xaero | Optional compatibility with popular mods |
Compatibility
| Mod | Status |
|---|---|
| Sodium | ✅ Required |
| Iris | ✅ Optional — shaderpack support |
| ImmediatelyFast | ✅ Optional — performance |
| Entity Culling | ✅ Optional — performance |
| Xaero's Minimap | ✅ Optional — waypoint integration |
| Xaero's World Map | ✅ Optional — waypoint integration |
| ViaFabricPlus | ✅ Optional — protocol translation |
Dependencies
- Required: Fabric Loader 0.19.3+, Fabric API, Sodium, Java 25+
- Optional: Iris, ImmediatelyFast, ViaFabricPlus, Entity Culling, Xaero's Minimap, Xaero's World Map
Installation
- Download the jar from Releases
- Place it in your
mods/folder - Restart the game
Русский
Обзор
LoVisual — открытый легитный утилитарный клиент для Minecraft. Включает настраиваемые визуальные, HUD и UI-модули, кастомный ClickGUI, систему тем и API для аддонов.
LoVisual разрабатывается и поддерживается loki5512344. Цель — добавлять новые возможности и поддерживать актуальные версии Minecraft.
Быстрый старт
- Установите Fabric Loader 0.19.3+ для MC 26.2+
- Скачайте LoVisual jar
- Положите в папку
mods/вместе с Fabric API и Sodium - Откройте ClickGUI через
RShift(настраивается)
Возможности
| Возможность | Описание |
|---|---|
| Combat | ProjectilePuncher, Reach, RubberHand, SpearAssist, TPSSync, PvpCooldowns, NoFriendDamage, TargetESP, Predictions, DamageTint |
| Visuals | ESP, NameTags, Chams, Crosshair, FullBright, MotionBlur, NoRender, Freecam, Hitboxes, Light, ChinaHat, Trinkets, SpatialGui и другие |
| Player | AutoTool, ClickPearl, FakeLag, NoDelay, LockSlot, AutoRespawn, DeathCoords, NoInteract |
| Misc | BetterMinecraft, FakePlayer, HitSounds, NameProtect, MessageFilter, NoSound, DefineTarget |
| HUD | Перетаскиваемые и статические элементы: TargetHUD, ModuleList, Watermark, Reach, Armor, Potions, Keystrokes, Coords, Notifications, Scoreboard |
| ClickGUI | Полноценный GUI с браузером модулей, редактором настроек, тем и профилей конфигов |
Профили .lvcfg |
Профили для модулей, HUD и тем — можно шарить между пользователями |
| Addon API | Версионированное API для аддонов |
| Кастомный рендер | UI-рендеринг с MSDF-шрифтами, SVG-иконками и шейдерами |
| Iris/Sodium/Xaero | Опциональная совместимость с популярными модами |
Совместимость
| Мод | Статус |
|---|---|
| Sodium | ✅ Требуется |
| Iris | ✅ Опционально — шейдерпаки |
| ImmediatelyFast | ✅ Опционально — производительность |
| Entity Culling | ✅ Опционально — производительность |
| Xaero's Minimap | ✅ Опционально — интеграция waypoint |
| Xaero's World Map | ✅ Опционально — интеграция waypoint |
| ViaFabricPlus | ✅ Опционально — протокол |
Зависимости
- Обязательные: Fabric Loader 0.19.3+, Fabric API, Sodium, Java 25+
- Опциональные: Iris, ImmediatelyFast, ViaFabricPlus, Entity Culling, Xaero's Minimap, Xaero's World Map
Установка
- Скачайте jar из Releases
- Положите в папку
mods/ - Перезапустите игру
Development
Building
./gradlew build
Docs
- Development guide — project rules, how to add modules/HUD/events/config
License
GNU General Public License v3.0. See LICENSE.
Credits
- The
SpatialGuimodule (rendering the open screen as a 3D plane in the world) is adapted from Spatial GUI (MIT License).
TODO
План разработки и актуальный статус ведутся в TODO.md.