mirror of
https://github.com/GTNewHorizons/Angelica.git
synced 2026-11-15 17:55:08 +00:00
226 lines
4.8 KiB
Java
226 lines
4.8 KiB
Java
package net.coderbot.iris.pipeline;
|
|
|
|
import com.gtnewhorizons.angelica.compat.mojang.Camera;
|
|
import com.gtnewhorizons.angelica.glsm.GLStateManager;
|
|
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
|
|
import it.unimi.dsi.fastutil.objects.Object2ObjectMaps;
|
|
import net.coderbot.iris.block_rendering.BlockRenderingSettings;
|
|
import net.coderbot.iris.celeritas.CeleritasTerrainPipeline;
|
|
import net.coderbot.iris.compat.dh.DHCompat;
|
|
import net.coderbot.iris.features.FeatureFlags;
|
|
import net.coderbot.iris.gbuffer_overrides.matching.InputAvailability;
|
|
import net.coderbot.iris.gbuffer_overrides.matching.SpecialCondition;
|
|
import net.coderbot.iris.gbuffer_overrides.state.RenderTargetStateListener;
|
|
import net.coderbot.iris.gl.texture.TextureType;
|
|
import net.coderbot.iris.helpers.Tri;
|
|
import net.coderbot.iris.shaderpack.CloudSetting;
|
|
import net.coderbot.iris.shaderpack.texture.TextureStage;
|
|
import net.coderbot.iris.uniforms.FrameUpdateNotifier;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.renderer.EntityRenderer;
|
|
|
|
import java.util.List;
|
|
import java.util.OptionalInt;
|
|
|
|
public class FixedFunctionWorldRenderingPipeline implements WorldRenderingPipeline {
|
|
public FixedFunctionWorldRenderingPipeline() {
|
|
BlockRenderingSettings.INSTANCE.setDisableDirectionalShading(shouldDisableDirectionalShading());
|
|
BlockRenderingSettings.INSTANCE.setUseSeparateAo(false);
|
|
BlockRenderingSettings.INSTANCE.setAmbientOcclusionLevel(1.0f);
|
|
BlockRenderingSettings.INSTANCE.setUseExtendedVertexFormat(false);
|
|
BlockRenderingSettings.INSTANCE.setBlockTypeIds(null);
|
|
}
|
|
|
|
@Override
|
|
public void beginLevelRendering() {
|
|
// Use the default Minecraft framebuffer and ensure that no programs are in use
|
|
Minecraft.getMinecraft().getFramebuffer().bindFramebuffer(true);
|
|
GLStateManager.glUseProgram(0);
|
|
}
|
|
|
|
@Override
|
|
public void renderShadows(EntityRenderer levelRenderer, Camera camera) {
|
|
// stub: nothing to do here
|
|
}
|
|
|
|
@Override
|
|
public void addDebugText(List<String> messages) {
|
|
// stub: nothing to do here
|
|
}
|
|
|
|
@Override
|
|
public OptionalInt getForcedShadowRenderDistanceChunksForDisplay() {
|
|
return OptionalInt.empty();
|
|
}
|
|
|
|
@Override
|
|
public WorldRenderingPhase getPhase() {
|
|
return WorldRenderingPhase.NONE;
|
|
}
|
|
|
|
@Override
|
|
public void setOverridePhase(WorldRenderingPhase phase) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void setPhase(WorldRenderingPhase phase) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void setInputs(InputAvailability availability) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void setSpecialCondition(SpecialCondition special) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public RenderTargetStateListener getRenderTargetStateListener() {
|
|
return RenderTargetStateListener.NOP;
|
|
}
|
|
|
|
@Override
|
|
public int getCurrentNormalTexture() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public int getCurrentSpecularTexture() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void onBindTexture(int id) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void beginHand() {
|
|
// stub: nothing to do here
|
|
}
|
|
|
|
@Override
|
|
public void beginTranslucents() {
|
|
// stub: nothing to do here
|
|
}
|
|
|
|
@Override
|
|
public void finalizeLevelRendering() {
|
|
// stub: nothing to do here
|
|
}
|
|
|
|
@Override
|
|
public void destroy() {
|
|
// stub: nothing to do here
|
|
}
|
|
|
|
@Override
|
|
public CeleritasTerrainPipeline getCeleritasTerrainPipeline() {
|
|
// no shaders to override
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public FrameUpdateNotifier getFrameUpdateNotifier() {
|
|
// return a dummy notifier
|
|
return new FrameUpdateNotifier();
|
|
}
|
|
|
|
private static final DHCompat DH_COMPAT = new DHCompat(null, false);
|
|
|
|
@Override
|
|
public DHCompat getDHCompat() {
|
|
return DH_COMPAT;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldDisableVanillaEntityShadows() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldDisableDirectionalShading() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public CloudSetting getCloudSetting() {
|
|
return CloudSetting.DEFAULT;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderUnderwaterOverlay() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderVignette() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderSun() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderMoon() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderStars() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderSkyDisc() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderWeather() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderWeatherParticles() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldWriteRainAndSnowToDepthBuffer() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderParticlesBeforeDeferred() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean allowConcurrentCompute() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public float getSunPathRotation() {
|
|
// No sun tilt
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public boolean hasFeature(FeatureFlags flag) {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public Object2ObjectMap<Tri<String, TextureType, TextureStage>, String> getTextureMap() {
|
|
return Object2ObjectMaps.emptyMap();
|
|
}
|
|
}
|