GL 2.0+ pipeline (#81)

* initial cbf->GlExtensionHandler fill

* most GlExtH methods

* GlExtH OpenGL enums

* loose ends for GlExtH

* GlProgram/GlShader located

* filled in GlShader

* more GlProgram stuff

* GlUniform located

* fill in more GlUniform stuff

* GlBlendState + GlUniform gaps

* GlProgramManager located + fully mapped

* GlFramebuffer located

* more GlFramebuffer stuff

* solved the resize problem in GlFramebuffer

* review pt1

* review pt2
This commit is contained in:
iamgreaser 2016-09-18 14:55:46 +00:00 committed by Adrian Siekierka
parent 7d64ca1c52
commit 6c842977a3
9 changed files with 314 additions and 2 deletions

View File

@ -0,0 +1,112 @@
CLASS none/cbf net/minecraft/client/GlExtensionHandler
CLASS none/cbf$a FBOMode
FIELD a BASE Lnone/cbf$a;
FIELD b ARB Lnone/cbf$a;
FIELD c EXT Lnone/cbf$a;
FIELD A GL_SOURCE1_RGB I
FIELD B GL_SOURCE2_RGB I
FIELD C GL_OPERAND0_RGB I
FIELD D GL_OPERAND1_RGB I
FIELD E GL_OPERAND2_RGB I
FIELD F GL_COMBINE_ALPHA I
FIELD G GL_SOURCE0_ALPHA I
FIELD H GL_SOURCE1_ALPHA I
FIELD I GL_SOURCE2_ALPHA I
FIELD J GL_OPERAND0_ALPHA I
FIELD K GL_OPERAND1_ALPHA I
FIELD L GL_OPERAND2_ALPHA I
FIELD M extVersionBlendFuncSeparate Z
FIELD N supportsGl21 Z
FIELD O supportsShaderPipeline Z
FIELD P supportsVertexBufferObject Z
FIELD R GL_ARRAY_BUFFER I
FIELD S GL_STATIC_DRAW I
FIELD T LOGGER Lorg/apache/logging/log4j/Logger;
FIELD U fboMode Lnone/cbf$a;
FIELD V supportsGlsl Z
FIELD W arbVersionGLSL Z
FIELD X arbVersionMultiTexture Z
FIELD Y arbVersionTextureEnvCombine Z
FIELD Z supportsBlendFuncSeparate Z
FIELD a gpuNvidia Z
FIELD aa initInfoLog Ljava/lang/String;
FIELD ab cpuInfoString Ljava/lang/String;
FIELD ac arbVersionVertexBufferObject Z
FIELD b gpuAti Z
FIELD c GL_FRAMEBUFFER I
FIELD d GL_RENDERBUFFER I
FIELD e GL_COLOR_ATTACHMENT0 I
FIELD f GL_DEPTH_ATTACHMENT I
FIELD g GL_FRAMEBUFFER_COMPLETE I
FIELD h GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT I
FIELD i GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT I
FIELD j GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER I
FIELD k GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER I
FIELD l supportsFramebufferObject Z
FIELD m GL_LINK_STATUS I
FIELD n GL_COMPILE_STATUS I
FIELD o GL_VERTEX_SHADER I
FIELD p GL_FRAGMENT_SHADER I
FIELD q GL_TEXTURE0 I
FIELD r GL_TEXTURE1 I
FIELD s GL_TEXTURE2 I
FIELD t GL_COMBINE I
FIELD u GL_INTERPOLATE I
FIELD v GL_PRIMARY_COLOR I
FIELD w GL_CONSTANT I
FIELD x GL_PREVIOUS I
FIELD y GL_COMBINE_RGB I
FIELD z GL_SOURCE0_RGB I
METHOD a init ()V
METHOD a deleteShader (I)V
METHOD a multiTexCoord2f (IFF)V
METHOD a getProgrami (II)I
METHOD a renderbufferStorage (IIII)V
METHOD a framebufferTexture2D (IIIII)V
METHOD a getUniformLocation (ILjava/lang/CharSequence;)I
METHOD a shaderSource (ILjava/nio/ByteBuffer;)V
METHOD a bufferData (ILjava/nio/ByteBuffer;I)V
METHOD a uniform1fv (ILjava/nio/FloatBuffer;)V
METHOD a uniform1iv (ILjava/nio/IntBuffer;)V
METHOD a uniformMatrix2fv (IZLjava/nio/FloatBuffer;)V
METHOD a shellExecute (Ljava/io/File;)V
METHOD b canUseShaders ()Z
METHOD b createShader (I)I
METHOD b attachShader (II)V
METHOD b framebufferRenderbuffer (IIII)V
METHOD b getAttribLocation (ILjava/lang/CharSequence;)I
METHOD b uniform2fv (ILjava/nio/FloatBuffer;)V
METHOD b uniform2iv (ILjava/nio/IntBuffer;)V
METHOD b uniformMatrix3fv (IZLjava/nio/FloatBuffer;)V
METHOD c getInitInfoLog ()Ljava/lang/String;
METHOD c compileShader (I)V
METHOD c getShader (II)I
METHOD c blendFuncSeparate (IIII)V
METHOD c uniform3fv (ILjava/nio/FloatBuffer;)V
METHOD c uniform3iv (ILjava/nio/IntBuffer;)V
METHOD c uniformMatrix4fv (IZLjava/nio/FloatBuffer;)V
METHOD d createProgram ()I
METHOD d useProgram (I)V
METHOD d getShaderInfoLog (II)Ljava/lang/String;
METHOD d uniform4fv (ILjava/nio/FloatBuffer;)V
METHOD d uniform4iv (ILjava/nio/IntBuffer;)V
METHOD e genBuffers ()I
METHOD e deleteProgram (I)V
METHOD e getProgramInfoLog (II)Ljava/lang/String;
METHOD f useVertexBufferObjects ()Z
METHOD f linkProgram (I)V
METHOD f uniform1i (II)V
METHOD g genFramebuffers ()I
METHOD g deleteBuffers (I)V
METHOD g bindBuffer (II)V
METHOD h genRenderbuffers ()I
METHOD h deleteRenderbuffers (I)V
METHOD h bindFramebuffer (II)V
METHOD i deleteFramebuffers (I)V
METHOD i bindRenderbuffer (II)V
METHOD j useFramebufferObjects ()Z
METHOD j checkFramebufferStatus (I)I
METHOD k getCpuInfoString ()Ljava/lang/String;
METHOD k activeTexture (I)V
METHOD l clientActiveTexture (I)V
METHOD m drawAxes3D (I)V

View File

@ -0,0 +1,10 @@
CLASS none/bwj net/minecraft/client/gl/DummyUniform
METHOD a setFloat1 (F)V
METHOD a setFloat2 (FF)V
METHOD a setFloat3 (FFF)V
METHOD a setFloat4 (FFFF)V
METHOD a setMatrix4 (FFFFFFFFFFFFFFFF)V
METHOD a setIntsSizeChecked (IIII)V
METHOD a setMatrix4 (Lorg/lwjgl/util/vector/Matrix4f;)V
METHOD a set ([F)V
METHOD b setFloatsSizeChecked (FFFF)V

View File

@ -0,0 +1,32 @@
CLASS none/bwi net/minecraft/client/gl/GlBlendState
FIELD a activeBlendState Lnone/bwi;
FIELD b srcRgb I
FIELD c srcAlpha I
FIELD d dstRgb I
FIELD e dstAlpha I
FIELD f func I
FIELD g separateBlend Z
FIELD h blendDisabled Z
METHOD <init> (III)V
ARG 0 srcRgb
ARG 1 dstRgb
ARG 2 func
METHOD <init> (IIIII)V
ARG 0 srcRgb
ARG 1 dstRgb
ARG 2 srcAlpha
ARG 3 dstAlpha
ARG 4 func
METHOD <init> (ZZIIIII)V
ARG 0 separateBlend
ARG 1 blendDisabled
ARG 2 srcRgb
ARG 3 dstRgb
ARG 4 srcAlpha
ARG 5 dstAlpha
ARG 6 func
METHOD a enable ()V
METHOD a createFromJson (Lcom/google/gson/JsonObject;)Lnone/bwi;
METHOD a getFuncFromString (Ljava/lang/String;)I
METHOD b isBlendDisabled ()Z
METHOD b getComponentFromString (Ljava/lang/String;)I

View File

@ -0,0 +1,43 @@
CLASS none/bpf net/minecraft/client/gl/GlFramebuffer
FIELD a texWidth I
FIELD b texHeight I
FIELD c viewWidth I
FIELD d viewHeight I
FIELD e useDepthAttachment Z
FIELD f fbo I
FIELD g colorAttachment0 I
FIELD h depthAttachment I
FIELD i clearColor [F
FIELD j texFilter I
METHOD <init> (IIZ)V
ARG 0 width
ARG 1 height
ARG 2 useDepthAttachment
METHOD a delete ()V
METHOD a setClearColor (FFFF)V
ARG 0 r
ARG 1 g
ARG 2 b
ARG 3 a
METHOD a setTexFilter (I)V
ARG 0 texFilter
METHOD a resize (II)V
ARG 0 width
ARG 1 height
METHOD a draw (IIZ)V
ARG 0 width
ARG 1 height
ARG 2 disableBlend
METHOD a beginWrite (Z)V
ARG 0 resizeViewport
METHOD b checkFramebufferStatus ()V
METHOD b initFbo (II)V
ARG 0 width
ARG 1 height
METHOD c beginRead ()V
METHOD c draw (II)V
ARG 0 width
ARG 1 height
METHOD d endRead ()V
METHOD e endWrite ()V
METHOD f clear ()V

View File

@ -0,0 +1,40 @@
CLASS none/bwk net/minecraft/client/gl/GlProgram
FIELD a LOGGER Lorg/apache/logging/log4j/Logger;
FIELD b dummyUniform Lnone/bwj;
FIELD c activeProgram Lnone/bwk;
FIELD d activeProgramRef I
FIELD f samplerBinds Ljava/util/Map;
FIELD g samplerNames Ljava/util/List;
FIELD h samplerShaderLocs Ljava/util/List;
FIELD i uniformData Ljava/util/List;
FIELD j uniformLocs Ljava/util/List;
FIELD k uniformByName Ljava/util/Map;
FIELD l programRef I
FIELD m name Ljava/lang/String;
FIELD n useCullFace Z
FIELD o uniformStateIsDirty Z
FIELD p blendState Lnone/bwi;
FIELD q attribLocs Ljava/util/List;
FIELD r attribNames Ljava/util/List;
FIELD s vertexShader Lnone/bwn;
FIELD t fragmentShader Lnone/bwn;
METHOD <init> (Lnone/byc;Ljava/lang/String;)V
ARG 0 resource
ARG 1 name
METHOD a delete ()V
METHOD a addSampler (Lcom/google/gson/JsonElement;)V
METHOD a getUniformByName (Ljava/lang/String;)Lnone/bwp;
ARG 0 name
METHOD a bindSampler (Ljava/lang/String;Ljava/lang/Object;)V
ARG 0 samplerName
ARG 1 texture
METHOD b disable ()V
METHOD b addUniform (Lcom/google/gson/JsonElement;)V
METHOD b getUniformByNameOrDummy (Ljava/lang/String;)Lnone/bwp;
ARG 0 name
METHOD c enable ()V
METHOD d markUniformStateDirty ()V
METHOD e getVertexShader ()Lnone/bwn;
METHOD f getFragmentShader ()Lnone/bwn;
METHOD h getProgramRef ()I
METHOD i finalizeUniformsAndSamplers ()V

View File

@ -0,0 +1,10 @@
CLASS none/bwo net/minecraft/client/gl/GlProgramManager
FIELD a LOGGER Lorg/apache/logging/log4j/Logger;
FIELD b INSTANCE Lnone/bwo;
METHOD a init ()V
METHOD a deleteProgram (Lnone/bwk;)V
ARG 0 program
METHOD b getInstance ()Lnone/bwo;
METHOD b linkProgram (Lnone/bwk;)V
ARG 0 program
METHOD c createProgram ()I

View File

@ -0,0 +1,33 @@
CLASS none/bwn net/minecraft/client/gl/GlShader
CLASS none/bwn$a Type
FIELD a VERTEX Lnone/bwn$a;
FIELD b FRAGMENT Lnone/bwn$a;
FIELD c name Ljava/lang/String;
FIELD d fileExtension Ljava/lang/String;
FIELD e shaderType I
FIELD f nameObjectMap Ljava/util/Map;
METHOD <init> (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
ARG 0 name
ARG 1 fileExtension
ARG 2 shaderType
METHOD a getName ()Ljava/lang/String;
METHOD b getFileExtension ()Ljava/lang/String;
METHOD c getShaderType ()I
METHOD d getNameObjectMap ()Ljava/util/Map;
FIELD a shaderType Lnone/bwn$a;
FIELD b name Ljava/lang/String;
FIELD c shaderRef I
FIELD d refCount I
METHOD <init> (Lnone/bwn$a;ILjava/lang/String;)V
ARG 0 shaderType
ARG 1 shaderRef
ARG 2 name
METHOD a getName ()Ljava/lang/String;
METHOD a attachTo (Lnone/bwk;)V
ARG 0 program
METHOD a createFromResource (Lnone/byc;Lnone/bwn$a;Ljava/lang/String;)Lnone/bwn;
ARG 0 resource
ARG 1 shaderType
ARG 2 name
METHOD b detachFrom (Lnone/bwk;)V
ARG 0 program

View File

@ -0,0 +1,34 @@
CLASS none/bwp net/minecraft/client/gl/GlUniform
FIELD a LOGGER Lorg/apache/logging/log4j/Logger;
FIELD b loc I
FIELD c count I
FIELD d dataType I
FIELD e intData Ljava/nio/IntBuffer;
FIELD f floatData Ljava/nio/FloatBuffer;
FIELD g name Ljava/lang/String;
FIELD h stateDirty Z
FIELD i program Lnone/bwk;
METHOD <init> (Ljava/lang/String;IILnone/bwk;)V
ARG 0 name
ARG 1 dataType
ARG 2 count
ARG 3 program
METHOD a getName ()Ljava/lang/String;
METHOD a setFloat1 (F)V
METHOD a setFloat2 (FF)V
METHOD a setFloat3 (FFF)V
METHOD a setFloat4 (FFFF)V
METHOD a setMatrix4 (FFFFFFFFFFFFFFFF)V
METHOD a setIntsSizeChecked (IIII)V
METHOD a getTypeIndex (Ljava/lang/String;)I
ARG 0 typeName
METHOD a setMatrix4 (Lorg/lwjgl/util/vector/Matrix4f;)V
METHOD a set ([F)V
METHOD b upload ()V
METHOD b setFloatsSizeChecked (FFFF)V
METHOD b setLoc (I)V
ARG 0 loc
METHOD h markStateDirty ()V
METHOD i uploadInts ()V
METHOD j uploadFloats ()V
METHOD k uploadMatrix ()V

View File

@ -1,2 +0,0 @@
CLASS none/cbf
FIELD T LOGGER Lorg/apache/logging/log4j/Logger;