Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
 }
Beispiel #5
0
 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");
 }