Repository navigation
Source Layout
Java sources are under src/main/java/net/dx12mc, shaders under src/main/shaders, tests under src/test/java/net/dx12mc. For the design rationale see ARCHITECTURE.md.
client.Entrypoint (ClientModInitializer) calls DX12MC.runtime().initialize(). client.Runtime is a thin facade the mixins call; it forwards to render.Controller, which owns the renderer. Backend creation is deferred to RendererLifecycle, which ensureInitialized / ensureFrame / present drive from the frame hooks.
| Package | Contents |
|---|---|
client |
Entrypoint, Runtime (mixin-facing facade), VideoOptions
|
config |
Config (reads dx12mc.* system properties), Mode
|
render |
Controller, RendererLifecycle (init, frame/present, fatal state, shutdown), SectionRenderContext, ScreenImages, PerformanceTelemetry, FatalRenderException
|
bridge |
Bridge, DrawContext / DrawContextFactory, Slot, Stats, UnsupportedRenderPathException
|
bridge.mesh |
Batch, Encoder, Indices, MeshStore, SectionRegionBatcher, RunPlanner, FrameBudget
|
bridge.texture |
Registry, TextureEntry, MipLevel, Image, Pixels, SamplerState, UploadQueue, TextureNotReadyException
|
bridge.shader |
ShaderSemantics, ShaderInputs
|
bridge.state |
RenderState, BgfxStateEncoder, ScissorRect
|
graphics |
Adapter, RendererInfo, FrameSize
|
graphics.bgfx |
bgfx wrappers: Backend, Mesh, Texture, Program, SwapChain, StagingMemory, ScreenCapture, ViewSequence, Probe, DebugText, backpressure exceptions |
graphics.pipeline |
PipelineSet, ShaderPipeline, Uniforms
|
platform.win32 |
DxgiAdapters, WindowHandle
|
debug |
Scene, NativeOverlayRenderer, OverlayWriter, GarbageCollectionMonitor, ByteSizes
|
mixin |
Minecraft hooks, listed below |
Registered in dx12mc.mixins.json (all client-side, defaultRequire: 1, so a hook that no longer matches fails at load).
| Mixin | Target |
|---|---|
GameRendererMixin, GameRendererInvoker
|
GameRenderer |
LevelRendererMixin |
LevelRenderer |
BufferUploaderMixin |
BufferUploader |
VertexBufferMixin |
VertexBuffer |
NativeImageMixin, TextureUtilMixin
|
NativeImage, TextureUtil
|
GlStateManagerMixin |
GlStateManager |
RenderSystemMixin, RenderSystemAccessor
|
RenderSystem |
RenderTargetMixin |
RenderTarget |
PostChainMixin |
PostChain |
ScreenshotMixin, ScreenshotInvoker
|
Screenshot |
WindowMixin |
Window |
OptionsMixin, OptionInstanceMixin
|
Options, OptionInstance
|
GlUtilMixin |
GlUtil |
TimerQueryMixin, FrameProfileMixin, FrameProfileInvoker
|
TimerQuery, TimerQuery.FrameProfile
|
src/test/java/net/dx12mc mirrors the main packages. stability/ holds source-level checks (for example StabilitySourceTest, EndPortalOriginTest, ReleaseWorkflowTest), shader/ShaderSourceTest checks shader sources, and bridge/RenderBench / FrameBench back the renderBench task.