コード例 #1
0
        //------------------------------------------------------
        // Loading
        //------------------------------------------------------

        // Factory workers to create effects
        private T createEffect <T>(ProgramLoader pLoader, string resource_folder_name) where T : RenderEffect
        {
            T temp_effect = (T)Activator.CreateInstance(typeof(T), pLoader, resource_folder_name, _resolution);

            _effects.Add(temp_effect);
            return(temp_effect);
        }
コード例 #2
0
        public RenderDriver(
            ProgramLoader pLoader,
            StaticImageLoader tLoader,
            Resolution resolution)
        {
            _resolution         = resolution;
            _enable_debug_views = false;

            // Render UBOs
            _ubo_game_config = new UniformBuffer(BufferStorageFlags.DynamicStorageBit, 0, new EngineHelper.size[]
            {
                EngineHelper.size.vec4,
                EngineHelper.size.f
            });

            _ubo_camera = new UniformBuffer(BufferStorageFlags.DynamicStorageBit, 1, new EngineHelper.size[] {
                EngineHelper.size.mat4,
                EngineHelper.size.mat4,
                EngineHelper.size.mat4,
                EngineHelper.size.mat4,
                EngineHelper.size.mat4,
                EngineHelper.size.vec3,
                EngineHelper.size.vec3
            });

            // Render FX List
            _effects = new List <RenderEffect>();

            // Render FXs
            _fxQuad                  = createEffect <fx_Quad>(pLoader, "common/");
            _fxTest                  = createEffect <fx_Test>(pLoader, "test/");
            _fxCrosshair             = createEffect <fx_Crosshair>(pLoader, tLoader, "crosshair/");
            _fxSpecial               = createEffect <fx_Special>(pLoader, "special/");
            _fxFinal                 = createEffect <fx_Final>(pLoader, "final/");
            _fxGBuffer               = createEffect <fx_gBuffer>(pLoader, tLoader, "gBuffer/");
            _fxVXGI                  = createEffect <fx_VXGI>(pLoader, "vxgi/");
            _fxShadow                = createEffect <fx_Shadow>(pLoader, "shadow/");
            _fxSkyBox                = createEffect <fx_SkyBox>(pLoader, tLoader, "skybox/");
            _fxHDR                   = createEffect <fx_HDR>(pLoader, "hdr/");
            _fxLens                  = createEffect <fx_Lens>(pLoader, tLoader, "lens/");
            _fxDepthOfField          = createEffect <fx_DepthOfField>(pLoader, tLoader, "dof/");
            _fxMotionBlur            = createEffect <fx_MotionBlur>(pLoader, "motion_blur/");
            _fxAtmosphericScattering = createEffect <fx_AtmosphericScattering>(pLoader, "ats/");
        }