private static void Load_VERSION_3_2() { _DrawElementsBaseVertex = GetAddress <DrawElementsBaseVertex>("glDrawElementsBaseVertex"); _DrawRangeElementsBaseVertex = GetAddress <DrawRangeElementsBaseVertex>("glDrawRangeElementsBaseVertex"); _DrawElementsInstancedBaseVertex = GetAddress <DrawElementsInstancedBaseVertex>("glDrawElementsInstancedBaseVertex"); _MultiDrawElementsBaseVertex = GetAddress <MultiDrawElementsBaseVertex>("glMultiDrawElementsBaseVertex"); ProvokingVertex = GetAddress <ProvokingVertex>("glProvokingVertex"); FenceSync = GetAddress <FenceSync>("glFenceSync"); IsSync = GetAddress <IsSync>("glIsSync"); DeleteSync = GetAddress <DeleteSync>("glDeleteSync"); ClientWaitSync = GetAddress <ClientWaitSync>("glClientWaitSync"); WaitSync = GetAddress <WaitSync>("glWaitSync"); GetInteger64 = GetAddress <GetInteger64>("glGetInteger64v"); GetInteger64v = GetAddress <GetInteger64v>("glGetInteger64v"); GetSynci = GetAddress <GetSynci>("glGetSynciv"); GetSynciv = GetAddress <GetSynciv>("glGetSynciv"); GetInteger64i_ = GetAddress <GetInteger64i_>("glGetInteger64i_v"); GetInteger64i_v = GetAddress <GetInteger64i_v>("glGetInteger64i_v"); GetBufferParameteri64 = GetAddress <GetBufferParameteri64>("glGetBufferParameteri64v"); GetBufferParameteri64v = GetAddress <GetBufferParameteri64v>("glGetBufferParameteri64v"); FramebufferTexture = GetAddress <FramebufferTexture>("glFramebufferTexture"); TexImage2DMultisample = GetAddress <TexImage2DMultisample>("glTexImage2DMultisample"); TexImage3DMultisample = GetAddress <TexImage3DMultisample>("glTexImage3DMultisample"); GetMultisamplefv = GetAddress <GetMultisamplefv>("glGetMultisamplefv"); SampleMaski = GetAddress <SampleMaski>("glSampleMaski"); VERSION_3_2 = VERSION_3_1 && _DrawElementsBaseVertex != null && _DrawRangeElementsBaseVertex != null && _DrawElementsInstancedBaseVertex != null && _MultiDrawElementsBaseVertex != null && ProvokingVertex != null && FenceSync != null && IsSync != null && DeleteSync != null && ClientWaitSync != null && WaitSync != null && GetInteger64v != null && GetSynciv != null && GetInteger64i_v != null && GetBufferParameteri64v != null && FramebufferTexture != null && TexImage2DMultisample != null && TexImage3DMultisample != null && GetMultisamplefv != null && SampleMaski != null; }
private void InitializeStaticFramebuffers(Renderer renderer) { mColorFramebuffer1 = CreateColorFB(renderer, 256, 144); mColorFramebuffer2Level0 = CreateColorFB(renderer, 128, 72); mColorFramebuffer2Level1 = CreateColorFB(renderer, 64, 36); mColorFramebuffer2Level2 = CreateColorFB(renderer, 32, 18); mColorFramebuffer2Level0HorizontalBlur = CreateColorFB(renderer, 128, 72); mColorFramebuffer2Level1HorizontalBlur = CreateColorFB(renderer, 64, 36); mColorFramebuffer2Level2HorizontalBlur = CreateColorFB(renderer, 32, 18); mColorFramebuffer2Level0VerticalBlur = CreateColorFB(renderer, 128, 72); mColorFramebuffer2Level1VerticalBlur = CreateColorFB(renderer, 64, 36); mColorFramebuffer2Level2VerticalBlur = CreateColorFB(renderer, 32, 18); mColorFramebuffer3 = CreateColorFB(renderer, 256, 144); mColorFramebuffer4 = CreateColorFB(renderer, 256, 144); mExposureFramebuffer0 = CreateLumaFB(renderer, 8, 8); mExposureFramebuffer1 = CreateLumaFB(renderer, 1, 1); mExposureFramebuffer2 = new Texture(renderer.State, TextureTarget.Texture2D, PixelInternalFormat.R16f, 32, 1, PixelFormat.Red, PixelType.HalfFloat); mExposureFramebuffer3 = CreateLumaFB(renderer, 1, 1); }
public override void Initialize(Renderer renderer) { if (mSceneSSSShader != null) { return; } mSceneSSSShader = renderer.CreateShader("Scene/SceneSSS"); mCopyTextureShader = renderer.CreateShader("Filter/CopyTexture"); mSSSFilterMinShader = renderer.CreateShader("Filter/SSS/SSSFilterMin"); mSSSFilterGauss2DShader = renderer.CreateShader("Filter/SSS/SSSFilterGauss2D"); mSSSFilterMinShader.SetUniform("uResolution", Vector2.One / new Vector2(renderer.SSSMiddleTexture.Width, renderer.SSSMiddleTexture.Height)); mSSSFilterGauss2DShader.SetUniform("uResolution", Vector2.One / new Vector2(renderer.SSSLowFramebuffer.Width, renderer.SSSLowFramebuffer.Height)); mSSSLowFilteredFramebuffer = new FramebufferTexture( renderer.State, FramebufferAttachment.ColorAttachment0, TextureTarget.Texture2D, PixelInternalFormat.Rgba16f, Renderer.SSSWidth / 4, Renderer.SSSHeight / 4, PixelFormat.Rgba, PixelType.HalfFloat); }
public void BindFramebuffer(FramebufferTexture framebufferTexture) { BindFramebuffer(framebufferTexture.Framebuffer); }
public static void InitGL_3_2(OpenGLContext ctx) { glGetInteger64i_v = ctx.GetProc<GetInteger64i_v>("glGetInteger64i_v"); glGetBufferParameteri64v = ctx.GetProc<GetBufferParameteri64v>("glGetBufferParameteri64v"); glProgramParameteri = ctx.GetProc<ProgramParameteri>("glProgramParameteri"); glFramebufferTexture = ctx.GetProc<FramebufferTexture>("glFramebufferTexture"); }