@@ -77,6 +77,7 @@ GLShader_screen *gl_screenShader = nullptr;
7777GLShader_screenMaterial *gl_screenShaderMaterial = nullptr ;
7878GLShader_skybox *gl_skyboxShader = nullptr ;
7979GLShader_skyboxMaterial *gl_skyboxShaderMaterial = nullptr ;
80+ GlobalUBOProxy *globalUBOProxy = nullptr ;
8081GLShaderManager gl_shaderManager;
8182
8283namespace // Implementation details
@@ -3082,3 +3083,38 @@ GLShader_processSurfaces::GLShader_processSurfaces() :
30823083 u_ViewID( this ),
30833084 u_SurfaceCommandsOffset( this ) {
30843085}
3086+
3087+ GlobalUBOProxy::GlobalUBOProxy () :
3088+ /* HACK: A GLShader* is required to initialise uniforms,
3089+ but we don't need the GLSL shader itself, so we won't actually build it */
3090+ GLShader( " proxy" , 0 ,
3091+ false , " screenSpace" , " generic" , true ),
3092+ // CONST
3093+ u_ColorMap3D( this ),
3094+ u_DepthMap( this ),
3095+ u_PortalMap( this ),
3096+ u_FogMap( this ),
3097+ u_DepthTile1( this ),
3098+ u_DepthTile2( this ),
3099+ u_LightTiles( this ),
3100+ u_LightGrid1( this ),
3101+ u_LightGrid2( this ),
3102+ u_LightGridOrigin( this ),
3103+ u_LightGridScale( this ),
3104+ u_GlobalLightFactor( this ),
3105+ u_FirstPortalGroup( this ),
3106+ u_TotalPortals( this ),
3107+ u_SurfaceDescriptorsCount( this ),
3108+ u_ProfilerZero( this ),
3109+ // FRAME
3110+ u_Frame( this ),
3111+ u_UseFrustumCulling( this ),
3112+ u_UseOcclusionCulling( this ),
3113+ u_blurVec( this ),
3114+ u_numLights( this ),
3115+ u_ColorModulate( this ),
3116+ u_InverseGamma( this ),
3117+ u_Tonemap( this ),
3118+ u_TonemapParms( this ),
3119+ u_TonemapExposure( this ) {
3120+ }
0 commit comments