Package com.hbm_m.client.render
Class RenderStateGuard
java.lang.Object
com.hbm_m.client.render.RenderStateGuard
- All Implemented Interfaces:
AutoCloseable
Снимок и автоматическое восстановление стандартного набора GL state, который
наши рендереры регулярно трогают вручную (VAO, ARRAY_BUFFER, cull, depth
test/mask/func, blend + blend func, шейдер).
Используется через try-with-resources:
try (RenderStateGuard g = RenderStateGuard.snapshot()) {
// GL state changes
} // на выходе всё восстанавливается симметрично
Появился, чтобы убрать асимметрию между flushBatchVanilla /
flushBatchIris (полное восстановление) и renderSingle /
drawSingleWithIrisExtended (восстановление лишь части полей)
Что НЕ сохраняется намеренно: текущая текстура slot 0 (мы и так пересвязываем block atlas в большинстве путей), shader uniforms (это уже за пределами «GL state» — управляется самими шейдерами).
-
Method Summary
-
Method Details
-
snapshot
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-