@Override public final void onDeactivate( final JCGLInterfaceGL33Type g) { g.getShaders().shaderDeactivateProgram(); }
@Override public final void onActivate( final JCGLInterfaceGL33Type g) { g.getShaders().shaderActivateProgram(this.program); }
@Override public void onReceiveMaterialValues( final JCGLInterfaceGL33Type g, final R2ShaderParametersMaterialType<Unit> mat_parameters) { NullCheck.notNull(g); NullCheck.notNull(mat_parameters); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutVector4f(this.u_frag_color, WHITE); } }
@Override protected final R2ShaderLightVolumeSingleType< R2LightSphericalSingleReadableType> newShaderWithVerifier( final JCGLInterfaceGL33Type g, final R2ShaderPreprocessingEnvironmentReadableType sources, final R2IDPoolType pool) { return R2DebugShaderLightSphericalAttenuationSingle.newShader( g.getShaders(), sources, pool); }
@Override protected final R2ShaderLightProjectiveType<R2LightProjectiveReadableType> newShaderWithVerifier( final JCGLInterfaceGL33Type g, final R2ShaderPreprocessingEnvironmentType sources, final R2IDPoolType pool) { return R2LightShaderProjectiveLambertBlinnPhongSingle.newShader( g.getShaders(), sources, pool); }
@Override protected final R2ShaderLightProjectiveWithShadowType< R2LightProjectiveWithShadowVarianceType> newShaderWithVerifier( final JCGLInterfaceGL33Type g, final R2ShaderPreprocessingEnvironmentType sources, final R2IDPoolType pool) { return R2LightShaderProjectiveLambertShadowVarianceSingle.newShader( g.getShaders(), sources, pool); }
@Override protected R2ShaderInstanceBillboardedType<PVectorI4F<R2SpaceRGBAType>> newShaderWithVerifier( final JCGLInterfaceGL33Type g, final R2ShaderPreprocessingEnvironmentType sources, final R2IDPoolType pool) { return R2ShaderDebugVisualBillboarded.newShader( g.getShaders(), sources, pool); }
@Override public void onReceiveMaterialValues( final JCGLInterfaceGL33Type g, final R2ShaderParametersMaterialType<Unit> mat_parameters) { NullCheck.notNull(g); NullCheck.notNull(mat_parameters); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutVector4f(this.u_frag_color, WHITE); }
@Override protected final R2ShaderLightVolumeSingleType< R2LightSphericalSingleReadableType> newShaderWithVerifier( final JCGLInterfaceGL33Type g, final R2ShaderPreprocessingEnvironmentReadableType sources, final R2IDPoolType pool) { return R2LightShaderSphericalLambertPhongSingle.newShader( g.getShaders(), sources, pool); }
@SuppressWarnings("unchecked") @Override protected final R2ShaderLightProjectiveWithShadowType< R2LightProjectiveWithShadowVarianceType> newShaderWithVerifier( final JCGLInterfaceGL33Type g, final R2ShaderPreprocessingEnvironmentType sources, final R2IDPoolType pool) { return R2LightShaderProjectiveLambertBlinnPhongShadowVarianceSingle.newShader( g.getShaders(), sources, pool); } }
@Override public void onReceiveVolumeLightTransform( final JCGLInterfaceGL33Type g, final R2MatricesVolumeLightValuesType m) { NullCheck.notNull(g); NullCheck.notNull(m); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_volume_modelview, m.matrixLightModelView()); } }
@Override public void onReceiveVolumeLightTransform( final JCGLInterfaceGL33Type g, final R2MatricesVolumeLightValuesType m) { NullCheck.notNull(g); NullCheck.notNull(m); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_volume_modelview, m.matrixLightModelView()); }
@Override public void onReceiveMaterialValues( final JCGLInterfaceGL33Type g, final R2ShaderParametersMaterialType<PVectorI4F<R2SpaceRGBAType>> mat_parameters) { NullCheck.notNull(g); NullCheck.notNull(mat_parameters); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutVector4f(this.u_color, mat_parameters.values()); }
@Override public void onReceiveMaterialValues( final JCGLInterfaceGL33Type g, final R2ShaderParametersMaterialType<PVectorI4F<R2SpaceRGBAType>> mat_parameters) { NullCheck.notNull(g); NullCheck.notNull(mat_parameters); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutVector4f(this.u_color, mat_parameters.values()); } }
@Override public void onReceiveInstanceTransformValues( final JCGLInterfaceGL33Type g, final R2MatricesInstanceSingleValuesType m) { NullCheck.notNull(g); NullCheck.notNull(m); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_modelview, m.matrixModelView()); } }
@Override public void onReceiveMaterialValues( final JCGLInterfaceGL33Type g, final R2ShaderParametersMaterialType<PVectorI4F<R2SpaceRGBAType>> mat_parameters) { NullCheck.notNull(g); NullCheck.notNull(mat_parameters); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutVector4f(this.u_color, mat_parameters.values()); } }
@Override public void onReceiveInstanceTransformValues( final JCGLInterfaceGL33Type g, final R2MatricesInstanceSingleValuesType m) { NullCheck.notNull(g); NullCheck.notNull(m); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_modelview, m.matrixModelView()); } }
@Override public void onReceiveInstanceTransformValues( final JCGLInterfaceGL33Type g, final R2MatricesInstanceSingleValuesType m) { NullCheck.notNull(g); NullCheck.notNull(m); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_modelview, m.matrixModelView()); } }
@Override public void onReceiveViewValues( final JCGLInterfaceGL33Type g, final R2ShaderParametersViewType view_parameters) { NullCheck.notNull(g); NullCheck.notNull(view_parameters); final JCGLShadersType g_sh = g.getShaders(); final R2MatricesObserverValuesType matrices = view_parameters.observerMatrices(); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_projection, matrices.matrixProjection()); }
@Override public void onReceiveProjectiveLight( final JCGLInterfaceGL33Type g, final R2MatricesProjectiveLightValuesType m) { NullCheck.notNull(g); NullCheck.notNull(m); final JCGLShadersType g_sh = g.getShaders(); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_eye_to_light_eye, m.matrixProjectiveEyeToLightEye()); g_sh.shaderUniformPutMatrix4x4f( this.u_transform_light_projection, m.matrixProjectiveProjection()); }