--================================================================================================-- --===== CLASSES ================================================================================-- --================================================================================================-- ---@alias GL_BlendEquationMode ---|'32774' #GL_FUNC_ADD ---|'32778' #GL_FUNC_SUBTRACT ---|'32779' #GL_FUNC_REVERSE_SUBTRACT ---@alias GL_BlendingFactorSrc ---|'0' #GL_ZERO ---|'1' #GL_ONE ---|'768' #GL_SRC_COLOR ---|'769' #GL_ONE_MINUS_SRC_COLOR ---|'770' #GL_SRC_ALPHA ---|'771' #GL_ONE_MINUS_SRC_ALPHA ---|'772' #GL_DST_ALPHA ---|'773' #GL_ONE_MINUS_DST_ALPHA ---|'774' #GL_DST_COLOR ---|'775' #GL_ONE_MINUS_DST_COLOR ---|'776' #GL_SRC_ALPHA_SATURATE ---|'32769' #GL_CONSTANT_COLOR ---|'32770' #GL_ONE_MINUS_CONSTANT_COLOR ---|'32771' #GL_CONSTANT_ALPHA ---|'32772' #GL_ONE_MINUS_CONSTANT_ALPHA ---@alias GL_BlendingFactorDest GL_BlendingFactorSrc ---@alias GL_DepthFunction ---|'512' #GL_NEVER ---|'513' #GL_LESS ---|'514' #GL_EQUAL ---|'515' #GL_LEQUAL ---|'516' #GL_GREATER ---|'517' #GL_NOTEQUAL ---|'518' #GL_GEQUAL ---|'519' #GL_ALWAYS ---@alias GL_StencilFunction GL_DepthFunction ---@alias GL_StencilOp ---|'0' #GL_ZERO ---|'5386' #GL_INVERT ---|'7680' #GL_KEEP ---|'7681' #GL_REPLACE ---|'7682' #GL_INCR ---|'7683' #GL_DECR ---|'34055' #GL_INCR_WRAP ---|'34056' #GL_DECR_WRAP ---@alias GL_All GL_BlendEquationMode|GL_BlendingFactorDest|GL_StencilFunction|GL_StencilOp ---|'5376' #GL_CLEAR ---|'5377' #GL_AND ---|'5378' #GL_AND_REVERSE ---|'5379' #GL_COPY ---|'5380' #GL_AND_INVERTED ---|'5381' #GL_NOOP ---|'5382' #GL_XOR ---|'5383' #GL_OR ---|'5384' #GL_NOR ---|'5385' #GL_EQUIV ---|'5387' #GL_OR_REVERSE ---|'5388' #GL_COPY_INVERTED ---|'5389' #GL_OR_INVERTED ---|'5390' #GL_NAND ---|'5391' #GL_SET ---|'32775' #GL_MIN ---|'32776' #GL_MAX ---|'number' ---@alias GL_Texture ---|'"MY_TEXTURE"' ---|'"MY_TEXTURE_EMISSIVE"' ---|'"MAIN_FRAMEBUFFER"' ---|'"LAST_FRAMEBUFFER"' ---|'string' ---@alias CustomUniformID string ---@alias CClass ---|'string' ---|'"vec3"' ---@class RegisterRenderLayerParams ---@field vertexFormat ShaderFormat ---@field hasCrumbling boolean ---@field translucent boolean ---I only know of one... Does anyone know of any others? ---@alias ShaderFormat ---|'"POSITION_COLOR_TEXTURE_OVERLAY_LIGHT_NORMAL"' ---|'string' ---@alias StringifiedC string --================================================================================================-- --===== FUNCTIONS ==============================================================================-- --================================================================================================-- renderlayers = {} ---Gets the priority of the chosen render layer, or nil if it doesn't exist ---@param renderlayerName string ---@return number function renderlayers.getPriority(renderlayerName) end ---Returns true or false depending on if the shader exists yet ---@param shaderName string ---@return boolean function renderlayers.isShaderReady(shaderName) end ---Registers a new render layer with the given name ---params is a table where you can set certain keys ------vertexFormat - needs to match with the format of any shader you want to use. Same default as in registerShader() ------hasCrumbling - don't know what this does, but it's true by default ------translucent - also don't know this one, but true by default ---startFunction and endFunction are two lua functions, called when you start rendering and when you stop rendering this layer. ---Functions which interact with openGL can only be called inside these ---@param renderLayerName string ---@param params RegisterRenderLayerParams ---@param startFunction fun() ---@param endFunction fun() function renderlayers.registerRenderLayer(renderLayerName, params, startFunction, endFunction) end ---Registers a new custom shader with the given name ---@param shaderName string ---@param format ShaderFormat #Defaults to "POSITION_COLOR_TEXTURE_OVERLAY_LIGHT_NORMAL" ---@param vertexSource StringifiedC ---@param fragmentSource StringifiedC ---@param numSamplers number ---@param customUniforms table function renderlayers.registerShader(shaderName, format, vertexSource, fragmentSource, numSamplers, customUniforms) end ---Sets the priority of a render layer. Layers with lower priorities are rendered first. By default, all priorities are 0 ---@param renderLayerName string ---@param value number function renderlayers.setPriority(renderLayerName, value) end ---Sets the value of the specified uniform in the specified shader. If the shader does not exist yet, does nothing ---@param shaderName string ---@param uniformName CustomUniformID ---@param value any function renderlayers.setUniform(shaderName, uniformName, value) end --================================================================================================-- --===== SHADER ONLY FUNCTIONS ==================================================================-- --================================================================================================-- ---Sets the GL blend equation ---@param equation GL_BlendEquationMode function renderlayers.blendEquation(equation) end ---Sets the GL blend function ---@param src GL_BlendingFactorSrc ---@param dst GL_BlendingFactorDest function renderlayers.blendFunc(src, dst) end ---Sets the GL blend function ---@param srcRGB GL_BlendingFactorSrc ---@param dstRGB GL_BlendingFactorDest ---@param srcAlpha GL_BlendingFactorSrc ---@param dstAlpha GL_BlendingFactorDest function renderlayers.blendFuncSeperate(srcRGB, dstRGB, srcAlpha, dstAlpha) end ---Enables/disables the GL color mask ---@param boolean boolean function renderlayers.colorMask(boolean) end ---A minecraft→specific function, resets the GL blend function to default function renderlayers.defaultBlendFunc() end ---Sets the GL depth function ---@param func GL_DepthFunction function renderlayers.depthFunc(func) end ---Enables/disables the GL depth mask ---@param boolean boolean function renderlayers.depthMask(boolean) end ---Disables blending function renderlayers.disableBlend() end ---Disables color logic operations function renderlayers.disableColorLogicOp() end ---Disables culling function renderlayers.disableCull() end ---Disables depth testing function renderlayers.disableDepthTest() end ---Disables lightmap testing function renderlayers.disableLightmap() end ---Disables overlay function renderlayers.disableOverlay() end ---Disables GL scissors function renderlayers.disableScissors() end ---Disables stencil testing function renderlayers.disableStencil() end ---Enables blending function renderlayers.enableBlend() end ---Enables color logic operations function renderlayers.enableColorLogicOp() end ---Enables culling function renderlayers.enableCull() end ---Enables depth testing function renderlayers.enableDepthTest() end ---Enables lightmap testing function renderlayers.enableLightmap() end ---Enables overlay function renderlayers.enableOverlay() end ---Enables GL scissors with those values ---@param x number ---@param y number ---@param width number ---@param height number function renderlayers.enableScissors(x, y, width, height) end ---Enables stencil testing function renderlayers.enableStencil() end ---Sets the shader line width ---@param float number function renderlayers.lineWidth(float) end ---Sets the GL color logic operation ---@param operation GL_All function renderlayers.logicOp(operation) end renderlayers.logicOp() ---Resets the rendering to default state function renderlayers.restoreDefaults() end ---Sets the designated texture based on the name ---@param index number ---@param textureName GL_Texture function renderlayers.setTexture(index, textureName) end ---Sets the GL stencil function ---@param func GL_StencilFunction ---@param ref number ---@param mask number function renderlayers.stencilFunc(func, ref, mask) end ---Sets the GL stencil mask ---@param number number function renderlayers.stencilMask(number) end ---Sets the GL stencil operations ---@param sfail GL_StencilOp ---@param dpfail GL_StencilOp ---@param dppass GL_StencilOp function renderlayers.stencilOp(sfail, dpfail, dppass) end ---Uses the designated shader ---@param shaderName string function renderlayers.useShader(shaderName) end renderlayers.GL_ALWAYS=519 renderlayers.GL_AND=5377 renderlayers.GL_AND_INVERTED=5380 renderlayers.GL_AND_REVERSE=5378 renderlayers.GL_CLEAR=5376 renderlayers.GL_CONSTANT_ALPHA=32771 renderlayers.GL_CONSTANT_COLOR=32769 renderlayers.GL_COPY=5379 renderlayers.GL_COPY_INVERTED=5388 renderlayers.GL_DECR=7683 renderlayers.GL_DECR_WRAP=34056 renderlayers.GL_DST_ALPHA=772 renderlayers.GL_DST_COLOR=774 renderlayers.GL_EQUAL=514 renderlayers.GL_EQUIV=5385 renderlayers.GL_FUNC_ADD=32774 renderlayers.GL_FUNC_REVERSE_SUBTRACT=32779 renderlayers.GL_FUNC_SUBTRACT=32778 renderlayers.GL_GEQUAL=518 renderlayers.GL_GREATER=516 renderlayers.GL_INCR=7682 renderlayers.GL_INCR_WRAP=34055 renderlayers.GL_INVERT=5386 renderlayers.GL_KEEP=7680 renderlayers.GL_LEQUAL=515 renderlayers.GL_LESS=513 renderlayers.GL_MAX=32776 renderlayers.GL_MIN=32775 renderlayers.GL_NAND=5390 renderlayers.GL_NEVER=512 renderlayers.GL_NOR=5384 renderlayers.GL_NOOP=5381 renderlayers.GL_NOTEQUAL=517 renderlayers.GL_ONE=1 renderlayers.GL_ONE_MINUS_CONSTANT_ALPHA=32772 renderlayers.GL_ONE_MINUS_CONSTANT_COLOR=32770 renderlayers.GL_ONE_MINUS_DST_ALPHA=773 renderlayers.GL_ONE_MINUS_DST_COLOR=775 renderlayers.GL_ONE_MINUS_SRC_ALPHA=771 renderlayers.GL_ONE_MINUS_SRC_COLOR=769 renderlayers.GL_OR=5383 renderlayers.GL_OR_INVERTED=5389 renderlayers.GL_OR_REVERSE=5387 renderlayers.GL_REPLACE=7681 renderlayers.GL_SET=5391 renderlayers.GL_SRC_ALPHA=770 renderlayers.GL_SRC_ALPHA_SATURATE=776 renderlayers.GL_SRC_COLOR=768 renderlayers.GL_XOR=5382 renderlayers.GL_ZERO=0