Class RenderStateGuard

java.lang.Object
com.hbm_m.client.render.RenderStateGuard
All Implemented Interfaces:
AutoCloseable

public final class RenderStateGuard extends Object implements 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» — управляется самими шейдерами).