package com.mojang.blaze3d.systems; import com.mojang.blaze3d.DontObfuscate; import com.mojang.blaze3d.buffers.BufferType; import com.mojang.blaze3d.buffers.BufferUsage; import com.mojang.blaze3d.buffers.GpuBuffer; import com.mojang.blaze3d.pipeline.CompiledRenderPipeline; import com.mojang.blaze3d.pipeline.RenderPipeline; import com.mojang.blaze3d.shaders.ShaderType; import com.mojang.blaze3d.textures.GpuTexture; import com.mojang.blaze3d.textures.TextureFormat; import java.nio.ByteBuffer; import java.util.List; import java.util.function.BiFunction; import java.util.function.Supplier; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.Nullable; @Environment(EnvType.CLIENT) @DontObfuscate public interface GpuDevice { CommandEncoder createCommandEncoder(); GpuTexture createTexture(@Nullable Supplier supplier, TextureFormat textureFormat, int i, int j, int k); GpuTexture createTexture(@Nullable String string, TextureFormat textureFormat, int i, int j, int k); GpuBuffer createBuffer(@Nullable Supplier supplier, BufferType bufferType, BufferUsage bufferUsage, int i); GpuBuffer createBuffer(@Nullable Supplier supplier, BufferType bufferType, BufferUsage bufferUsage, ByteBuffer byteBuffer); String getImplementationInformation(); List getLastDebugMessages(); boolean isDebuggingEnabled(); String getVendor(); String getBackendName(); String getVersion(); String getRenderer(); int getMaxTextureSize(); default CompiledRenderPipeline precompilePipeline(RenderPipeline renderPipeline) { return this.precompilePipeline(renderPipeline, null); } CompiledRenderPipeline precompilePipeline(RenderPipeline renderPipeline, @Nullable BiFunction biFunction); void clearPipelineCache(); List getEnabledExtensions(); void close(); }